C语言基础知识习题.docx
- 文档编号:3358058
- 上传时间:2022-11-22
- 格式:DOCX
- 页数:42
- 大小:34.95KB
C语言基础知识习题.docx
《C语言基础知识习题.docx》由会员分享,可在线阅读,更多相关《C语言基础知识习题.docx(42页珍藏版)》请在冰豆网上搜索。
C语言基础知识习题
第二章:
C语言概述
1.以下(
)是不正确的转义字符。
A.'\\'B.'\"C.'020'D.'\0'
2.构成C语言程序的基本单位是(
)。
A.函数B.变量C.子程序D.语句
3.C语言规定:
在一个源程序中,main()函数的位置(C)。
A.必须在最开始B.必须在系统调用的库函数后面
C.可以任意D.必须在最后
4.为求出return语句返回计算100!
的结果,此函数的类型说明应为(D)。
A.intB.longC.unsignedlongD.选项A,B,C.都不对:
ABC的数值范围都不够
5.C语言中的标识符只能由字母、数字和下划线3种字符组成,且第一个字符(C)。
A.必须为字母
B.必须为下划线
C.必须为字母或下划线
D.可以是字母、数字和下划线中的任意一种
6.以下选项中合法的用户标识符是(D)。
A.intB.a#C.5memD._243
7.C语言中的简单数据类型有(C)。
A.整型、实型、逻辑型B.整型、字符型、逻辑型
C.整型、实型、字符型D.整型、实型、字符型、逻辑型
8.以下选项中不正确的整型常量是(B)。
A.-37B.32,758C.326D.6
9.以下选项中合法的C语言字符常量是(A)。
A.'\t'B."A"C.67D.A
10.以下选项中不正确的实型常量是(A)。
A.123B.1e4
11.以下选项中合法的C语言赋值语句是(D)。
A.a=b=34B.a=34,b=34C.--i;D.m=(int)(x+y);
12.设int类型的数据长度为两个字节,则unsignedint类型数据的取值范围是(B)。
A.0~255B.0~65535C.-32768~32767D.-256~255
第三章:
运算符与表达式(原先给的答案很多错误)
1.以下叙述中不正确的是(B)。
A.在C程序中,%是只能用于整数运算的运算符
B.在C程序中,无论整数还是实数,都能准确无误地表示
C.若a是实型变量,C程序中a=20是正确的,因此实型变量允许被整型数赋值
D.以上表述都是正确的
2.若变量x、y、z均为double类型且已正确赋值,不能正确表示x/y×z的C语言表达式是(A)。
A.x/y*zB.x*(1/(y*z))C.x/y*1/zD.x/y/z
3.设a、b、c、d、m、n均为int型变量,且a=5,b=6,c=7,d=8,m=2,n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为(C)。
A.0B.1C.2D.3
4.设w、x、y、z、m均为int型变量,有如下程序段:
w=1;x=2;y=3;z=4;
m=(w w: x;m=(m m: y;m=(m m: z; 则该程序运行后,m的值是(D)。 A.4B.3C.2D.1 5.以下程序的输出结果是(C)。 #include main() {inta=5,b=4,c=6,d; printf("%d\n",d=a>b? (a>c? a: c): (b)); } A.5B.4C.6D.不确定 6.在C语言中,如果下面的变量都是int类型,则输出的结果是(A)。 sum=pad=5;pad=sum++,pad++,++pad; printf("%d\n",pad); A.7B.6C.5D.4 7.以下程序的输出结果是(B)。 #include main() {inti=010,j=10; printf("%d,%d\n",++i,j--); } A.11,10B.9,10C.010,9D.10,9 8.已知inti;floatf;,由以下选项中正确的语句是(D)。 A.(intf)%i;B.int(f)%i;C.int(f%i);D.(int)f%i; 9.若有定义: intx=3,y=2;floata=2.5,b=3.5;则下面表达式的值为(B)。 (x+y)%2+(int)a/(int)b A.1.0B.1C.2.0D.2 10.假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为(C)。 A.7B.8C.9D.10 11.若有定义"intx=1,y=1;",表达式(! x||y--)的值是(B)。 A.0B.1C.2D.-1 12.有以下程序: main() {unsignedchara,b,c; a=0x3; b=a|0x8; c=b<<1; printf("%d%d\n",b,c); } 程序运行后的输出结果是(D)。 A.-1112B.-6-13C.1224D.1122 13.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是(C)。 A.1B.2C.2.0D.2.5 14.执行以下程序段后,c3的值为(A)。 intc1=1,c2=2,c3; c3=1.0/c2*c1; A.0B.0.5C.1D.2 15.以下程序的输出结果是(D)。 #include main() {inty=3,x=3,z=1; printf("%d%d\n",(++x,y++),z+2); } A.34B.42C.43D.33 第四章: 基本语句 1.以下选项中不是C语句的是C。 A){inti;i++;printf("%d\n",i);}B); C)a=5,c=10D){;} 2.执行以下程序时输入1234567,程序的运行结果为B。 #include main() {intx,y; scanf("%2d%2ld",&x,&y); printf("%d\n",x+y); } A)17B)46C)15D)9 3.若有定义chara;intb;floatc;doubled;,则表达式a*b+c-d结果为型A。 A)doubleB)intC)floatD)char 4.若有定义inta,b;,则用语句scanf("%d%d",&a,&b);输入a,b的值时,不能作为输入数据分隔符的是A。 A),B)空格C)回车D)【Tab】键 5.运行下面的程序,如果从键盘上输入: ab<回车> c<回车> def<回车> 则输出结果为C。 #defineN6 #include main() {charc[N]; inti=0; for(;i for(i=0;i } A) a b c d e f B) a b c d C) ab c d D)abcdef 6.以下程序的输出结果是A。 #include main() {printf("%f",2.5+1*7%2/4); } A)2.500000B)2.750000C)3.375000D)3.000000 7.根据定义和数据的输入方式,输入语句的正确形式是B。 已有定义: floatf1,f2; 数据的输入方式: 4.52 3.5 A)scanf("%f,%f",&f1,&f2);B)scanf("%f%f",&f1,&f2); C)scanf("%3.2f%2.1f",&f1,&f2);D)scanf("%3.2f,%2.1f",&f1,&f2); 8.以下程序不用第3个变量,实现将两个数进行对调的操作,请填空。 #include main() {inta,b; scanf("%d%d",&a,&b); printf("a=%db=%d",a,b); a=a+b;b=a-b;a=B; printf("a=%db=%d\n",a,b); } A)a+bB)a-bC)b*aD)a/b 第五章: 选择结构 1.以下选项中,能正确表示a≥10或a≤0的关系表达式是___D__。 A)a>=10ora<=0B)a>=10|a<=0C)a>=10&&a<=0D)a>=10||a<=0 2.假定所有变量均已正确定义,下列程序段运行后x的值是__B___。 a=b=c=0;x=35; if(! a)x--; elseif(b); if(c)x=3; elsex=4; A)34B)4C)35D)3 3.以下程序的输出结果___A__。 #include main() {inta,b,c=246; a=c/100%9; b=(-1)&&(-1); printf("%d,%d\n",a,b); } A)2,1B)3,2C)4,3D)2,-1 4..已知a=1、b=3、c=5、d=5,下列程序段运行后,x的值是__B___。 if(a if(c else if(a if(b elsex=3; elsex=6; elsex=7; A)1B)2C)3D)6 5.能正确表示a和b同时为正或同时为负的表达式是__D___。 A)(a>=0||b>=0)&&(a<0||b<0)B)(a>=0&&b>=0)&&(a<0&&b<0) C)(a+b>0)&&(a+b<=0)D)a*b>0 6.以下程序的输出结果是__C___。 #include main() {inta=-1,b=1; if((++a<0)&&! (b--<=0)) printf("%d%d\n",a,b); else printf("%d%d\n",b,a); } A)-11B)01C)10D)00 7.下列关于switch语句和break语句的结论中,正确的是_B____。 A)break语句是switch语句中的一部分 B)在switch语句中可以根据需要使用或不使用break语句 C)在switch语句中必须使用break语句 D)break语句只能用于switch语句中 8.若有定义inta=1,b=0;,则执行以下语句后,输出为___B__。 switch(a) {case1: switch(b) {case0: printf("**0**");break; case1: printf("**1**");break; } case2: printf("**2**");break; } A)**0**B)**0****2** C)**0****1****2**D)有语法错误 9.以下程序的输出结果是__A___。 #include main() {intx=1,a=0,b=0; switch(x) {case0: b++; case1: a++; case2: a++;b++; } printf("a=%d,b=%d\n",a,b); } A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=2 10.以下程序的输出结果是___C__。 #include main() {inta=12,b=5,c=-3; if(a>b) if(b<0)c=0; elsec++; printf("%d\n",c); } A)0B)1C)-2D)-3 11.阅读以下程序: #include main() {intx; scanf("%d",&x); if(x--<5)printf("%d",x); elseprintf("%d",x++); } 程序运行后,如果从键盘输入5,则输出结果是__B___。 A)3B)4C)5D)6 12.两次运行下面的程序,如果从键盘上分别输入6和4,则输出的结果是_A____。 #include main() {intx; scanf("%d",&x); if(x++>5)printf("%d",x); elseprintf("%d\n",x--); } A)7和5B)6和3C)7和4D)6和4 第6章循环结构 1.在while(x)语句中的x与下面条件表达式等价的是。 D A)x==0B)x==1C)x! =1D)x! =0 2.以下程序的输出结果是。 D #include main() {intk,j,m; for(k=5;k>=1;k--) {m=0; for(j=k;j<=5;j++) m=m+k*j; } printf("%d\n",m); } A)124B)25C)36D)15 3.以下程序的输出结果是。 D #include main() {intx=10,y=10,i; for(i=0;x>8;y=++i) printf("%d%d",x--,y); } A)10192B)9876C)10990D)101091 4.以下程序的输出结果是。 A a=1;b=2;c=2; while(a printf("%d,%d,%d",a,b,c); A)1,2,0B)2,1,0C)1,2,1D)2,1,1 5.以下for循环体的执行次数是。 C #include main() {inti,j; for(i=0,j=1;i<=j+1;i+=2,j--)printf("%d\n",i); } A)3B)2C)1D)0 6.有以下程序: #include main() {intn=9; while(n>6){n--;printf("%d",n);} } 该程序段的输出结果是。 B A)987B)876C)8765D)9876 7.有以下程序段: A intk=0; while(k=1)k++; while循环执行的次数是。 A)无限次B)有语法错,不能执行C)一次也不执行D)执行一次 8.以下程序中,while循环的循环次数是。 D #include main() {inti=0; while(i<10) {if(i<1)continue; if(i==5)break; i++; } … } A)1B)10 C)6D)死循环,不能确定次数 9.以下程序的输出结果是。 B #include main() {inti=0,a=0; while(i<20) {for(;;) {if((i%10)==0)break; elsei--; } i+=11;a+=i; } printf("%d\n",a); } A)21B)32C)33D)11 10.语句while(! E);中的条件! E等价于。 A A)E==0B)E! =1C)E! =0D)~E 11.以下的for循环。 C for(x=0,y=0;(y! =123)&&(x<4);x++); A)是无限循环B)循环次数不定 C)循环执行4次D)循环执行3次 12.执行以下程序段的结果是。 B intx=23; do {printf("%d",x--); }while(! x); A)打印出321B)打印出23 C)不打印任何内容D)陷入死循环 第7章: 数组 1.有以下程序: #include #include main() {chara[]={'a','b','c','d','e','f','g','h','\0'}; inti,j; i=sizeof(a);j=strlen(a); printf("%d,%d\n",i,j); } 程序运行后的输出结果是。 D A)9,9B)8,9C)1,8D)9,8 2.以下程序中函数reverse()的功能是将a所指数组中的内容进行逆置存放。 #include voidreverse(inta[],intn) {inti,t; for(i=0;i {t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;} } main() {intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0; reverse(b,8); for(i=6;i<10;i++)s+=b[i]; printf("%d\n",s); } 则程序运行后的输出结果是。 A A)22B)10C)34D)30 3.有以下程序: main(intargc,char*argv[]) {intn,i=0; while(argv[1][i]! ='\0') {n=fun();i++;} printf("%d\n",n*argc); } intfun() {staticints=0; s+=1; returns; } 假设程序经编译、连接后生成可执行文件exam.exe,若键入以下命令行 exam123<回车> 则运行结果为。 A A)6B)8C)3D)4 4.以下程序的输出结果是。 A #include #include main() {charstr[12]={'s','t','r','i','n','g'}; printf("%d\n",strlen(str));} A)6B)7C)11D)12 5.若有说明: inta[3][4];,则对数组a元素非法引用的是。 D A)a[0][2*1]B)a[1][3]C)a[4-2][0]D)a[0][4] 6.若有说明: inta[][4]={0,0};,则以下选项中,不正确的是。 D A)数组a的每个元素都可得到初值。 B)二维数组a的第一维大小为1 C)因为二维数组a中初值的个数不能被第二维大小的值整除,则第一维的大小等于所得商数再加1,故数组a的行数为1 D)只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0 7.以下程序中有错误的一行是。 D (1)main() (2){ (3)inta[3]={1}; (4)inti; (5)scanf("%d",&a); (6)for(i=1;i<3;i++)a[0]=a[0]+a[i]; (7)printf("%f\n",a[0]); (8)} A)3B)6C)7D)5 8.若有说明: inta[][3]={1,2,3,4,5,6,7};,则a数组第一维的大小是。 B A)2B)3C)4D)无确定值 9.若有数组定义: chararray[]="China";,则数组array所占的空间为。 C A)4个字节B)5个字节C)6个字节D)7个字节 10.以下程序的输出结果是。 A #include #include<string.h> main() {chararr[2][4]; strcpy(arr,"you");strcpy(arr[1],"me"); arr[0][3]='&'; printf("%s\n",arr); } A)you&meB)youC)meD)err 11.有以下程序: #include main() {intn[5]={0,0,0},i,k=2; for(i=0;i printf("%d\n",n[k]); } 该程序的输出结果是。 D A)不定值B)2C)1D)0 12.以下程序的输出结果是。 A #include main() {inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0; for(i=1;i<3;i++) for(j=0;j printf("%d\n",s); } A)14B)19C)20D)21 13.当执行以下程序时,如果输入ABC,则输出结果是。 A #include #include main() {charss[10]="1,2,3,4,5"; gets(ss);strcat(ss,"6789");printf("%s\n",ss); } A)ABC6789B)ABC67C)12345ABC6D)ABC456789 14.以下程序的输出结果是。 A #include f(intb[],intm,intn) {inti,s=0; for(i=m;i returns; } main() {intx,a[]={1,2,3,4,5,6,7,8,9}; x=f(a,3,7); printf("%d\n",x); } A)10B)18C)8D)15 15.以下程序中函数sort()的功能是对数组a中的数据进行由大到小的排序。 #include voidsort(inta[],intn) {inti,j,t;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 基础知识 习题