《2022年C语言复习 .pdf》由会员分享,可在线阅读,更多相关《2022年C语言复习 .pdf(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1 一、填空1函数调用时的实参和形参之间的数据是单向的【1】传递.值2设 a、b、c 为整型数,且 a=2、b=3、c=4,则执行完以下语句:a*=16+(b+)-(+c);后,a 的值是【1】.28 3.C 语言中,【1】是程序的基本组成部分.函数4.C 语言的三种基本结构是【1】结构、选择结构、循环结构.顺序5.执行以下程序段后,s的值是【1】16 int a=5,3,7,2,1,5,3,10,s=0,k;for(k=0;k278 的值是【1】.09.C 语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是【1】.int 10.函数的定义不可以嵌套,但函数的调用【1】嵌套.可以11.设
2、 x 的值为 15,n 的值为 2,则表达式 x%=(n+3)运算后 x 的值是【1】.0 12.如果函数不要求带回值,可用【1】来定义函数返回值为空.void 13.设有程序段int x=4,y=4;t=+x|+y;执行语句后y 的值为【1】.414.执行下列语句后,*(p+1)的值是【1】.b char s3=ab,*p;p=s;15.若有以下定义和语句:int a4=0,1,2,3,*p;p=&a2;则*-p的值是【1】.1 16.设 x 和 y 均为 int型变量,且 x=1,y=2,则表达式1.0+x/y的值为【1】.1.0 17.若 x 为 int型,请以最简单的形式写出与逻辑表达
3、式!x 等价的 C语言关系表达式【1】.x=018.逗号表达式(a=3*5,a*4),a+5的值为【1】.2019.在调用函数fopen(a:b.dat,r)时,若 A盘根目录下不存在文件b.dat,则函数的返回值是【1】.NULL 20.已知 x=2,y=2 则表达式x*=y+8 的值为【1】.2021.若声明 char a15=Windows-9x;,语句printf(%s,a+8);的输出结果为【1】.9x 22.设 a,b,t 为整型变量,初值为 a=7,b=9,执行完语句t=(ab)?a:b后,t 的值是【1】.923.若 a=1,b=4,c=3,表达式 a&b+c|b-c的值为【1
4、】.1 24.设 int i=5;则循环语句while(i =1)i-;执行后,i的值为【1】.0 25.调用 fopen 函数打开一文本文件,在使用方式 这一项中,为输入而打开需填入【1】.r26.从函数的形式上看,函数分为无参函数和【1】两种类型.有参函数27.C 程序中有且仅有一个【1】函数.main 28.从变量的作用域角度分有全局变量和【1】.局部变量29.设有下面的程序段int x=0,y=0,t;t=x&+y;执行语句后y 的值为【1】.0 30.若有定义:char s=china;则 Visual C+系统为数组 s 开辟【1】个字节的内存单元.631.写出语句 b=(a=6,
5、a*3);执行后整型变量b 的值是【1】.1832.当 a=1,b=1,c=1时,表达式 abc 的值是【1】.1 33.设 y 为 int型变量,请写出描述 y 为奇数 的表达式【1】.y%2!=0=或=y%2=1 34.在 C语言中的实型变量分为两种类型,它们是 float型和【1】型.double35.【1】语句,只能用在循环中,以中断某次循环,继续下一次循环.continue 36.union un1 int a;char b;float c;x;上述定义的共同体变量x 共占用存储空间【1】个字节.4 37.已知 i=5,写出语句 a=i+;执行后整型变量a 的值是【1】.538.计算
6、 a、b 中最小值的条件表达式为【1】.ae 的值为【1】.1 42.若有以下定义和语句:int a5=1,3,5,7,9,*p;p=&a2;则+(*p)的值是【1】.6 43.在函数调用中,若实参为数组名,则形参必须为数组名或【1】.指针变量44.已知 i=5;写出语句 i+=012;执行后整型变量 i 的十进制值是【1】.1545.C 语言中调用【1】函数来关闭文件.fclose 名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 17 页 -2 46.程序段 int k=10;while(k=0)k=k-1循环体语句执行【1】次.0 47.若在程序中用到strlen()函数时,
7、应在程序开头写上包含命令#include 【1】.string.h 48.当程序读写数据文件时,需要有声明语句FILE*fp;,在该声明语句之前必须包含的头文件名为【1】.stdio.h 二、单项选择1.设变量定义为 int x,*p=&x;,则&(*p)相当于AA:p B:*p C:x D:*(&x)2.C 语言中要求对变量作强制定义的主要理由是().DA:便于移植 B:便于写文件C:便于编辑预处理程序的处理D:便于确定类型和分配空间3.设有以下说明语句struct ex int x;float y;char z;example;则下面的叙述中不正确的是().BA:struct结构体类型的关
8、键 B:example是结构体类型名C:x,y,z都是结构体成员名 D:struct ex是结构体类型4.C 语言中不可以嵌套的是().BA:函数调用 B:函数定义 C:循环语句 D:选择语句5.在 C 语言中,if语句后的一对原括号中,用以决定分支的流程的表达式().DA:只能用逻辑表达式 B:只能用关系表达式C:只能用逻辑表达式或关系表达式 D:可用任意表达式6.C 语句 x*=y+2;还可以写作().CA:x=x*y+2;B:x=2+y*x;C:x=x*(y+2);D:x=y+2*x;7对以下说明语句 int a10=6,7,8,9,10;的正确理解是().BA:将 5 个初值依次赋给a
9、1 至 a5 B:将 5 个初值依次赋给a0 至 a4 C:将 5 个初值依次赋给a6 至 a10 D:因为数组长度与初值的个数不相同,所以此语句不正确8.C 语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是().BA:void B:int C:float D:double 9.设已有声明 int x=1,2,3,4,5,6,*p=&x2;,则值为 3 的表达式是().BA:*+p B:*(p+)C:+*p D:*p+1 10.判断 char 型变量 cl 是否为小写字母的正确表达式是().DA:a=cl=a)&(cl=cl)|(z=a)&(cly-?x:y的值为().DA:4 B:1
10、 C:2 D:3 13.设有说明:char c;int x;double z;则表达式 c*x+z值的数据类型为DA:float B:int C:char D:double 14.若已定义 x 和 y 为 double 类型,则表达式 x=1,y=x+3/2 的值是().CA:1 B:2 C:2.0 D:2.5 15.设变量定义为 int a,b;,执行下列语句时,输入_,则 a 和 b 的值都是10.D scanf(a=%d,b=%d,&a,&b);A:10 10 B:10,10 C:a=10 b=10 D:a=10,b=10 16.数组名作为实参数传递给函数时,数组名被处理为().CA:该
11、数组的长度 B:该数组的元素个数C:该数组的首地址 D:该数组中各元素的值17.两个指针变量不可以().AA:相加 B:比较 C:相减 D:指向同一地址18.下列()表达式的值为真,其中 a=5;b=8;c=10;d=0 DA:a*28+2 B:a&d C:(a*2-c)|d D:a-b=10 or a=0|a=10&a=10|a=0 22.下列字符序列中,不可用作C语言标识符的是().BA:b70 B:#ab C:symbol D:a_1 23.系统的标准输入文件是指().AA:键盘 B:显示器 C:软盘 D:硬盘24.若给定条件表达式(M)?(a+):(a-),则其中表达式M().C名师资
12、料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 17 页 -3 A:和(M=0)等价 B:和(M=1)等价C:和(M!=0)等价 D:和(M!=1)等价25.假设所有变量均为整型,则表达式(a=2,b=5,b+,a+b)的值是().BA:7 B:8 C:6 D:2 26.库函数在使用时,要用()AA:#include命令 B:#define命令 C:#if D:#else 27.C 语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符().CA:必须为字母 B:必须为下划线C:必须为字母或下划线D:可以是字母,数字和下划线中任一字符28.已定义两个字符数组a,b,则以下正确
13、的输入格式是AA:scanf(%s%s,a,b);B:get(a,b);C:scanf(%s%s,&a,&b);D:gets(a),gets(b);29.以下不能正确进行字符串赋初值的语句是().AA:char str5=good!;B:char str=good!;C:char*str=good!;D:char str5=g,o,o,d,0;30.不正确的字符串赋值或赋初值的方式是().CA:char str=string;B:char str7=s,t,r,i,n,g;C:char str10;str=string;D:char str7=s,t,r,i,n,g,0;31.关于建立函数的目
14、的,以下正确的说法是().BA:提高程序的执行效率B:提高程序的可读性C:减少程序的篇幅D:减少程序文件所占内存32.以下标识符中,不能作为合法的C用户定义标识符的是().BA:a3_b3 B:void C:_123 D:IF 33.若变量均已正确定义并赋值,以下合法的C语言赋值语句是 AA:x=n/2.5;B:x=5;C:x+n=I;D:5=x=4+1;34.若有声明 int x10=0,1,2,3,4,5,6,7,8,9,*p,则值不为4 的表达式是().CA:p=x,*(p+4)B:p=x+4,*p+C:p=x+3,*(p+)D:p=x+3,*+p 35.以下的选择中,正确的赋值语句是(
15、).CA:a=1,b=2 B:j+C:a=b=5;D:y=int(x)36.gets函数的功能是()BA:读取从键盘输入的一串不带空格的字符串B:读取从键盘输入的一串带空格的字符串C:读取从键盘输入的一串不带数字的字符串D:读取从键盘输入的一串只带字母的字符串37.若已定义 x 为 int类型变量,下列语句中说明指针变量p 的正确语句是().CA:int p=&x;B:int*p=x;C:int*p=&x;D:*p=*x;38.执行语句 for(i=1;i+y?+x:+y的值为().Cint x=1,y=2,z=3;A:2 B:3 C:6 D:5 43.若用数组名作为函数的实参,传递给形参的是
16、().AA:数组的首地址 B:数组第一个元素的值C:数组中全部元素的值 D:数组元素的个数44.已知大写字母A的 ASCII 码值是 65,小写字母a 的ASCII 码是 97,则用八进制表示的字符常量101是().AA:字符 A B:字符 a C:字符 e D:非法的常量45.设 C语言中,int类型数据占2 个字节,则 long 类型数据占().CA:1 个字节 B:2个字节 C:4个字节 D:8个字节46.下列运算符中,不属于关系运算符的是().DA:C:=D:!47.下列字符数组长度为5 的是 AA:char a=h,a,b,c,d;B:char b=h,a,b,c,d,0;C:cha
17、r c10=h,a,b,c,d;D:char d6=h,a,b,c,0;48.设有说明语句 char a=101;,则变量 a().DA:包含 4 个字符 B:包含 2 个字符C:包含 3 个字符 D:包含 1 个字符49.当定义一个结构体变量时,系统分配给它的内存是().AA:各成员所需内存量的总和B:结构中第一个成员所需内存量名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 17 页 -4 C:结构中最后一个成员所需内存量 D:成员中占内存量最大者所需的容量50.能将高级语言编写的源程序转换为目标程序的是().CA:链接程序 B:解释程序 C:编译程序 D:编辑程序51.具有相
18、同类型的指针变量p 与数组 a,不能进行的操作是().DA:p=a;B:*p=a0;C:p=&a0;D:p=&a;52.为了避免在嵌套的条件语句if else中产生二义性,C 语言规定:else总与()配对 BA:缩排位置相同的if B:其之前最近的未配对的if C:其之后最近的if D:同一行上的if 53.设有说明:char w;int x;float y;double z;则表达式 w*x+z-y值的数据类型为().DA:float B:int C:char D:double 54.整型变量x=1,y=3,经下列计算后,x 的值不等于6 的是CA:x=(x=1+2,x*2)B:x=y2?
19、6:5 C:x=9-(-y)-(y-)D:x=y*4/2 55.若有定义:int aa 8;则以下表达式中不能代表数组元 aa1 的地址的是().CA:&aa0+1 B:&aa1 C:&aa0+D:aa+1 56.若有定义int a10,*p=a;,则 p+5 表示 AA:元素 a5 的地址 B:元素 a5 的值C:元素 a6 的地址 D:元素 a6 的值57.C语言中运算对象必须是整型的运算符是().AA:%=B:/C:=D:=58.若二维数组a 有 m列,则在 aij前的元素个数为().BA:j*m+i B:i*m+j C:i*m+j-1 D:i*m+j+1 59.从循环体内某一层跳出,继
20、续执行循环外的语句是AA:break语句 B:return语句C:continue语句 D:空语句60.以下运算符中,优先级最高的运算符是().DA:=B:!=C:*(乘号)D:()61.逻辑运算符两侧运算对象的数据类型().DA:只能是 0 或 1 B:只能是 0 或非 0 正数C:只能是整型或字符型数据 D:可以是任何类型的数据62.若 i 为整型变量,则以下循环执行次数是().Bfor(i=2;i=0;)printf(%d,i-);A:无限次 B:0次 C:1次 D:2次63.逗号表达式 (a=3*5,a*4),a+15 的值是().CA:15 B:60 C:30 D:不确定64.fsc
21、anf函数的正确调用形式是().DA:fscanf(fp,格式字符串,输出表列);B:fscanf(格式字符串,输出表列,fp);C:fscanf(格式字符串,文件指针,输出表列);D:fscanf(文件指针,格式字符串,输入表列);65.C 语言的 switch语句中 case 后 BA:只能为常量B:只能为常量或常量表达式C:可为常量或表达式或有确定值的变量及表达式D:可为任何量或表达式66.设变量 a 是整型,f是实型,i是双精度型,则表达式10+a+i*f值的数据类型为().CA:int B:float C:double D:不确定67.下列标识符中,不合法的C 语言用户自定义标识符是
22、().BA:printf B:enum C:_ D:sin 68.以下定义语句中,错误的是().DA:int a=1,2;B:char*a3;C:char s10=test;D:int n=5,an;69.若有下列定义,则对 a 数组元素地址的正确引用是().Bint a5,*p=a;A:&a5 B:p+2 C:a+D:&a 70.在 C 语言程序中().BA:函数的定义可以嵌套,但函数的调用不可以嵌套B:函数的定义不可以嵌套,但函数的调用可以嵌套C:函数的定义和函数调用均可以嵌套D:函数的定义和函数调用不可以嵌套71.设有定义 float y=3.45678;int x;,则以下表达式中能实
23、现将y 中数值保留小数点后2 位,第 3 位四舍五入的表达式是().DA:y=(y*100+0.5)/100.0 B:y=(y/100+0.5)*100.0 C:y=y*100+0.5/100.0 D:x=y*100+0.5,y=x/100.0 72.若有说明:int a3=1,2,3,4,5,6,7;则 a 数组第一维的大小是().BA:2 B:3 C:4 D:无确定值73.已知结构类型定义和变量声明如下:struct sk int a;float b;data2,*p;若有 p=data,则以下对data0中成员 a 的引用中错误的是().AA:data0-a B:data-a C:p-a
24、 D:(*p).a 74.下列格式符中,可以用于以8 进制形式输出整数的是().CA:%d B:%8d C:%o D:%1d 75.语句 while(!E);中的表达式!E 等价于().AA:E=0 B:E!=1 C:E!=0 D:E=1 76.对二维数组的正确说明是().B名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 17 页 -5 A:int a=1,2,3,4,5,6;B:int a3=1,2,3,4,5,6;C:int a2=1,2,3,4,5,6;D:int a23=1,2,3,4,5,6,7 77.下列数据中,为字符串常量的是().BA:A B:house C:Ho
25、w do you do.D:$abc 78.函数调用:strcat(strcpy(str1,str2),str3)的功能是 DA:将串 str1复制到串str2中后再连接到串str3之后B:将串 str1连接到串str2之后再复制到串str3之后C:将串 str2连接到串str1之后再将串str1复制到串str3中D:将串 str2复制到串str1中后再将串str3连接到串str1之后79.判断两个字符串是否相等,正确的表达方式是CA:while(s1=s2)B:while(s1=s2)C:while(strcmp(s1,s2)=0)D:while(strcmp(s1,s2)=0)80.若有
26、int a10=0,1,2,3,4,5,6,7,8,9,*p=a;则输出结果不为5 的语句为().DA:printf(%d,*(a+5);B:printf(%d,p5);C:printf(%d,*(p+5);D:printf(%d,*p5);81.C语言程序中必须有的函数是().BA:#include stdio.h B:main C:printf D:scanf 82.以下运算符中,优先级最高的运算符是().CA:|B:%C:!D:=83.在下列程序段中,枚举变量c1,c2的值依次是().Aenum color red,yellow,blue=4,green,white c1,c2;c1=y
27、ellow;c2=white;printf(%d,%dn,c1,c2);A:1,6 B:2,5 C:1,4 D:2,6 84.int a10=1,2,3,4,5,6,7,8;int*p;p=&a5;p-3的值是().BA:2 B:3 C:4 D:不一定85.已知有如下的结构类型定义和变量声明:struct student int num;char name10;stu=1,marry,*p=&stu;则下列语句中错误的是().CA:printf(%d,stu.num);B:printf(%d,(&stu)-num);C:printf(%d,&stu-num);D:printf(%d,p-num
28、);86.int a=3,b=2,c=1;if(abc)a=b;else a=c;则 a 的值为().CA:3 B:2 C:1 D:0 87.已定义以下函数fun(char*p2,char*p1)while(*p2=*p1)!=0)p1+;p2+;函数的功能是()AA:将 p1 所指字符串复制到p2 所指内存空间B:将 p1 所指字符串的地址赋给指针p2 C:对 p1 和 p2 两个指针所指字符串进行比较D:检查 p1 和 p2 两个指针所指字符串中是否有0 88.enum a sum=9,mon=-1,tue;定义了().CA:枚举变量 B:3个标识符C:枚举数据类型 D:整数 9 和-1
29、89.变量的指针,其含义是指该变量的().BA:值 B:地址 C:名 D:一个标志90.已知有语句 FILE*fp;int x=123;fp=fopen(out.dat,w);,如果需要将变量x 的值以文本形式保存到一个磁盘文件out.dat中,则以下函数调用形式中,正确的是().BA:fprintf(%d,x);B:fprintf(fp,%d,x);C:fprintf(%d,x,fp);D:fprintf(out.dat,%d,x);91.设 p1 和 p2 是指向同一个字符串的指针变量,c 为字符变量,则以下不能正确执行的赋值语句是().BA:c=*p1+*p2;B:p2=c;C:p1=p
30、2;D:c=*p1*(*p2);92.若变量已正确定义并赋值,下面符合C语言语法的表达式是().BA:a:=b+1 B:a=b=c+2 C:int 18.5%3 D:a=a+7=c+b 93.C 语言规定,在一个源程序中,main 函数的位置().CA:必须在最开始 B:必须在系统调用的库函数的后面C:可以任意 D:必须在最后94.int a=1,b=2,c=3;if(ac)b=a;a=c;c=b;则 c 的值为().BA:1 B:2 C:3 D:不一定95.设 a、b、c、d、m、n 均为 int型变量,且 a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=ab)&(n=cd
31、)运算后,n 的值为 _.CA:0 B:1 C:2 D:3 名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 17 页 -6 96.下面正确的赋值语句是(设 char a5,*p=a;)().AA:p=abcd;B:a=abcd;C:*p=abcd;D:*a=abcd;97.C 语言源程序的基本单位是().BA:过程 B:函数 C:子程序 D:标识符98.在 C语言中,为了结束由while 语句构成的循环,while后一对圆括号中表达式的值应该为().AA:0 B:1 C:True D:非 0 99.相同结构体类型的变量之间,可以().BA:相加 B:赋值 C:比较大小 D:地址相
32、同三、程序填空1.功能:删除字符串中的指定字符,字符串和要删除的字符均由键盘输入。#include main()char str80,ch;int i,k=0;/*SPACE*/gets(【?】);str ch=getchar();/*SPACE*/for(i=0;【?】;i+)stri!=0=或=stri!=NULL=或=stri!=0=或=stri if(stri!=ch)/*SPACE*/【?】;strk=stri=或=*(str+k)=*(str+i)=或=strk=*(str+i)=或=*(str+k)=stri k+;/*SPACE*/【?】;strk=0=或=*(str+k)=0
33、=或=strk=NULL=或=strk=0=或=*(str+k)=0=或=*(str+k)=NULL puts(str);2.功能:对任一整数N(N 0),它都可以分解成1(或-1)和一些质数(素数)因子的形式。例如:当 N=150 时,可分解成12355;当N=-150时,可分解为-12355。下边程序能实现这种分解过程。当N=150,输出以下分解结果:N=1*2*3*5*5#include#include main()int n,i,r;scanf(%d,&n);if(n=0)printf(data error n);exit(0);/*SPACE*/else if(【?】)n0 prin
34、tf(n=1);else printf(n=-1);n=-n;/*SPACE*/for(【?】;i=n;i+)i=2 /*SPACE*/【?】;r=n%i while(r=0)printf(*%d,i);/*SPACE*/【?】;n=n/i=或=n/=i r=n%i;printf(n);3.功能:将字母转换成密码,转换规则是将当前字母变成其后的第四个字母,但W变成 A、X 变成 B、Y变成 C、Z变成 D。小写字母的转换规则同样。#include main()char c;名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 17 页 -7 /*SPACE*/while(c=【?】)!
35、=n)getchar()/*SPACE*/if(c=a&c=A&cZ【?】cz)&/*SPACE*/【?】;c-=26=或=c=c-26 printf(%c,c);4.功能:用冒泡法对数组a 进行由小到大的排序。#include void fun(int a,int n)int i,j,t;/*SPACE*/for(j=0;【?】;j+)j=n-1=或=j=-1+n=或=jn=或=jn-1 /*SPACE*/for(i=0;【?】;i+)in-j-1=或=ia i+1=或=a i+1 ai t=ai;ai=ai+1;ai+1=t;main()int i,a10=3,7,5,1,2,8,6,4,
36、10,9;/*SPACE*/【?】;fun(a,10)for(i=0;i10;i+)printf(%3d,ai);5.功能:求100999 之间的水仙花数说明:水仙花数是指一个三位数的各位数字的立方和是这个数本身。例如:15313 5333)。#include int fun(int n)int i,j,k,m;m=n;/*SPACE*/【?】;k=0 for(i=1;i4;i+)/*SPACE*/【?】;j=m%10=或=j=m-m/10*10=或=j=m-10*(m/10)m=(m-j)/10;k=k+j*j*j;if(k=n)/*SPACE*/【?】;return(1)else retu
37、rn(0);main()int i;for(i=100;i1000;i+)/*SPACE*/if(【?】=1)fun(i)printf(%d is ok!n,i);6.功能:求两个非负整数的最大公约数和最小公倍数。#include main()int m,n,r,p,gcd,lcm;scanf(%d%d,&m,&n);if(mn)p=m,m=n;n=p;p=m*n;r=m%n;/*SPACE*/while(【?】)r!=0=或=r /*SPACE*/m=n;n=r;【?】;r=m%n=或=r=m-m/n*n /*SPACE*/gcd=【?】;n lcm=p/gcd;/*SPACE*/名师资料总
38、结-精品资料欢迎下载-名师精心整理-第 7 页,共 17 页 -8 printf(gcd=%d,lcm=%dn,【?】);gcd,lcm=或=n,lcm 7.功能:下面的程序是求1!+3!+5!+,+n!的和。#include main()long int f,s;int i,j,n;/*SPACE*/【?】;s=0 scanf(%d,&n);/*SPACE*/for(i=1;i=n;【?】)i+=2=或=i=i+2=或=i+,i+f=1;/*SPACE*/for(j=1;【?】;j+)j=i=或=ji+1 /*SPACE*/【?】;f=f*j s=s+f;printf(n=%d,s=%ldn
39、,n,s);8.功能:是将两个字符串连接为一个字符串,不许使用库函数 strcat。#include#include void JOIN(char s180,char s240)int i,j;/*SPACE*/【?】;j=strlen(s1)=或=for(j=0;s1j!=10;j+);=或=for(j=0;s1j;j+);/*SPACE*/for(i=0;【?】0;i+)s2i!=或=*(s2+i)!=s1i+j=s2i;/*SPACE*/s1i+j=【?】;0=或=NULL=或=0 main()char str180,str240;gets(str1);gets(str2);puts(s
40、tr1);puts(str2);/*SPACE*/【?】;JOIN(str1,str2)puts(str1);9.功能:写一个函数,求一个字符串的长度,在main 函数中输入字符串,并输出其长度。#include main()int length(char*p);int len;char str20;printf(please input a string:n);scanf(%s,str);/*SPACE*/len=length(【?】);str printf(the string has%d characters.,len);/*SPACE*/【?】(char*p)length=或=int
41、length int n;n=0;while(*p!=0)/*SPACE*/【?】;n+=或=+n=或=n=n+1=或=n+=1 /*SPACE*/【?】;p+=或=+p=或=p=p+1=或=p+=1 return n;10.功能:计算个人与各科平均成绩及全班平均成绩,并在屏幕上显示出来。#include#define M 5 /*定义符号常量人数为 5*/#define N 4 /*定义符号常量课程为 4*/main()int i,j;名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 17 页 -9 void aver(float scoM+1N+1);static float
42、scoreM+1N+1=78,85,83,65,88,91,89,93,72,65,54,75,86,88,75,60,69,60,50,72;aver(score);printf(学生编号课程 1 课程 2 课程 3 课程4 个人平均 n);for(i=0;iM;i+)printf(学生%dt,i+1);/*SPACE*/for(j=0;j【?】;j+)N+1=或=5 printf(%6.1ft,scoreij);printf(n);for(j=0;j8*(N+2);j+)printf(-);printf(n课程平均);for(j=0;jN+1;j+)printf(%6.1ft,scorei
43、j);printf(n);void aver(float scoN+1)int i,j;/*SPACE*/for(i=0;i【?】;i+)M=或=5 for(j=0;jN;j+)scoiN+=scoij;scoMj+=scoij;scoMN+=scoij;/*SPACE*/scoiN【?】N;/=for(j=0;jN;j+)/*SPACE*/scoM【?】/=M;j scoMN=scoMN/M/N;11.功能:将s 所指字符串的正序和反序进行连接,形成一个新串放在t 所指的数组中。例如:当 s 串为 ABCD时,则 t 串的内容应为ABCDDCBA。#include#include#inclu
44、de void fun(char *s,char *t)int i,d;/*SPACE*/d=【?】;strlen(s)/*SPACE*/for(i=0;id;【?】)i+=或=i=i+1=或=i+=1=或=+i ti=si;for(i=0;id;i+)/*SPACE*/t【?】=sd-1-i;d+i=或=i+d /*SPACE*/t【?】=0;2*d=或=d*2=或=i+d=或=d+i main()char s100,t100;printf(nPlease enter string S:);scanf(%s,s);fun(s,t);printf(nThe result is:%sn,t);1
45、2.功能:输出100 到 1000 之间的各位数字之和能被15整除的所有数,输出时每10 个一行。#include main()int m,n,k,i=0;for(m=100;m0)=或=while(n!=0)if(k%15=0)printf(%5d,m);i+;/*SPACE*/if(i%10=0)【?】;printf(n)13 功能:在歌星大奖赛中,有10 个评委为参赛的选手打分,分数1100 分。选手最后得分为:去掉一个最高分和一个最低分后其余8 个分数的平均值。请编写一个程序实现。#include void main()int score,i,max,min,sum;max=-3276
46、8;min=32767;sum=0;for(i=1;imax=或=maxscore /*SPACE*/if(【?】)min=score;scorescore printf(Canceled max score:%dnCanceled min score:%dn,max,min);/*SPACE*/printf(Average score:%dn,【?】);(sum-max-min)/8 14 功能:从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存。输入的字符串以!结束。#include#include#include main()FILE*fp;ch
47、ar str100;int i=0;/*SPACE*/if(fp=fopen(test,【?】)=NULL)w printf(cannot open the filen);exit(0);printf(please input a string:n);/*SPACE*/gets(【?】);str while(stri!=!)/*SPACE*/if(stri=a&【?】)stri=z stri=stri-32;fputc(stri,fp);i+;/*SPACE*/fclose(【?】);fp fp=fopen(test,r);fgets(str,strlen(str)+1,fp);printf(
48、%sn,str);fclose(fp);四、程序改错1.功能:有一数组内放10 个整数,要求找出最小数和它的下标,然后把它和数组中最前面的元素即第一个数对换位置.#include main()int i,a10,min,k=0;printf(n please input array 10 elementsn);for(i=0;i10;i+)/*FOUND*/scanf(%d,ai);scanf(%d,&ai);for(i=0;i10;i+)printf(%d,ai);min=a0;/*FOUND*/for(i=3;i10;i+)for(i=1;i10;i+)=或名师资料总结-精品资料欢迎下载-
49、名师精心整理-第 10 页,共 17 页 -11=for(i=0;i10;i+)=或=for(i=1;i=9;i+)=或=for(i=0;imin)if(aimin)min=ai;k=i;/*FOUND*/ak=ai;ak=a0;a0=min;printf(n after eschange:n);for(i=0;i10;i+)printf(%d,ai);printf(nk=%dnmin=%dn,k,min);2.功能:求如下表达式:1 1 1 S=1+.+1+2 1+2+3 1+2+3+.+n#include main()int n;double fun();printf(Please inp
50、ut a number:);/*FOUND*/print(%d,n);scanf(%d,&n);printf(%10.6fn,fun(n);/*FOUND*/fun(int n)double fun(int n)int i,j,t;double s;s=0;/*FOUND*/while(i=1;i=n;i+);for(i=1;i=n;i+)=或=for(i=1;in+1;i+)t=0;for(j=1;j=i;j+)t=t+j;/*FOUND*/=s+1/t;s+=1.0/t;=或=s=s+1.0/(float)t;=或=s=s+1.0/t;=或=s+=1.0/(float)t;=或=s+=1.