当前位置:首页 » 编程语言 » c语言提纲

c语言提纲

发布时间: 2022-12-21 14:21:25

A. 关于c语言中的类型转换,谢谢了啊!!!

main() /*No.1主函数*/
{
printf("Welcome to study C program.\n");
printf("This is Lesson One.\n");
}
程序写好后,按“F9”,然后按"Alt-F-O",就进入DOS提示符下
去执行它。

Welcome to study C program.
This is Lesson One.

怎么样?你自己的程序也变成了*.exe型的可执行文件了。按
“EXIT”可以返回到系统。
上例中“main()”是程序的主函数。C 语言程序由一系列函数组
成,而且每个程序必须有且只有一个主函数,即“main()”。在第一
行末还有/* */所夹的内容,它在程序编译时不参与编译,只说明程
序的作用,即起注释作用。所以在你抄本教程的例子时可不抄这一部
分内容。
每个函数必须由“{ }”括起来,每句程序必须用“;”结束。
第3行第4行中printf是C语言用来在屏幕上输出信息的一个重要
函数,最简单的格式是
printf("显示的内容");
字符串后面的“\n”不会显示在屏幕上,它的意思是“回车换行”
接下来,你把第3行后面的“\n”去掉,再按“F9”后去执行,
你就会发现两行内容都印在了一行。

Welcome to study C program.This is Lesson One.

如果在“\n”后加上“\a”,即每显示一行出现一次响铃。
如下表,是“\”后面字符的特殊含义。
\r
回车不换行(到行首)

\t
横向跳到下一输出位

\b
向左退格

\\
输出字符"\"

好。下面把程序中“printf("This is Lesson One.\n");”
换成“printf("\tThis is Lesson One.\n");”,执行一下程序。

Welcome to study C program.
This is Lesson One.

下面再换成“printf("This is \b\bLesson One.\n");”再执行
一下。

Welcome to study C program.
This iLesson One.

程序中的“s ”并不是没有显示,而是显示后,又被“Le”给盖
上了。
要想在屏幕上输出一个“C:\>”则要写上“printf("C:\\>");”
好了,第一节就要此为止。你赶快复习一个。你知道今天所学的
知识了吗?(只要学会了这些就别再多学了,贪多吃不烂。)
1.printf("显示信息") 最简单的输出格式
2.“{ }” 用来括起函数
“;” 每句程序的结束标志
3.“\t”“\n”“\b”“\a”是什么意思?
4.主程序的标志是什么?
5./* */ 是用来注释程序
不过先别关机,如果你用的是UCDOS或是成然汉字,你可以把显
示的信息用中文代替。如:printf("我一定要把C语言学会!\n");

您的当前位置是:首页>>电脑知识>>文本方式下的显示

--------------------------------------------------------------------------------

文本方式下的显示

