C语言程序设计期末复习题学生用2.docx
- 文档编号:9401330
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:38
- 大小:38.54KB
C语言程序设计期末复习题学生用2.docx
《C语言程序设计期末复习题学生用2.docx》由会员分享,可在线阅读,更多相关《C语言程序设计期末复习题学生用2.docx(38页珍藏版)》请在冰豆网上搜索。
C语言程序设计期末复习题学生用2
C语言程序设计复习题
一、填空题
1、C语言中基本的数据类型有:
整型、实型、字符型。
。
2、C语言中普通整型变量的类型说明符为 int ,在内存中占 2字节,有符号普通整型的数据范围是 -32768~+32767 。
3、整数-35在机内的补码表示为 111111*********1 。
4、执行下列语句inta=8; a+=a-=a*a;后,a的值是 -112 。
5、有如下语句:
char A[]={”Iamastudent”};该字符串的长度是 14 ,A[3]= ‘m’ 。
6、符号”a”和’a’的区别是 ”a”是字符串常量,而’a’是字符常量 。
7、所谓“指针”就是 存放地址值的变量或常量,或者答地址 。
“&”运算符的作用是 取运算对象的地址 。
“*”运算符的作用是取指针变量所指的内容。
8、有如下输入语句:
scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是 a=1,b=3,c=2 。
9.C语言的预处理语句以____#______开头。
10.表达式7+8>2&&25%5的结果是_________0______________。
11.下列程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。
int n=0,ch;
ch=getchar();
while(______ch!
=’\n’ ____________)
{ if(___ch>=’0’&&ch<=’9’______) n++;
c=getchar(); }
12.C语言中putchar(c)函数的功能是____将变量c中的字符显示到屏幕上________。
13.int*p的含义是_______指针变量p为整型___________________。
14.定义fp为文件型指针变量的定义方法为_______FILE*fp ______。
15.数组int a[3][4];共定义了___12____个数组元素。
16、C源程序是由_函数__构成的。
一个C程序一般由若干个函数构成,其中至少应包含主函数(mian()函数)。
因此,函数C程序的基本单位。
17、三种基本程序结构是顺序结构__、_选择结构__、循环结构__。
18、C语言的三个循环语句分别是while__、_do-while__、_for__。
19.表示“x≥y≥z”的C表达式是_x>=y&&y>=z。
20.表达式!
!
5的值是1__。
21、在C程序中,指针变量能够赋地址_值或者空(0或NULL)__值。
22.下列程序段的输出是_5__。
int*p,*q,k=5,j=6;
q=&k;p=q;q=&j;
printf("%d",*p);
23.下列程序段的输出是_58__。
intf(intx)
{staticy=1;
y++;x+=y;returnx;}
voidmain()
{intk;
k=f(3);
printf("%d%dn",k,f(k));
}
24、一个C程序总是从main()或主函数开始运行的。
25、三种基本程序结构是顺序结构__、_选择结构__、循环结构__。
26、一个char数据在内存中所占字节数为1,一个int数据在内存中所占字节数为2,一个long数据在内存中所占字节数为4,一个float数据在内存中所占字节数为4。
27、若有定义:
inta[]3[4]={{1,2}{0}{4,6,8,10}};则初始化后a[1][2]的值为
0,a[2][1]得到的值为6
28.在C语言中,函数分为3种类型,分别是主函数、库函数和自定义函数。
29.下列程序段的输出是_*#*#____。
main()
{intk;
for(k=1;k<5;k++)
{if(k%2)printf("*");elsecontinue;printf("#");}
}
30、下列程序的输出结果是:
Afterswap5,3。
swap(int*p,int*q)
{intt;t=*p;*p=*q;*q=t;}
voidmain()
{inta=3,b=5;swap(&a,&b);printf("Afterswap%d,%d",a,b);}
二、选择题
1.执行intx=2,y=3;后表达式x=(y==3)的值是(B)
A)0B)1
C)2D)3
2.在循环结构的循环体中执行break语句,其作用是(C)
A)结束本次循环,进行下次循环
B)继续执行break语句之后的循环体中各语句
C)跳出该循环体,提前结束循环
D)终止程序运行
3.以下程序运行结果是(A)
main()
{chars[]=”\’Address\’”;
printf(%d\n”,strlen(s));
}
A)9B)10
C)11D)12
4.以下程序运行结果是(C)
main()
{inta[]={2,4,6,8,10},y=1,x;
for(x=0;x<3;x++)y=y+a[x+1];
printf(“%d\n”,y);
}
A)17B)18
C)19D)20
5.设inta[][4]={0,0};则以下错误的描述是(D)
A)数组a的每个元素都可得到初值0
B)二维数组a的第一维大小为1
C)数组a的行数为1
D)只有元素a[0][0]和a[0][1]可得到初值0,其余元素得不到初值0
6.以下程序运行结果是(C)
fun3(intx)
{staticinta=3;
a=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
7.以下不正确的描述是(D)
A)在函数外部定义的变量是全局变量
B)在函数内部定义的变量是局部变量
C)函数的形参是局部变量
D)局部变量不能与全局变量同名
8.C语言的简单数据类型包括(D)
A)整型、实型、逻辑型B)整型、实型、字符型、逻辑型
C)整型、字符型、逻辑型D)整型、实型、字符型
9.数学关系式x≤y≤z可用C语言的表达式表示为(A)
A)(x<=y)&&(y<=z)B)(x<=y)and(y<=z)
C)(x<=y<=z)D)(x<=y)&(y 10.要使以下程序的输出结果为4,则a和b应满足的条件是(A) main() {ints,t,a,b; scanf(“%d%d”,&a,&b); s=t=1; if(a>0)s=s+1; if(a>b)t=s+t; else if(a==b)t=5; elset=2*s; printf(“%d\n”,t); } A)a>0并且a C)a>0并且a>bD)a<0并且a 11.下面程序的输出结果为(B) main() {inti; for(i=100;i<200;i++) { if(i%5==0)continue; printf(“%d\n”,i); break; } } A)100B)101 C)无限循环D)无输出结果 12.下列程序段的运行结果是(B) inti=1,a[]={1,5,10,9,13,7}; while(a[i]<=10){a[i]=a[i]+2;i++;} for(i=0;i<6;i++)printf(“%d”,a[i]); A)271211139B)171211137 C)171211139D)17129137 13.以下语句把字符串“abcde”赋初值给字符数组,不正确的语句是(D) A)chars[]=“abcde”;B)chars[]={’a’,’b’,’c’,’d’,’e’,’\0’}; C)chars[]={“abcde”};D)chars[5]=“abcde”; 14.下面程序段的运行结果是(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, 15、执行下面语句后,变量I的值是(C)。 for(I=1;I++<4;); A)3B)4C)5D)不定 16、putchar函数可以向终端输出一个(D)。 A)整型变量表达式值B)实型变量值 C)字符串D)字符或字符型变量值 17、有一函数关系见下表: x y= x<0 x-1 x=0 x x>0 x+1 下面程序段中能正确表示上面关系的是(C)。 A)y=x+1;B)y=x–1;C)if(x<=0)D)y=x; if(x>=0)if(x! =0)if(x<0)if(x<=0) if(x==0)if(x>0)y=x-1;if(x<0) y=x;y=x+1;elsey=x;y=x–1; elsey=x–1;elsey=x;elsey=x+1;elsey=x+1; 18、对for(表达式1;;表达式3)可理解为(B) A)for(表达式1;0;表达式3)B)for(表达式1;1;表达式3) C)for(表达式1;表达式1;表达式3)D)for(表达式1;表达式3;表达式3) 19、若i、j均为整型变量,则以下循环(D) for(i=0,j=-1;j=1;i++,j++) printf(“%d,%d\n“,i,j); A)循环体只执行一次B)循环体一次也不执行 C)判断循环结束的条件不合法D)是无限循环 20、设j为int型变量,则下面for循环语句的执行结果是(B) for(j=10;j>3;j--) {if(j%3)j--; --j;--j; printf(“%d“,j); } A)63B)74C)62D)73 21、一个C程序的执行是从(A)。 A)本程序的main函数开始,到main函数结束 B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C)本程序的main函数开始,到本程序文件的最后一个函数结束 D)本程序文件的第一个函数开始,到本程序main函数结束 22、下面四个选项中,合法的用户标识符是(D) A)P_#$B)2haC)gotoD)_ab 23、要把整数67523赋与整型变量I,则应说明I的类型是(B) A)intB)longC)shortD)unsigned 24、已知intI;floatf;正确的表达式是(D) A)(intf)%IB)int(f)%IC)int(f%I)D)(int)f%I 25、判断char型变量c1是否为小写字母的正确表达式是(D) A)’a’<=c1<=’z’B)(c1>=a)&&(c1<=z) C)98<=c1&&123>=c1D)c1>=’a’&&c1<=’z’ 26、执行以下语句后b的值为(B)。 inta=5,b=6,w=1,x=2,y=3,z=4; b=(a=w>x)&&(b=y>z); A)6B)0C)1D)4 27、以下能正确地定义整型变量a,b和c并为其赋初值5的语句是(C)。 A)inta=b=c=5;B)inta,b,c=5;C)inta=5,b=5,c=5;D)a=b=c=5; 28、已知: chara;intb;floatc;doubled;执行语句c=a+b+c+d;后,变量c的数据类型是(D) A)int B)charC)floatD)double 29、已知字母A的ASCII码为65,以下程序段的输出结果是(C) charc1=’A’,c2=’Y’; printf(″%d,%d″,c1,c2); A)65,90B)A,YC)65,89D)输出格式不合法 30、阅读以下程序,当输入数据的形式为: 25,13,10 (“CR”表示回车) main() {intx,y,z; scanf(“%d%d%d”,&x,&y,&z); printf(“x+y+z=%d\n”,x+y+z); } A、x+y+z=48B、x+y+z=35C、x+z=35D、不确定值 31、以下错误的if语句是(C) A)if(x>y); B)if(x==y)x+=y; C)if(x! =y)scanf(“%d”,&x)elsescanf(“%d”,&y) D)if(x 32、阅读以下程序: main() {intx; scanf(“%d”,&x); if(x--<5)printf(“%d\n”,x); elseprintf(“%d\n”,x++); } 程序运行后,如果从键盘上输入5,则输出结果是(B) A、3B、4C、5D、6 33、若intI=10; 执行下列程序后,变量I的正确结果是(D) switch(I){case9: I+=1; case10: I+=1; case11: I+=1; default: I+=1;} A)10B)11C)12D)13 34、C语言中while与do---while语句的主要区别是(A) A)do---while的循环体至少无条件执行一次 B)do---while允许从外部转到循环体内 C)do---while的循环体不能是复合语句 35、以下的for循环(B) for(x=0,y=100;(y! =123)&&(x<=3);x++); A)执行3次B)执行4次C)循环次数不定D)是无限循环 36、执行”for(I=1;I++<4;);”后,变量I的值为(C) A)3B)4C)5D)不定 37、以下程序段(C) x=-2; do {x=x*x;} while(! x); A是死循环B循环执行两次C循环执行一次D有语法错误 38、设x和y均为int型变量,则执行下面循环后,y的值为(C)。 for(y=1,x=1;y<=50;y++) {if(x==10)break; if(x%2==1) {x+=5;continue;} x-=3; } A)2B)4C)6D)8 39、以下程序的输出结果是(C) main() {intI,j,x=0; for(I=0;I<2;I++) {x++; for(j=0;j<3;j++) {if(j%3)continue; x++;} x++; } printf(“x=%d\n”,x);} x=4B)x=8C)x=6D)x=12 40、以下程序的输出结果(D) main() {intx=10,y=10,I; for(I=0;x>8;y=++I) printf(“%d,%d”,x--,y);} A)10,19,2B)9,87,6C)10,99,0D)10,109,1 41、以下正确的描述是(B)。 在C语言程序中: A)函数的定义可以嵌套,但函数的调用不可以嵌套 B)函数的定义不可以嵌套,但函数的调用可以嵌套 C)函数的定义和函数的调用均不可以嵌套 D)函数的定义和函数的调用均可以嵌套 42、以下正确的说法是(B)。 建立函数的目的之一是: A)提高程序的执行效率B)提高程序的可读性C)减少程序的篇幅D)减少程序文件所占内存 43、以下正确的说法是(B)。 A)用户若需调用标准库函数,调用前必须重新定义 B)用户可以重新定义标准库函数,若如此,该函数将失去原有含义 C)系统根本不允许用户重新定义标准库函数 D)用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调 44、下列定义不正确的是(C) A)#definePI3.141592B)#defineS354 C)intmax(intx,inty);D)staticcharc; 45、下列程序运行结果是(A) #defineP3 #defineS(a)P*a*a main() {intar; ar=S(3+5); printf(“%d”,ar);} A)192B)29C)27D)25 46、以下能对二维数组a进行正确初始化的语句是(B)。 A)inta[2][]={{1,0,1},{5,2,3}}B)inta[][3]={{1,2,3},{4,5,6}} C)inta[2][4]={{1,2,3},{4,5},{6}}D)inta[][3]={{1,0,1}{},{1,1}} 47、下列描述中不正确的是(C) A)字符型数组中可以存放字符串 B)可以对字符型数组进行整体输入、输出 C)可以对整型数组进行整体输入、输出 D)不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值 48、设有定义”inta=3,b,*p=&a;”,则下列语句中使b不为3的语句是(B) A)b=*&a;B)b=*a;C)b=a;D)b=*p; 49、若有说明: inti,j=2,*p=&i;,则能完成i=j赋值功能的语句是(B) A、i=*p;B、*p=*&j;C、i=&j;D、i=**p; 50、C语言程序中每个语句和数据定义的最后必须有一个(A) A分号B逗号C空格D冒号 51.设intx=1,y=1;表达式(! x++||y——)的值是(B) A.0 B.1 C.2 D.-1 52.main() { intn; (n=6*4,n+6),n*2; printf(“n=%d\n”,n); } 此程序的输出结果是(B) A.30 B. 24 C. 60 D. 48 53.若有如下定义,则(D)是对数组元素的正确的引用。 int a[10],*p; p=a; p=a; p=a; p=a; A. *&a[10] B. a[11] C. *(p+10) D.*p 54.设整型变量n的值为2,执行语句“n+=n-=n*n;”后,n的值是(C) A. 0 B. 4 C. -4 D. 2 55.以下不能正确定义二维数组的语句是(D) A.inta[2][2]={{1},{2}}; B.inta[][2]={1,2,3,4}; C.inta[2][2]={{1},2,3}; D.inta[2][]={{1,2},{3,4}}; 56.(C)程序段的功能是将变量u、s中的最大值赋给变量t. A. if(u>s)t=u;t=s; B. t=u; if(t) t=s; C. if(u>s)t=s;elset=u; D. t=s;if(u) t=u; 57.下列程序段的输出结果是(A) . voidmain() { intk; for(k=1;k<5;k++〉 { if(k%2! =0)printf(“#”); else printf(“*”); } } A.#*#* B.*#*# C. ## D.以上都不对 58.设变量定义为inta[3]={1,4,7},*p=&a[2],则*p的值是(C) . A.&a[2] B.4 C.7 D.1 59.能正确表示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 60.C语言中,合法的字符型常数是(A). A.‘A’ B.“A” C.65 D.A 61.设有数组定义: chararray[]=“China”;则数组所占的空间是(C). A.4个字节 B.5个字节 C.6个字节 D.7个字节 62.若变量c为c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 期末 复习题 学生