C语言复习题2.docx
- 文档编号:3232603
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:21
- 大小:22.88KB
C语言复习题2.docx
《C语言复习题2.docx》由会员分享,可在线阅读,更多相关《C语言复习题2.docx(21页珍藏版)》请在冰点文库上搜索。
C语言复习题2
C语言程序设计复习题2
一、选择题
1.在C语言中,合法的字符常数是【D】
A)‘程序设计’B)“程序设计”
C)cD)‘\\’
2.在C语言中,以下不正确的八进制或不正确的十六进制数是【A】
A)090B)0xAB
C)0xlaD)-016
3.执行intx=2,y=3;后表达式x=(y==3)的值是【B】
A)0B)1
C)2D)3
4.执行语句inta,b,c;a=(b=c=3,c++,b+=c);则a的值是【C】
A)3B)4
C)7D)11
5.在循环结构的循环体中执行break语句,其作用是【C】
A)结束本次循环,进行下次循环
B)继续执行break语句之后的循环体中各语句
C)跳出该循环体,提前结束循环
D)终止程序运行
6.以下程序运行结果是【A】
voidmain()
{chars[]=”\’Address\’”;
printf(%d\n”,strlen(s));
}
A)9B)10
C)11D)12
7.以下程序运行结果是【C】
voidmain()
{inta[]={2,4,6,8,10},y=1,x;
for(x=0;x<3;x++)y+=a[x+1];
printf(“%d\n”,y);
}
A)17B)18
C)19D)20
8.已定义charx[8];inti;为了给x数组赋值,以下正确的语句是【D】
A)x[8]=”TurboC”;B)x=”TurboC”;
C)x[]=”TurboC”;D)for(i=0;i<7;i++)x[i]=getchar();
9.设inta[][4]={0,0};则以下错误的描述是【D】
A)数组a的每个元素都可得到初值0
B)二维数组a的第一维大小为1
C)数组a的行数为1
D)只有元素a[0][0]和a[0][1]可得到初值0,其余元素得不到初值0
10.以下程序运行结果是【C】(需看书才能得出答案)
#include
fun3(intx)
{staticinta=3;
a+=x;
returna;
}
main()
{intk=2,m=1,n;
n=fun3(k);
n=fun3(m);
printf("%d\n",n);
}
A)3B)4
C)6D)9
11.以下四个运算符,按优先级由高到低的排列顺序是【11】
A)++%+=>B)%++>+=
C)%+=>++D)++%>+=
12.以下不正确的描述是【12】
A)在函数外部定义的变量是全局变量
B)在函数内部定义的变量是局部变量
C)函数的形参是局部变量
D)局部变量不能与全局变量同名
13.“文件包含”预处理语句的使用形式中,当#include后面的文件名用“”括起时,寻找被包含的文件的方式为【13】
A)直接按系统设定的标准方式搜索目录
B)先在源程序所在目录搜索,再按系统设定的标准方式搜索
C)仅仅搜索源程序所在的目录
D)仅仅搜索当前目录
14.C语言的简单数据类型包括【16】
A)整型、实型、逻辑型B)整型、实型、字符型、逻辑型
C)整型、字符型、逻辑型D)整型、实型、字符型
15.在C语言中,变量所分配的内存空间大小【17】
A)均为一个字节B)由用户自己定义
C)由变量的类型决定D)是任意的
16.在C语言中,合法的整型常数是【18】
A)-0x123B)3.14159C)01001101bD)6.7e10
17.下列各变量均为整型,选项中不正确的C语言赋值语句是【19】
A)i+=++i;B)i=j==k;
C)i=j+=i;D)i=j+1=k;
18.数学关系式x≤y≤z可用C语言的表达式表示为【20】
A)(x<=y)&&(y<=z)B)(x<=y)and(y<=z)
C)(x<=y<=z)D)(x<=y)&(y 19.(不需做)若定义floata;现要从键盘输入a数据,其整数位为3位,小数位为2位,则选用【A】 A)scanf(“%6f”,&a);B)scanf(“%5.2f”,a); C)scanf(“%6.2f”,&a);D)scanf(“%f”,a); 20.若inti;则以下循环语句的循环执行次数是【B】 for(i=2;i==0;)printf(“%d”,i--); A)无限次B)0次 C)1次D)2次 21.下面程序的输出结果为【B】 main() {inti; for(i=100;i<200;i++) { if(i%5==0)continue; printf(“%d\n”,i); break; } } A)100B)101 C)无限循环D)无输出结果 21.下列程序段的运行结果是【B】 voidmain() { inti=1,a[]={1,5,10,9,13,7}; while(a[i]<=10)a[i]+=2; for(i=0;i<6;i++) printf("%d",a[i]); } A)111109137B)171211137 C)171211139D)17129137 23.以下语句把字符串“abcde”赋初值给字符数组,不正确的语句是【D】 A)chars[]=“abcde”;B)chars[]={’a’,’b’,’c’,’d’,’e’,’\0’}; C)chars[]={“abcde”};D)chars[5]=“abcde”; 24.若变量c为char类型,能正确判断出c为小写字母的表达式是【D】 A)'a'<=c<='z'B)(c>='a')||(c<='z') C)('a'<=c)and('z'>=c)D)(c>='a')&&(c<='z') 25.下列程序段的输出结果是【C】 voidfun(int*x,int*y) { printf("%d%d\n",*x,*y); *x=3;*y=4;} main() {intx=1,y=2; fun(&x,&y); printf("%d%d\n",x,y); } A)21B)12C)12D)21 43123412 26.以下程序的输出结果是【B】 main() {inti,k,a[10],p[3]; k=5; for(i=0;i<10;i++)a[i]=i; for(i=0;i<3;i++)p[i]=a[i*(i+1)]; for(i=0;i<3;i++)k+=p[i]*2; printf("%d\n",k); } A)20B)21C)22D)23 27.以下不能对二维数组a进行正确的初始化的语句是【C】 A)inta[2][3]={0};B)inta[][3]={1,2,3,4,5}; C)inta[2][3]={{1,2},{3,4},{5,6}};D)inta[2][3]={{1},{3,4,5}}; 28.若inta[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是【B】 A)2B)3C)4D)无确定值 29.下面程序段的运行结果是【A】 inta[2][3]={1,2,3},i,j; for(i=0;i<2;i++) for(j=0;j<3;j++) {a[i][j]=a[i*j%2][j]+a[i][(i+j)%3]; printf(“%d,”,a[i][j]); } A)2,4,6,2,0,8,B)1,2,3,0,0,0, C)1,2,3,2,0,6,D)2,4,6,2,0,6, 30.下面程序段的运行结果是【D】 inta[][3]={1,2,3,4,5,6,7,8,9,10,11,12}; printf(“%d\n”,a[2][1]); A)2B)4C)7D)8 31.定义一个结构体变量时,系统分配给它的内存大小是【A】 A)各成员所需内存量的总和 B)成员中占内存量最大者所需内存容量 C)结构中第一个成员所需内存容量 D)结构中最后一个成员所需内存容量 32.若已定义: int*p,a;,则语句p=&a;中的运算符“&”的含义是【D】 A)位与运算B)逻辑与运算 C)取指针内容D)取变量地址 33.下面程序段的运行结果是【D】 chars[]=“ABC”;inti; for(i=0;i<3;i++)printf(“%s”,&s[i]); A)ABCB)ABCABCABCC)AABABCD)ABCBCC 34.下列叙述中正确的是C A)C语言编译时不检查语法 B)C语言的子程序有过程和函数两种 C)C语言的函数可以嵌套定义 D)C语言所有函数都是外部函数 35.以下所列的C语言常量中,错误的是B A)0xFFB)1.2e0.5C)2LD)'A' 36.下列选项中,合法的C语言关键字是D A)VARB)cherC)integerD)default 37.下面程序段的运行结果是【D】 voidmain() {floaty=0.0,a[]={2.0,4.0,6.0,8.0,10.0},*p; inti; p=&a[1]; for(i=0;i<3;i++)y+=*(p+i); printf("%f\n",y); } A)12.0000B)28.0000C)20.0000D)18.0000 38.下面程序段的运行结果是【D】 charc[]={‘a’,‘b’,‘\0’,‘c’,‘\0’}; printf(“%s\n”,c); A)abcB)‘a’‘b’C)abcD)ab 39.下面程序段的运行结果是【A】 main() {chars[10],*sp="HELLO"; strcpy(s,sp); s[0]='h';s[6]='! '; puts(s); } A)hELLOB)HELLOC)hHELLO! D)h! 40.若有定义char*language[]={“FORTRAN”,“BASIC”,“PASCAL”,“JAVA”, “C”};则language[2]的值是【B】 A)一个字符B)一个地址C)一个字符串D)不确定 41.C语言规定,函数返回值的类型由【D】所决定。 A)return语句中的表达式类型 B)调用该函数时的主调函数类型 C)调用该函数时的形参类型 D)在定义该函数时所指定的函数类型 42.下面程序的输出结果为【B】 #include #defineSQR(x)x*x main() {inta=10,k=3,m=2; a=SQR(k+m); printf("%d\n",a); } A)25B)11C)5D)10 43.下面程序的输出结果为【B】 #include main() {inta=10; {inta=15; printf("a.1=%d,",a); } printf("a.2=%d\n",a); } A)a.1=10,a.2=15B)a.1=15,a.2=10 C)a.1=15,a.2=15D)a.1=10,a.2=10 44.若变量已正确定义并赋值,下面符合C语言语法的表达式是【B】 A)a: =b+1B)a=b=c+2C)int18.5%3D)a=a+7=c+b 45.C语言中运算对象必须是整型的运算符是【A】 A)%=B)/C)=D)<= 46.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是【C】 A)1B)2C)2.0D)2.5 47.有如下程序: main() {inti,sum; for(i=1;i<=3;sum++) sum+=i; printf(“%d\n”,sum); } 该程序的执行结果是【C】 A)6B)3C)死循环D)0 48.如下程序: intrunc(inta,intb) {return(a+b);} main() {intx=2,y=5,z=8,r; r=runc(runc(x,y),z); printf(“%d\n”,r); } 该程序的执行结果是【D】 A)12B)13C)14D)15 49.有如下程序段: int*p,a=10,b=1; p=&a;a=*p+b; 执行该程序段后,a的值为【B】 A)12B)11C)10D)编译出错 50有以下程序段: intk=0; while(k=1)k++; while循环执行的次数是【A】 A)无限次B)有语法错,不能执行 C)一次也不执行D)执行1次 51.下面函数st的功能是【】 st(char*s) {char*q=s; while(*q! =‘\0’)q++; return(q-s); } A)检查字符串s中是否含有空字符 B)生成一个新的字符串q,字符串q是从字符串s的尾部到头部排列的 C)将字符串s中的非空字符的ASCII码值增1 D)计算字符串s的长度 52.以下正确的叙述是【C】 A)在C语言中,main函数必须位于文件的开头 B)C语言的每行中只能写一条语句 C)C语言本身没有输入、输出语句 D)对一个C语言程序进行编译预处理时,可检查宏定义的语法错误 53.若执行以下程序段: inta=1,b=2,m=2,n=2; (m=a>b)&&++n; 则n的值是【B】 A)1B)2 C)3D)4 54.以下程序的运行结果是【】 #include main() {inti=0; while (1) {printf(“*”); i++; if(i<3)break; } printf(“\n”); } A)*B)*** C)**D)**** 二、填空题 (本大题共20个空,每个空2分,共40分) 1.表示条件: 10 2.以下程序的功能是: 从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入,请填空。 main() {floatx,amax,amin; scanf(“%f”,&x); amax=x; amin=x; while(【2】) {if(x>amax)amax=x; if(【3】)amin=x; scanf(“%f”,&x); } printf(“\namax=%f\namin=%f\n”,amax,amin); } 3.Fibonacci数列中的头两个数是1和1,从第三个数开始,每个数等于前两个数之和。 下述程序计算此数列的前20个数,且每行输出5个数,请填空。 #include voidmain() {intf,f1=1,f2=1; inti; printf(“%6d,%6d”,f1,f2); for(i=3;i<=20;i++) {f=【4】 printf(“%6d”,f); if(【5】) printf(“\n”); f1=f2; 【6】 } } 4.下面程序的功能是将两个字符串连接起来,请填空。 #include main() {chars1[80],s2[40]; inti=0,j=0; printf(“\nInputstring1: ”); scanf(“%s”,s1); printf(“Inputstring2: ”); scanf(“%s”,s2); while(s1[i]! =‘\0’) i++; while(s2[j]! =‘\0’) 【7】; 【8】=‘\0’; printf(“%s\n”,s1); } 5.计算1+1/2+1/4+…+1/50的值,并显示出来。 main() {inti=2; floatsum=1.0; while(i<=【9】) {sum+=1/【10】; i+=2; } printf(“sum=%f\n”,sum); } 6.以下程序是用来统计正整数的各位数字中零的个数,并求各位数字中最大者。 main() {unsignedlongnum,max,t; intcount; count=max=0; scanf(“%ld”,&num); do{ t=【11】; if(t==0)++count; else if(max 【12】; num/=10; }while(num); printf(“count=%d,max=%ld\n”,count,max); } 7.以下程序功能是当输入学生序号(1或2或3)后,能输出该学生的全部成绩(共有三位学生,每位学生有4门成绩)。 #include main() {floatscore[][4]={{60,70,80,90},{56,89,67,88},{34,78,90,66}}, (*p)[4]; intn,i; p=【13】; scanf(“%d”,&n); printf(“序号为%d的学生成绩是: ”,n); for(i=0;i<4;i++)printf(“%5.1f”,p【14】); } 8.以下程序经过编译连接后得到的可执行文件名为show.exe,程序的功能是将用户运行程序时键入的参数作为字符串连接起来,并在屏幕上显示,例如在dos提示符下输入: showABCDEFGH回车,则在屏幕上将显示ABCDEFGH。 #include“string.h” main(int【15】,char*argv[]) {chars[1000]=””; inti; for(i=1;i strcat(s,【16】); printf(“%s\n”,s); } 9.若变量n中的值为24,则print函数共输出【17】行,最后一行有【18】个数。 voidprint(intn,intaa[]) {inti; for(i=1;i<=n;i++) {printf(“%6d”,aa[i]); if(! (i%5))printf(“\n”); } printf(“\n”); } 10.以下程序显示如下所示的矩阵,矩阵中每个元素形成的规律是: 右上三角阵(含对角线)元素为1,其它元素值为: 行下标-列下标+1。 11111 21111 32111 43211 54321 main() {inti,j,a[5][5]; for(i=0;i<=4;i++) for(j=0;j<5;j++) if(【19】)a[i][j]=1; else【20】=i-j+1; for(i=0;i<5;i++) {for(j=0;j<5;j++)printf(“%3d”,a[I][j]); printf(“\n”); } } 1.若已知a=1,b=2,则表达式! a 2.若有以下定义 doublea[10]; 则a数组元素下标的上限为【1】,下限为【1】。 1.以下程序的输出结果是【1】 main() {inta=1,b=2; a=a+b;b=a-b;a=a-b; printf("%d,%d\n",a,b); } 2.下列程序的输出结果是16.00,请填空。 main() {inta=9,b=2; floatx=【2】,y=1.1,z; z=a/2+b*x/y+1/2; printf("%5.2f\n",z); } 3.下列程序段的输出结果是【3】。 main() {charb[]="Hello,you"; b[5]=0; printf("%s\n",b); } 4.下列程序段的输出结果是【4】。 intn='c'; switch(n++) {default: printf("error");break; case'a': case'A': case'b': case'B': printf("good");break; case'c': case'C': printf("pass"); case'd': case'D': printf("warn"); } 5.以下程序的输出结果是【5】。 main() {intarr[]={30,25,20,15,10,5},*p=arr; p++; printf("%d\n",*(p+3)); } 6.以下程序用来输出结构体变量ex所占存储单元的字节数,请填空。 structst {charname[20];doublescore;}; main() {structstex; printf("exsize: %d\n",sizeof(【6】)); } 7.以下程序运行后,显示: 【7】 main() {floata=365.7189; intb=12,c; c=(int)a+b; printf(“c=%d\n”,c); } 8.以下程序是用来输入5个整数,并存放在数组中,找出最大数与最小数所在的下标位置,并把二者对调,然后输出调整后的5个数。 #include main() {inta[5],t,i,maxi,mini; for(i=0;i<5;i++) scanf(“%d”,&a[i]); mini=maxi=【8】; for(i=1;i<5;i++) { if(【9】)mini=i; if(a[i]>a[maxi])【10】; } printf(“最小数的位置是: %d\n”,mini); printf(“最大数的位置是: %d\n”,maxi); t=a[maxi]; 【11】;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 复习题