C语言中,图形函数大致可分为两类:字符模式函数和图形模式函数。本节我们练习使用字符模式函数。
使用字符模式函数应该在程序中联入conio.h头部文件。
下面是一些函数的作用
1) void clreol(); 从光标处删除到本行末
2) void delline(); 清除本行内容,下面内容上提一行
delline();函数实际上还起到了向上卷屏的作用。
3) void insline(); 在光标所在行插入一空行,原来该行及以
下各行皆向下移一行
4) int wherex(); 返回当前光标的x(行)坐标
5) int wherey(); 返回当前光标的y(列)坐标
6) void highvideo(); 字符输出用高亮度字符
7) void lowvideo(); 字符输出用低亮度字符
8) void normvideo(); 字符输出用普通亮度字符
在以上的各函数中皆不带参数,当然也可以写成括号中有void的形式:
void wherex(void); 还可以写成 wherex();
清屏、清行、向后删行、插行的操作真有些CCED、WPS等编辑软件的风格,就是在你平时的屏幕设计中也用少不了。返回坐标的函数则给你的设计提供每一个环节的光标坐标值。有利于你前后响应。字
符亮度的改变则会让你的字符显示出层次感,怎么样,赶快试试吧:
/* No32.c*/
# include "stdio.h"
# include "conio.h"
main()
{ clrscr();
gotoxy(10,1);
cprintf("甜密密,");
highvideo(); /*高亮度显示*/
cprintf("\r\n 你笑得甜密密,");
lowvideo(); /*低亮度显示*/
cprintf("\r\n 好象花儿开在春风里,");
normvideo(); /*普通亮度显示*/
gotoxy(10,4); cprintf("开在春风里");
cprintf("\r\n 在哪里,在哪里见过你?");
printf("\r\n 你的笑容这样熟悉。");
gotoxy(10,20);printf("任意键删去光标后的内容");
gotoxy(18,3); getch();
gotoxy(18,3);
clreol(); /*删去光标后字符*/
gotoxy(10,20);printf("任意键删去本行的内容 ");
gotoxy(18,3); getch();
delline(); /*删去本行*/
gotoxy(10,20);printf("任意键在本行插一空行 ");
gotoxy(18,3); getch();
insline(); /*插入一空行*/
gotoxy(1,7);
}
应该注意的是,要发挥本节所讲的函数的作用,在显示时不能使printf函数,应使用cprintf函数。它的使用方法和printf的完全一样,只不过后面的cprintf能发挥亮度设置和颜色设置的作用。前者
printf函数只有一种颜色和单一的亮度。
在cprintf函数中,“\n”的作用不再是既回到行首又换行,它只起一个换行的作用,所以要把内容在行首显示必须再加一个“\r”
上面的程序不是一真正对大家有用的程序,只是用来说明一个刚刚学到的几个函数的作用。在conio.h中还有一些字符型函数,它们都是带参数的。
9) void textcolor(颜色); 定义显示字符颜色
10) void textbackground(颜色); 定义背景颜色
下面是颜色数字和颜色对照表
BLACK 0 黑 DARKGRAY 8 深灰
BLUE 1 兰 LIGHTBLUE 9 淡兰
GREEN 2 绿 LIGHTGREEN 10 淡绿
CYAN 3 青 LIGHTCYAN 11 淡青
RED 4 红 LIGHTRED 12 淡红
MAGENTA 5 洋红 LIGHTMAGENTA 13 淡洋红
BROWN 6 棕 YELLOW 14 黄
LIGHTGRAY 7 淡灰 WHILT 15 白
背景颜色值只能是0-7共8个数字或其对应的英文大写单词。而前景(即字符)的颜色可以是0-15共16种颜色或其对应的英文大写单词。当你定义的前景和背景相同时,屏幕上看不到输出的内容。
textcolor(4); 和 textcolor(RED); 效果是相同的。
设置屏幕颜色还可以使用
11) void textattr(前景颜色+(背景颜色));
但这里的背景颜色要有“<<4”。如白底红字,就是:
textattr(RED+(WHITE<<4));
12) int gettext(左上角x,左上角y,右下角x,右下角y,内存指针);
把定义的长方形区域内的内容存在内存中
13) int puttext(左上角x,左上角y,右下角x,右下角y,内存指针);
把内存中存好的内容显示在新定义的矩形块内
这里的内存指针也可用字符形数组来代替。需要注意的是内存大小应该是所存内容的“行数*列数*2”。比如把第3行第5列到第6行第75列的数据存到内存中,可以用下面的片段:
char buffer[4*70*2];
gettext(5,3,75,6,buffer);
然后你就可以用puttext函数来显示它了。
14) void movetext(左上角x,左上角y,右下角x,右下角y,
新左上角x,新左上角y);
把矩形块移到新左上角(x,y)决定的地方
15) void window(左上角x,左上角y,右下角x,右下角y);
定义一个窗口,大小就是上面参数决定的长方形
利用这一函数,你可以在屏幕上任何一个地方开辟一个窗口,并在上面显示需要的内容。这丝毫不影响屏幕其它地方的内容。当你定义了窗口后,你只能操作该窗口,gotoxy(),wherex(),wherey(),
clrscr()等等函数所表示的都是你定义窗口中的情况。实际上这就为我们的操作带来了方便,你想操作哪儿,就定义哪儿,想回到平时状态的屏幕,就定义一个最大的窗口,window(1,1,80,25);就复原了。
No.33号例子是利用puttext和gettext函数以及颜色定义来模仿CCED和WPS的菜单显示。但这个小程序没有可移动的光条,也没有菜单中内容的相应执行程序,只是演示一下屏幕的保存和释放而已。
/* No33.c */
#include "conio.h"
#include "stdio.h"
main()
{ int i=1,j,ch;
char buffer[6*50*2]; /*开辟内存空间的大小*/
clrscr();
textcolor(0); /*定义字符颜色*/
textbackground(7); /*定义背景颜色*/
gotoxy(1,1);
cprintf(" 功能1 功能2 功能3 ");
textbackground(0);
textcolor(14);
gotoxy(1,2);
cprintf("What's your name? 你叫什么名字");
cprintf("\n\rMy name is Wang Dong. 我叫王东.");
cprintf("\n\rHow old are are you? 你多大了 . ");
cprintf("\n\rI'm thirty-four. 我四十四了");
cprintf("\n\r\n\rThis is Lesson One. 这是第一课");
while(1)
{ j=i;
textcolor(0);
textbackground(7);
if(i==1)
{ gettext(1,2,13,5,buffer);
gotoxy(2,2); cprintf("│第一课│");
gotoxy(2,3); cprintf("│第二课│");
gotoxy(2,4); cprintf("│第三课│");
gotoxy(2,5); cprintf("└———┘");
}
if(i==2)
{ gettext(13,2,25,5,buffer);
gotoxy(14,2); cprintf("│菜单一│");
gotoxy(14,3); cprintf("│菜单二│");
gotoxy(14,4); cprintf("│菜单三│");
gotoxy(14,5); cprintf("└———┘");
}
if(i==3)
{ gettext(25,2,37,5,buffer);
gotoxy(26,2); cprintf("│说明A │");
gotoxy(26,3); cprintf("│说明B │");
gotoxy(26,4); cprintf("│说明C │");
gotoxy(26,5); cprintf("└———┘");
}
textcolor(14);
gotoxy(10,20);printf("→向右移动 ←向左移动 Esc 退出");
ch=getch();
if((ch==75)&&(i==1)) /*菜单个数的判断*/
{ i=3; ch=0;}
if((ch==77)&&(i==3)) /*ASCII码 77是右箭头*/
{ i=1; ch=0;}
if((ch==75)&&(i>1)) /*ASCII码 75是左箭头*/
i--;
if((ch==77)&&(i<3))
i++;
if(ch==27)
break;
puttext(j*12-11,2,j*12+1,5,buffer);
}
}

您的当前位置是:首页>>电脑知识>>基本输入输出

--------------------------------------------------------------------------------

基本输入输出

基本输入输出函数
下面要进行的工作是编个程序,你输入什么,它就显示什么。程序如No.2所示。
main() /* No.2 */
{
char ch[12]; /*定义一个字符串*/
int i; /*定义一个整(数)型变量*/
printf("请输入一个字符串:"); /*显示提示信息*/
scanf("%s",ch); /*用输入函数输入字符串*/
printf("请输入一个整数:");
scanf("%d",&i); /*输入一个整数*/
printf("输入的字符串是:%s 输入的数字是%d",ch,i);
}
如果你输入的字符串是“中华人民共和国”,数字是2000,那么编译成EXE文件后执行

请输入一个字符串:中华人民共和国
请输入一个整数:2000
输入的字符串是:中华人民共和国 输入的数字是2000

怎么样?比No.1程序要好一些吧,想显示什么就显示什么。你还
可以显示代数式的结果:如把第8行最末尾的数据“i”换成“i*10”
printf("输入的字符串是:%s 输入的数字是%d",ch,i*10);
运行程序时,输出如下:

请输入一个字符串:中华人民共和国
请输入一个整数:2000
输入的字符串是:中华人民共和国 输入的数字是20000

本程序注释较多,这样就增加了程序的可读性。通过此程序我们应学习哪些知识呢?
第3行和第4行是对数据进行定义,任何一个变量在C 语言中必须先定义才能使用。
第5行和第7行的scanf()是输入函数,用来输入用户信息。其格式是:
scanf("数据格式说明",数据列表);
之所以是“数据列表”,就是说这里的数据,既可以是一个,也可以是多个,既可以是相同格式的数据,也可以是不同格式的数据。
scanf("%s%d",ch,&i);
它说明的含义是让用户输入一个字符串再输入一个整数,中间用空格分开。
在格式说明中“%s”“%d”是什么意思呢?“%s”说明输入的是 字符串,“%d”说明输入的是整数
注意:C语言中,整数叫“整型数据”。其它格式如下表所示 %d
十进制整数

%o
八进制整数

%x
十六进制整数

%f
小数或指数形式数据

%c
输入单个字符

上表格式说明也同样适用于printf()函数。如第8行就是一例。需要注意的是,在输入数字或单个字符时,数据列表必须用取地址符号,即“&”,而在输出时则不用。
下面再看一看No.3号程序
main() /*No.3*/
{ int a=5,b=10,c,d;
c=200;
d=a*(b+c);
printf("a*(b+c)=%d",d);
}
在这个小程序里,我们计算了一个小代数式的值,然后输出了它的值。需要说明的是,第二行中,在定义变量时可以赋初值。也可以象第三行那样,在定义后再赋初值。
在C语言中,除了整数外,还有无符号整数、实数(浮点数)、长整数、双清度实数。
在C语言中,整数并不是可以无限大,它的大小是有一定限度的,超过了这个限制,程序就会出错。大小规定如下表所示:

数据类型
存储位(bit)
数值范围

整型 int
16
-32768—32767

无符号整数unsigned
16
0—65535

实数 float
32
10E38—10E38

长整型 long int
32
-2147483648—2147483647

双精度实数 double
64
10E-308—10E308

我们下面练习一个No.4号程序
main() /* No.4 */
{ int a=1000,b=2500,i1;
long c=1000,b=2500,i2;
i1=a*b;
i2=c*d;
printf("整型数据1000*2500的积是%d\n",i1);
printf("长整型数据1000*2500的积是%ld\n",i2);
}
执行程序,屏幕输出:

整型数据1000*2500的积是9632
长整型数据1000*2500的积是2500000

上例中,因为整型数据超出了32767的限制,所以出错。如果计
算结果超过32767,在设计时就应该定义成长整型数据。
今天学习的内容太多了,下面的内容你会多少?
1.输入函数scanf()和输出函数printf()的格式是怎样的?
2.scanf()在输入字符串时和输入数字时有什么区别?
3.输入输出时“%s %d %o %x %c %f”表示什么意思?
4.你能大致了角数字数据类型和最大值最小值吗?
头关机以前,你能否再看一眼No.2、No.3、No.4三个程序

您的当前位置是:首页>>电脑知识>>定位输出

--------------------------------------------------------------------------------

定位输出

在系统程序中,显示内容是方便的,任何一个位置都可以显示,
那么,我们怎样随意显示输出内容呢?在C语言中,光标定位用:
gotoxy(列坐标,行坐标);
下面的No.5例子就是它的具体应用:
/* No5.c*/
#include "stdio.h" /*连入头部文件stdio.h*/
main()
{
char ch; int i;
gotoxy(10,4); /*把光标定位在(10,4)坐标处*/
printf("输入一个字符,它便以大写的形式输出 ");
ch=getchar(); /*用getchar()函数输入一个字符*/
if ((ch>='a') && (ch<='z'))
ch=ch-32;
gotoxy(10,7);
printf("输入一个整数,便把它大1和小1的数输出 ");
scanf("%d",&i);
gotoxy(15,13); printf("你输入的字符大写为%c",ch);
gotoxy(15,14);
printf("你输入的%d两侧的数分别为%d,%d",i,i-1,i+1);
}
第1行是在编译时把stdio.h连入程序文件。具体作用见No.6解释
在上程序的第4行中,两类数据定义占了一行,这是允许的。C语
言程序写法是很随便的,它可以一行一句,也可以一行写多句,上例
的第13行也是这样书写的。不过一般情况下我们不这样写。为了程序
在检查和阅读时方便,我们一般一行写一句,而且程序中一个层次的
内容和另一个层次的内容使用缩格排版格式。如上程序的main()函数
上例中的if()语句等。以后程序中层次越多,越应该形成这样的好习
惯。
如果你输入的字符是m,数字是11,则屏幕输出如下:

输入一个字符,它便以大写的形式输入 m
输入一个整数,便把它大1和小1的数输出 11

你输入的字符大写为M
你输入的11两侧的数分别为10,12

在No.5程序中出现了一个新的函数,它是字符输入函数,它的作用是只输入一个字符。
除了它,还有两个字符输入函数,如右表

getchar()
字符显示,回车键结束

getche()
字符显示,不必按回车

getch()
字符不显示,不必按回车

上述三个字符输入函数使用时没有参数,即()中没有内容。
在C语言中,字符也有大小,它按ASCII表中的值排列大小。可以
进行字符间及字符与数字间的运算。如上例的“ch=ch-32;”。比较
字符大小时,可用字符直接比较,如上例的第7行那样;也可以用数
值进行比较,上第7行可改为:
if ((ch>=97) && (ch<=122))
上一行是程序中的条件语句,它的简单格式是
if(条件表达式)
{ 内容1;}
else
{ 内容2;}
如果条件表达式成立,执行内容1,不成立则执行内容2。else语
句可有可无。当执行内容只有一行时,可以省略内容两侧的“{ }”
上述程序的执行内容就没有“{ }”
在上例的“if ((ch>='a') &&(ch<='z'))”中“&&”是逻辑运
算符,逻辑运算符如下表所示

&&
逻辑与

||
逻辑或

!
逻辑非

任何时候,学习都是为了应用。下面我们编写一个电子表程序:
/* No6.c */
# include "stdio.h" /*连入头部文件stdio.h*/
# include "dos.h" /*连入头部文件dos.h*/
main()
{ struct time t; /*定义时间变量 t */
struct date d; /*定义日期变量 d */
clrscr(); /*清屏*/
getdate(&d); /*获取当前日期*/
gotoxy(33,4);
printf("%d.%d.%d",d.da_year,d.da_mon,d.da_day);
while(!kbhit()) /*如果没有按键,则执行下面内容*/
{ gotoxy(34,6);
gettime(&t); /*获取当前时间*/
printf("%d:%d:%d",t.ti_hour,t.ti_min,t.ti_sec);
}
}
C语言程序特别灵活,它可以把别的程序或文件中的内容,连入
到你的程序中,在C语言中已经有许多我们用到的内容放在了头部文
件中,本例中就是利用了"dos.h"头部文件中的时间和日期的定义。
这种连入,既可以是C语言内部的头部文件(*.h),也可以是你自已
写的文件。你自己被连入的文件既可以是“*.h”文件,也可以是
“*.c”文件。文件连入写法有两种:
#include "dos.h" 用这种写法 dos.h 文件放在当前目录中
#include <dos.h> 用这种写法 dos.h 文件放在TC\INCLUDE目
录中。
第6行中“clrscr();”是清屏函数,它不带参数,作用:清屏
第11行的“kbhit()”函数是用来检测用户是否按了键,但它不
能测试出你按的什么键。要知道按的是什么,必须和输入函数配合使
用。
第11行有“while(!kbhit())”是个循环语句,它的意思是:只
要没有按键,程序便执行{...}所括的内容。
本节内容提纲如下:
1.光标定位:gotoxy(列从标,行坐标);
2.getchar()、getcha()、getch()三个字符输入函数输入时情况
是不同的,一个是光标是否回显,一个是是否用回车结束
3.if(...) 如果...便执行{...}中的内容
4. &&逻辑与,||逻辑或,!逻辑非
5.#include "..." 把...文件和主程序连在一起编译
6.kbhit()测试按键是否按

您的当前位置是:首页>>电脑知识>>使用文件

--------------------------------------------------------------------------------

使用文件

到此为止,我们仍停留在屏上,一些需要的东西还不能做为资料保存。要想把你看到的保留下来,就得把资料存储在磁盘文件中,本节我们用两个例子来学习使用文件。
No.7程序是模仿DOS命令中的程序。
/* No7.c */
#include "stdio.h" /*连入stdio.h*/
main(int argc,char *argv[]) /*带参数的程序(带命令行参数)*/
{
char ch;
FILE *in,*out; /*定义文件指针*/
if(argc!=3) /*如果命令行数目不等于3*/
{ printf("格式应该是: No7 源文件名 目标文件名\n");
exit(1); } /*退出程序*/
if((in=fopen(argv[1],"r"))==NULL) /*打开源文件*/
{ printf("文件不存在或磁盘没准备好!\n");
exit(1); }
if((out=fopen(argv[2],"w"))==NULL)
{ printf("文件复制失败!\n");
exit(1); }
while((ch=fgetc(in))!=EOF) /*如果读出的数据不是结尾标志*/
fputc(ch,out); /*把读出的数据写到目标文件中*/
fclose(in); /*关闭文件*/
fclose(out);
printf(" 1 个文件复制成功 \n");
}
上述程序的主程序是带参数的,argc表示命令行的元素个数,argv[],用来接收程序所带的参数。这些参数的接收都是在执行程序时自动完成的。如用上例程序把名为“HEBEI”文件,复制到名为“BEIFEN”的文件,命令行应执行:
no7 hebei beifen
执行后,argc值为3,argv[1]成为“hebei”,argv[2]赋值为“beifen”。
上例中“exit(1);”表示退出程序的执行,返回到DOS提示符。
文件打开格式用
文件指针=fopen(文件名,"打开方式");
if((in=fopen(argv[1],"r"))==NULL) 意思是“如果文件打开失败”,则... ...
打开方式中“r”是打开文件后,只能从文件中读取信息。“w”是打开文件后,只能从文件中写信息。下面是打开方式及功能列表

r
打开一个文本文件读
rb
打开一个二进制文件读

w
打开一个文本文件写
wb
打开一个二进制文件写

a
打开一个文本文件添加
ab
打开一个二进制文件添加

r+
打开一个文本文件读写
r+b
打开一个二进制文件读写

w+
生成一个文本文件读写
w+b
生成一个二进制文件读写

a+
打开或生成文本文件读写
a+b
打开或生成二进制文件读写

“fclose(文件指针);”用来关闭已打开的文件。 如上面的
fclose(in); fclose(out); 就是应用。
fgetc(文件指针); 从文件中读取一个字符。
fputc(字符,文件指针); 把字符写到文件中去。
EOF是文件结束标志。
下面我们编个简易的文本文件阅读器,它相当于DOS中的“type 文件名 | more”,也就是分页显示文本文件。
/*No8.c*/
#include "stdio.h"
main(int argc,char *argv[])
{
FILE *fp;
int i=1;
char ch;
if(argc<2) /*如果命令行参数少于两个*/
{ printf("正确使用方法是: no8 文本文件名");
exit(1);} /*退出*/
if((fp=fopen(argv[1],"r"))==NULL) /*如果文件打开失败*/
{ printf("%s 不存在",argv[1]);
exit(1);}
else
{ clrscr(); /*清屏*/
while((ch=fgetc(fp))!=EOF) /*读取文件中的字符*/
{ printf("%c",ch); /*显示读出的字符*/
if(ch=='\n') /*如果读出的字符是回车*/
i++;
if(i>=23) /*如果行数到24行*/
{ printf("Any key to continue......\n");
i=1;
getch(); /*输入任一个字符*/
}
}
}
fclose(fp);
}
本例中没有什么更难理解的。需要提醒大家的是:在程序中你打开一个文件后,别忘了在结束程序之前,一定要把打开的文件关闭。
在上述程序中,使用了条件语句中的else语句。在使用else语句时,如果语句不

B. C语言课程设计~~~ 要求编写一段程序,题目是《校际运动会管理系统》

我这是源代码已经调试过了,在VC++上运行成功了。
#include "stdio.h" /*I/O函数*/
#include "stdlib.h" /*其它说明*/
#include "string.h" /*字符串函数*/
#include "conio.h" /*屏幕操作函数*/
#include "mem.h" /*内存操作函数*/
#include "ctype.h" /*字符操作函数*/
#include "alloc.h" /*动态地址分配函数*/
struct score
{
int mingci;
char xuehao[8];
char mingzi[20];
float score[6];
}data,info[1000];
int i,j,k=0;
char temp[20],ch;
FILE *fp,*fp1;

void shuru()
{
if((fp=fopen("s_score.txt","ab+"))==NULL)
{
printf("cannot open this file.\n");
getch();exit(0);
}
for(i=0;i<=1000;i++)
{
printf("\nPlease shuru xuehao:");
gets(data.xuehao);
printf("Please shuru mingzi:");
gets(data.mingzi);
printf("Please shuru yuwen score:");
gets(temp);data.score[0]=atof(temp);
printf("Please shuru shuxue score:");
gets(temp);data.score[1]=atof(temp);
printf("Please input yingyu score:");
gets(temp);data.score[2]=atof(temp);
printf("Please shuru wuli score:");
gets(temp);data.score[3]=atof(temp);
printf("Please shur huaxue score:");
gets(temp);data.score[4]=atof(temp);
data.score[5]=data.score[0]+data.score[1]+data.score[2]+data.score[3]+data.score[4];
fwrite(&data,sizeof(data),1,fp);
printf("another?y/n");
ch=getch();
if(ch=='n'||ch=='N')
break;
} fclose(fp);
}
void xianshi()
{
float s;int n;
if((fp=fopen("s_score.txt","rb+"))==NULL)
{
printf("Cannot reading this file.\n");
exit(0);
}
for(i=0;i<=1000;i++)
{
if((fread(&info[i],sizeof(info[i]),1,fp))!=1)
break;
}
printf("\nxuehao mingzi yuwen shuxue yingyu wuli huauxue zhongfen\n");
for(j=0,k=1;j<i;j++,k++)
{
info[j].mingci=k;
printf("%6s %8s %3.1f %3.1f %3.1f %3.1f %3.1f %3.1f\n",info[j].xuehao,info[j].mingzi,info[j].score[0],info[j].score[1],info[j].score[2],info[j].score[3],info[j].score[4],
info[j].score[5]);
}
getch();
fclose(fp);
}

void xiugai()
{
if((fp=fopen("s_score.txt","rb+"))==NULL||(fp1=fopen("temp.txt","wb+"))==NULL)
{
printf("Cannot open this file.\n");
exit(0);
}
printf("\nPLease shuru xiugai xuehao:");
scanf("%d",&i); getchar();
while((fread(&data,sizeof(data),1,fp))==1)
{
j=atoi(data.xuehao);
if(j==i)
{
printf("xuehao:%s\nmingzi:%s\n",data.xuehao,data.mingzi);
printf("Please shuru mingzi:");
gets(data.mingzi);
printf("Please shuru yuwen score:");
gets(temp);data.score[0]=atof(temp);
printf("Please shuru shuxue score:");
gets(temp);data.score[1]=atof(temp);
printf("Please input yingyu score:");
gets(temp);data.score[2]=atof(temp);
printf("Please input wuli score:");
gets(temp);data.score[3]=atof(temp);
printf("Please input huaxue score:");
gets(temp);data.score[4]=atof(temp);
data.score[5]=data.score[0]+data.score[1]+data.score[2]+data.score[3]+data.score[4];

} fwrite(&data,sizeof(data),1,fp1);
}
fseek(fp,0L,0);
fseek(fp1,0L,0);
while((fread(&data,sizeof(data),1,fp1))==1)
{
fwrite(&data,sizeof(data),1,fp);
}

fclose(fp);
fclose(fp1);
}
void chazhao()
{
if((fp=fopen("s_score.txt","rb"))==NULL)
{
printf("\nCannot open this file.\n");
exit(0);
}
printf("\nPLease shuru xuehao chakan:");
scanf("%d",&i);
while(fread(&data,sizeof(data),1,fp)==1)
{
j=atoi(data.xuehao);
if(i==j)
{
printf("xuehao:%s mingzi:%s\nyuwen:%f\n shuxue:%f\n yingyu:%f\n wuli:%f\n huaxue:%f\n ",data.xuehao,data.mingzi,data.score[0],data.score[1],data.score[2],data.score[3],data.score[4],data.score[5]);
}getch();
}
}
void shanchu()
{
if((fp=fopen("s_score.txt","rb+"))==NULL||(fp1=fopen("temp.txt","wb+"))==NULL)
{
printf("\nopen score.txt was failed!");
getch();
exit(0);
}
printf("\nPlease input ID which you want to del:");
scanf("%d",&i);getchar();
while((fread(&data,sizeof(data),1,fp))==1)
{
j=atoi(data.xuehao);
if(j==i)
{

printf("Anykey will delet it.\n");
getch();
continue;
}
fwrite(&data,sizeof(data),1,fp1);
}
fclose(fp);
fclose(fp1);
remove("s_score.txt");
rename("temp.txt","s_score.txt");
printf("Data delet was succesful!\n");
printf("Anykey will return to main.");
getch();
}
main()
{
while(1)
{
clrscr(); /*清屏幕*/
gotoxy(1,1); /*移动光标*/
textcolor(YELLOW); /*设置文本显示颜色为黄色*/
textbackground(BLUE); /*设置背景颜色为蓝色*/
window(1,1,99,99); /* 制作显示菜单的窗口,大小根据菜单条数设计*/
clrscr();
printf("*************welcome to use student manage******************\n");
printf("*************************menu********************************\n");
printf("* ========================================================= * \n");
printf("* 1>shuru 2>xiugai * \n");
printf("* 3>shanchu 4>chazhao * \n");
printf("* 5>xianshi 6>exit * \n");
printf("* * \n");
printf("* --------------------------------------------------------- * \n");
printf(" Please input which you want(1-6):");
ch=getch();
switch(ch)
{
case '1':shuru();break;
case '2':xiugai(); break;
case '3':shanchu(); break;
case '4':chazhao(); break;
case '5':xianshi(); break;
case '6':exit(0);
default: continue;
}
}

C. 怎么去学习编程c语言,我没有一点数学基础 还有就是看不懂里面的代码 需要怎样去学 谢谢!

看不懂代码可以找网上的公开课,都有免费的,老师讲的也很详细

D. C语言程序设计:通讯录程序设计

#include "stdlib.h"
#include "string.h"
#include "conio.h"
#include "stdio.h"
#include "dos.h"
FILE *fp;
int i; //i是全局变量 可代替length
struct address
{ char postnum[10];
char a[40]; //家庭地址
};
struct birthday
{ int year;
int month;
int day;
};
struct ffriend
{ int num; //序号
char name[20];
char sex;
char telephone[13];
struct birthday birthday;
struct address address;

}
friends[50];

void Load()
{
int j;
long k;
fp=fopen("friend.txt","a+"); //打开文件friend.txt
if(fp!=NULL)
{
for(i=1;i<50;i++)

{
j=fgetc(fp);
if(j==EOF) //判断是否到了文件尾
return;
k=i-1;
fseek(fp,k*sizeof(struct ffriend),SEEK_SET);
fread(&friends[i],sizeof(struct ffriend),1,fp); //从文件中读取一条记录
}

}
else
{
fp=fopen("friend.txt","w");
i=1;
}

}
void Show(int j)
{
// friends[j].num=i;
printf("\n\n\t编号-Nnumber: %3d",friends[j].num);
printf("\n\t姓名-Name:%-20s",friends[j].name);
printf("\n\t性别-Sex:%c",friends[j].sex);
printf("\n\t联系电话-Telephone:%-13s",friends[j].telephone);
printf("\n\t出生日期-Birthday:%4d-%2d-%3d",friends[j].birthday.year,friends[j].birthday.month,friends[j].birthday.day);
printf("\n\t邮编-Postnum:%-10s",friends[j].address.postnum);
printf("\n\t通信地址-address:%-40s",friends[j].address.a);
}
void Append(int j)
{
fflush(stdin); //区内清除文件缓冲区,文件以写方式打开时将缓冲容写入文件
//stdin是一个标准FILE*(文件型指针)指向通常是用键盘的输入的输入流
friends[j].num=j;
printf("\n\t\t\t序号-Number:%d",j);
printf("\n\t\t\t姓名-Name:");
scanf("%s",friends[j].name);
fflush(stdin); //为什么没有fflush(stdin); 的效果会自动跳过呢?
printf("\t\t\t性别-Sex(m/w):"); //为什么输入汉字男女也会自动跳过联系电话呢
scanf("%c",&friends[j].sex);
printf("\t\t\t联系电话-telephone:");
scanf("%s",friends[j].telephone);
printf("\t出生日期-birthday");
printf("\n\t\t\t年份-year:");
scanf("%d",&friends[j].birthday.year);
printf("\t\t\t月份-month:");
scanf("%d",&friends[j].birthday.month);
printf("\t\t\t日-day:");
scanf("%d",&friends[j].birthday.day);
printf("\t\t\t邮编-Postnumber:");
scanf("%s",friends[j].address.postnum);
printf("\t\t\t通信地址-Address:");
scanf("%s",friends[j].address.a);
getchar();
}
void Delete()
{
int k;
printf("\n\tDelete 序号-Number:");
scanf("%d",&k);
if(k<=i)
{
for(int j=k;j<i+1;j++) /*插入位置后的元素顺序后移*/
{
strcpy(friends[j].name,friends[j+1].name); /*交换元素内容*/
friends[j].sex=friends[j+1].sex;
strcpy(friends[j].telephone,friends[j+1].telephone);
friends[j].birthday.year=friends[j+1].birthday.year;
friends[j].birthday.month=friends[j+1].birthday.month;
friends[j].birthday.day=friends[j+1].birthday.day;
strcpy(friends[j].address.postnum,friends[j+1].address.postnum);
strcpy(friends[j].address.a,friends[j+1].address.a);

}
i--;
}
else
{
printf("输入的序号太大!");
}
}
void Modify(int j)
{
Append(j);
}
void Save()
{
int j;
fp=fopen("friend.txt","w");
for(j=1;j<=i;j++)
{
fwrite(&friends[j],sizeof(struct ffriend),1,fp);
}
fclose(fp);

}

void main()
{
int j;
char grade;
char searchname[10];
Load();
i--;
do
{
printf("\t\t\t\t简易通讯录\n\n");
printf("功能选择(Function choose)\n");
printf("\1A.读取(Read)\n");
printf("\2B.增添(Append)\n");
printf("\6C.插入(Insert)\n");
printf("\5D.删除(Delete)\n");
printf("\5E.查询(Search)\n");
printf("\6F.修改(Modify)\n");
printf("\2G.保存(Save)\n");
printf("\1H.退出(Quit)\n");
printf("请选择(Choice)\n注:输入A~H的大写字母\n");
scanf("%c",&grade);
switch(grade)
//加个大写和小写 都可以啊
{
case 'A': j=1; //显示功能
while(getchar()!=0x1b&&j<=i) //增添按Esc键退出
{
Show(j++);
printf("\n请按回车键继续!");
}
if(j-1<1)
{
printf("\n\t空文档,无任何记录-Empty Note\n");
printf("\n请按回车键继续!");
getchar();

}
printf("\n\t\t\t\t\t\t\t此次操作结束");
printf("\n\t------------------------------------------------------------\t\t\n");
break;
case 'B': //增加功能
while(i<=50) //增加按ESC键退出的功能
{
i++;
Append(i);
printf("\t是否继续增加?y/n");
//修改 加上else if 其他就跳出或强制打印出出错
char a=getchar();
if(a=='n'||a=='N')
break;
}
if(i==51)
printf("\n\t文档已满,无法增加记录-note full");
printf("\n\t\t\t\t\t\t\t此次操作结束");
printf("\n\t------------------------------------------------------------\t\t\n");
getchar();
break;
case 'C':
int k;
printf("\n\t输入要插入的位置:");
scanf("%d",&k);
j=i+1;
friends[j].num=j;
for(j;j>k;j--) //插入功能
{
strcpy(friends[j].name,friends[j-1].name); //数据后移
friends[j].sex=friends[j-1].sex;
strcpy(friends[j].telephone,friends[j-1].telephone);
friends[j].birthday.year=friends[j-1].birthday.year;
friends[j].birthday.month=friends[j-1].birthday.month;
friends[j].birthday.day=friends[j-1].birthday.day;
strcpy(friends[j].address.postnum,friends[j-1].address.postnum);
strcpy(friends[j].address.a,friends[j-1].address.a);

}
Append(k);
i++;
printf("\n\t\t\t\t\t\t\t此次操作结束");
printf("\n\t------------------------------------------------------------\t\t\n");
break;
case 'D': //删除功能 //增添随意删除多条记录的功能
Delete();
if(i<1)
printf("\n没有记录-No records\n");
printf("\n请按回车键继续!");
getchar();
getchar();
printf("\n\t\t\t\t\t\t\t此次操作结束");
printf("\n\t------------------------------------------------------------\t\t\n");
break;
case 'E': //查询功能
printf("\n\t请输入要查询记录的相关姓名:"); //增添查询按列号的
scanf("%s",searchname);
for(j=1;j<=i;j++)
{
if(strcmp(searchname,friends[j].name)==0) //比较字符串
{
Show(j);
break;
}
}
if(i<1)
{
printf("\n 没有您所查询的记录-No records");
printf("\n 请按回车键继续!");
getchar();
}
printf("\n\t\t\t\t\t\t\t此次操作结束");
printf("\n\t------------------------------------------------------------\t\t\n");
getchar();
break;
case 'F': //修改功能 / /增添按序列号查询
printf("\n\t请输入要修改记录的相关姓名:");
gets(searchname);
scanf("%s",searchname);
for(j=1;j<=i;j++)
{
if(strcmp(searchname,friends[j].name)==0) //比较字符串
{
Modify(j);
// getchar(); //加个输出确定修改吗
}
}
if(i<1) //修改功能
{ printf("\n 没有您所要修改的记录-No records");
printf("\n 请按回车键继续!");
getchar();
getchar();
}
printf("\n\t\t\t\t\t\t\t此次操作结束");
printf("\n\t------------------------------------------------------------\t\t\n");
break;
case 'G':
Save(); //存盘功能
getchar();
printf("\n\t\t\t\t\t\t\t此次操作结束");
printf("\n\t------------------------------------------------------------\t\t\n");
break;

case 'H': //退出功能
char x;
printf("是否保存?yes/no\n");
scanf("%s",&x);
//getchar();
// getchar();
if(x=='y')
{
Save();
exit(0);
}
else
exit(0);

default:
printf("\n\t输入有误,请输入正确的序列号!");
printf("\n请按回车键继续!");
getchar();
printf("\n\t\t\t\t\t\t\t此次操作结束");
printf("\n\t------------------------------------------------------------\t\t\n");
}
}while(1);
}

E. 2010年9月份计算机二级C语言考试提纲

二级(C语言程序设计)考试大纲

公共基础知识

基本要求
1. 掌握算法的基本概念。
2. 掌握基本数据结构及其操作。
3. 掌握基本排序和查找算法。
4. 掌握逐步求精的结构化程序设计方法。
5. 掌握软件工程的基本方法,具有初步应用相关技术进行软件开发的能力。
6. 掌握数据的基本知识,了解关系数据库的设计。

考试内容

一、 基本数据结构与算法

1. 算法的基本概念;算法复杂度的概念和意义(时间复杂度与空间复杂度)。
2. 数据结构的定义;数据的逻辑结构与存储结构;数据结构的图形表示;线性结构与非线性结构的概念。
3. 线性表的定义;线性表的顺序存储结构及其插入与删除运算。
4. 栈和队列的定义;栈和队列的顺序存储结构及其基本运算。
5. 线性单链表、双向链表与循环链表的结构及其基本运算。
6. 树的基本概念;二叉树的定义及其存储结构;二叉树的前序、中序和后序遍历。
7. 顺序查找与二分法查找算法;基本排序算法(交换类排序,选择类排序,插入类排序)。

二、 程序设计基础

1. 程序设计方法与风格。
2. 结构化程序设计。
3. 面向对象的程序设计方法,对象,方法,属性及继承与多态性。

三、 软件工程基础

1. 软件工程基本概念,软件生命周戎概念,软件工具与软件开发环境。
2. 结构化分析方法,数据流图,数据字典,软件需求规格说明书。
3. 结构化设计方法,总体设计与详细设计。
4. 软件测试的方法,白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试、集成测试和系统测试。
5. 程序的调试,静态调试与动态调试。

四、 数据库设计基础

1. 数据库的基本概念:数据库,数据库管理系统,数据库系统。
2. 数据模型,实体联系模型及E-R图,从E-R图导出关系数据模型。
3. 关系代数运算,包括集合运算及选择、投影、连接运算,数据库规范化理论。
4. 数据库设计方法和步骤:需求分析、概念设计、逻辑设计和物理设计的相关策略。

考试方式

1、 公共基础的考试方式为笔试,与C语言(VisualBASIC、Visual FoxPRo、java、access、Visual C++)的笔试部分合为一张试卷。公共基础部分占全卷的30分。
2、 公共基础知识有10道选择题和5道填空题。

C语言程序设计
基本要求

1.熟悉TURBO C集成环境。
2.熟练掌握结构化程序设计的方法,具有良好的程序设计风格。
3.掌握程序设计中简单的数据结构和算法。
4.TURBO C的集成环境下,能够编写简单的C程序,并具有基本的纠错和调试程序的能力。

考试内容

一、C语言的结构

1.程序的构成,MAIN函数和其他函数。
2.头文件,数据说明,函数的开始和结束标志。
3.源程序的书写格式
4.C语言的风格。

二、数据类型及其运算

1.C的数据类型(基本类型,构造类型,指针类型,空类型)及其定义方法。
2.C运算符的种类、运算优先级和结合性。
3.不同类型数据间的转换与运算。
4.C表达式类型(赋值表达式、算术表达式、关系表达式、逻辑表达式、条件表达式、逗号表达式)和求值规则。

三、基本语句

1.表达式语句,空语句,复合语句。
2.数据的输入和输出,输入输出函数的调用。
3.复合语句。
4.GOTO语句和语句标号的使用。

四、选择结构程序设计

1.用if语句实现选择结构。
2.用switch语句实现多分支选择结构。
3.选择结构的嵌套。

五、循环结构程序设计

1.for 循环结构。
2.while和do while循环结构。
3.continue语句和break语句。
4.循环的嵌套。

六、数组的定义和引用

1.一维数组和多维数组的定义、初始化和引用。
2.字符串与字符数组。

七、函数

1.库函数的正确调用。
2.函数的定义方法。
3.函数的类型和返回值。
4.形式参数与实在参数,参数值的传递。
5.函数的正确调用,嵌套调用,递归调用。
6.局部变量和全局变量。
7.变量的存储类别(自动、静态、寄存器、外部),变量的作用域和生存期。
8.内部函数与外部函数。

八、编译预处理

1.宏定义:不带参数的宏定义;带参数的宏定义。
2.“文件包含”处理。

九、指针

1.指针与指针变量的概念,指针与地址运算符。
2.变量、数组、字符串、函数、结构体的指针以及指向变量、数组、字符串、函数、结构体的指针变量。通过指针引用以上各类型数据。
3.用指针作函数参数。
4.返回指针值的指针函数。
5.指针数组,指向指针的指针,MAIN函数的命令行参数。

十、结构体(即“结构”)与共用体(即“联合”)

1.结构体和共用体类型数据的定义方法和引用方法。
2.用指针和结构体构成链表,单向链表的建立、输出、删除与插入。

十一、位运算

1.位运算符的含义及使用。
2.简单的位运算。

十二、文件操作

只要求缓冲文件系统(即高级磁盘I/O系统),对非标准缓冲文件系统(即低级磁盘I/O系统)不要求。
1.文件类型指针(FILE类型指针)。
2.文件的打开与关闭(fopen,fclose)。
3.文件的读写(fputc,fgetc,fputs,fgets,fread,frwite,fprintf,fscanf函数),文件的定位(rewind,fseek函数)。

考试方式

1.笔试:120分钟,满分100分,其中含公共基础知识部分的30分。
2.上机:60分钟,满分100分。
-

资料引用:http://www.knowsky.com/18130.html

热点内容
没有被调用的函数会参与编译吗 发布:2025-05-15 13:42:51 浏览:259
在计算机中ftp的中文 发布:2025-05-15 13:41:07 浏览:999
国网校招要网签密码和账号干什么 发布:2025-05-15 13:40:25 浏览:178
java分 发布:2025-05-15 13:34:36 浏览:846
如何下载卡巴斯基安卓版 发布:2025-05-15 13:34:36 浏览:480
排序函数c语言 发布:2025-05-15 13:06:28 浏览:6
韩服lol挂机脚本 发布:2025-05-15 12:42:56 浏览:461
监控存储服务器如何调试 发布:2025-05-15 12:36:30 浏览:219
一万级净化车间有哪些配置 发布:2025-05-15 12:16:41 浏览:98
javazip解压加密 发布:2025-05-15 12:15:02 浏览:943