C语言常见考试题型.doc_第1页
C语言常见考试题型.doc_第2页
C语言常见考试题型.doc_第3页
C语言常见考试题型.doc_第4页
C语言常见考试题型.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

常见考试题型选择题(13年20题,每题1分,共20分)填空题(13年20分,基本概念、写程序运行结果、完善程序)判断题(13年10题、每题1分,共10分)编程题(13年4题,共40分)其他题型练习题选讲选择题(1) 一个C程序的执行是从 。A) 本程序的main函数开始,本程序的main函数结束B) 本程序的第一个函数开始,本程序的最后一个函数结束C) 本程序的main函数开始,本程序的最后一个函数结束D) 本程序的第一个函数开始,本程序的main函数结束(2) C语言源程序名的后缀是 。A).exeB) .c C) .objD) .cpp(3) 以下不能用作C语言中的标识符的是 。A)_ab12cdB)ab12cd_C)12abcdD)ab12_cd(4) 下面关于字符常量的说法错误的是 。A)一个字符常量代表ASCII字符集中的一个字符B)单引号中的大写字母和小写字母代表不同的字符常量 C)字符常量只能包含一个字符 D)字符常量可以用单引号或双引号括起来(5) 以下程序运行后的输出结果是 。 #include main() int a=1,b=0; printf(“%d,”,b=a+b); printf(“%dn”,a=2*b); A)0,0B)1,0C)3,2D)1,2(6) 以下关于C语言中初始化的说法中正确的是 。A)若整型变量在定义时没有初始化,则此时变量的值为0B)若整型变量在定义时没有初始化,则变量的值是空值C)若整型数组在定义时做了不完全初始化,则无法确定未指定值的数组元素的取值D)变量定义时如果没有初始化,则无法确定该变量的值(7) 已知字符A的ASCII码值是65,以下程序 。#include void main( )char a=A;int b=20;printf(%d,%o,(a=a+1),b );A)表达式非法,输出零或不确定值B)因输出项过多,无输出或输出不确定值C)输出结果为20,142D)输出结果为66,24(8) 下列说法中错误的是 。A)只能在循环体内使用break语句B)在循环体内使用break语句可以使流程跳出本层循环体,从而提前结束本层循环 C)在while和do-while循环中,continue语句并没有使整个循环终止 D)continue的作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,继续执行下次循环(9) 若变量已正确定义并赋值,不符合C语言语法的表达式是 。A)a=a+7B)a=7+b+c,8C)ab & bcD)a=a+7=c+b(10) 设int类型的数据长度为2个字节,则unsigned int类型数据的取值范围是 。A)0至255B)0至65535C)0至32767D)-32768至32767(11) 以下程序的输出结果是 。main()int x=10,y=10;printf(“%d %dn”,x-,-y);A)10 9B)9 9C)9 10D)10 10(12) 若以下选项中的变量已正确定义,则正确的赋值语句是 。A)x1=26.8%3B)x3=0x12C)1+2=x2D)x4=1+2=3; (13) 以下表示数学式子“abc”的逻辑表达式中错误的是 。 A)abcB)ab & b=b) & !(b=c)D)!(a=b | b=c)(14) 已知字符A的ASCII码值是65,以下程序 。#include void main( )char a=A;int b=20;printf(%d,%o,(a=a+1),b );A)表达式非法,输出零或不确定值B)因输出项过多,无输出或输出不确定值C)输出结果为20,142D)输出结果为66,24(15) 在下面的条件语句中(其中s1和s2代表C语言的语句),只有一个在功能上与其它三个语句不等价,它是 【13】 。Aif(a) s1 ; else s2; Bif(a=0) s2 ; else s1;Cif(a!=0) s1 ; else s2; Dif(a=0) s1 ; else s2;(16) 当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是 。A)k%2B)k%2=1C)(k%2)!=0D)!k%2=1(17) 已知x=3,y=2,则表达式x*=y+8的值为 【4】 。A)3B)2C)30D)10(18) 读下列程序:#include main( )float a,b,t; scanf(%f,%f,&a,&b); if ( ab) t=a;a=b;b=t; printf (%5.2f,%5.2f,a,b );运行时从键盘输入3.8和3.4,则正确的输出结果是 。A)3.40,3.80B)3.40,3.80C)3.4,3.8D)3.80,3.40(19) 运行以下程序,输入6以后的输出结果是 。#include void main()int x,y;scanf(%d,&x);y=0;if(x=0)if(x0)y=1;elsey=-1;printf(%dn,y);A)0B)1C)-1D)不确定(20) 已知:intx,a,b;下列选项中错误的if语句是 。A)if (a=b) x+; B)if (a =5) printf(%d,x);else printf(%dn,x-);A)7和5B)6和3C)7和4D)6和4(22) 以下程序运行后的输出结果是 。#include stdio.hvoid main()int a;scanf(“%d”,&a);if (a100)printf(%dn,a100);elseprintf(%dn,a=100);A)100B)1C)0D)不确定(23) 若变量已正确定义,则以下程序段的输出结果是: 。x=0; y=2; z=3;switch(x) case 0:switch(y=2)case 1:printf(*);break;case 2:printf(%);break;case 1:switch(z)case 1:printf($);case 2:printf(*);break;default:printf(#);A)*B)*# C)*%#D)*%$*(24) 设有程序段int k=10;while (k=0) k=k-1;则下面描述中正确的是 。A)while循环执行10次B)循环时无限循环C)循环体语句一次也不执行D)循环体语句执行一次(25) 有以下程序main() int s,i=0,x=0;for (;)if(i=3|i=5) continue;if (i=6) break;i+;s+=i;printf(%dn,s);程序运行后的输出结果是 。A10B13C21D程序进入死循环(26) 运行以下程序,输入ADescriptor(表示回车),则输出结果是 。#include main()char c;int v1=0,v2=0;doswitch(c=getchar()case A:case e:case i:case o:default:v1=v1+1;v2+=1;while(c!=n);printf(v1=%d,v2=%dn,v1,v2);A)v1=0,v2=0B)v1=4,v2=4C)v1=11,v2=11D)v1=12,v2=12(27) 若a 、b均为int型变量且a=100,则对以下for循环语句的正确判断是 。for (b=100 ; a!= b; +a,b+) printf ( -n); A)循环体只执行一次B)是死循环C)循环体一次也不执行D)以上说法都不对(28) 以下程序运行后的输出结果是 。#include void main() int n=2,k=0;while(k+&n+2);printf(“%d %dn”,k,n);A)1 2B)1 3C)5 7D)0 2(29) 判断字符串s1是否大于字符串s2,应当使用 【10】 。A)if(s1s2)B)if(strcmp(s1,s2)C)if(strcmp(s2,s1)0)D)if(strcmp(s1,s2)0)(30) 若有以下语句,则正确的描述是 。char x = 12345;char y =1,2,3,4,5;A)x数组和y数组的长度相同B)x数组长度大于y数组的长度C)x数组长度小于y数组的长度D)x数组等价于y数组(31) 下列选项中,能正确定义数组的语句是 。A)int num0.2008;B)int num;C)int N=2008;int numN;D)#define N 2008int numN;(32) 下列关于输出函数的说法中,不正确的 。A)putchar()函数只能输出一个字符B)printf()函数在输出整数时,使用%f 格式控制符C)scanf()函数既可以输入数值,也可以输入字符串D)strcpy()函数可以实现字符串拷贝(33) 若有以下定义 int x10, *pt=x; 则对x数组元素的正确引用是 。A)*&x10B)*(x+3)C)*(pt+10)D)pt+3 (34) 为了判断两个字符串s1和s2是否相等,应当使用 。A)if (s1= =s2) B)if (s1=s2)C)if ( strcpy (s1,s2) ) D)if ( strcmp( s1,s2)= =0 )(35) 现有如下定义语句 int *p,s20,i; p=s; 表示数组元素si的表达式不正确的是 。A)*(s+i)B)*(p+i)C)*(s=s+i)D)*(p=p+i) (36) 设有定义double a10,*s=a;,以下能够代表数组元素a3的是 。A)(*s)3B)*(s+3)C)*s3D)*s+3(37) 以下程序的运行结果是 。 #include struct st int x, y; data2=1,10,2,20;main() struct st *p=data;printf(%d, p-y); printf(%dn,(+p)-x); A)10,1B)20,1 C)10,2D)20,2有以下程序运行后的输出结果是 。#include void fun(char *c,int d)*c=*c+1;d=d+1;printf(%c,%c,*c,d);main()char b=a,a=A;fun(&b,a);printf(%c,%cn,b,a);A)b,B,b,AB)b,B,B,AC)a,B,B,aD)a,B,a,B(38) 有以下程序#include #include struct A int a; char b10; double c;void f(struct A t);main() struct A a=1001,ZhangDa,1098.0;f(a); printf(%d,%s,%6.1fn,a.a,a.b,a.c);void f(struct A t) t.a=1002; strcpy(t.b,ChangRong);t.c=1202.0;程序运行后的输出结果是 A 。A)1001,zhangDa,1098.0B)1002,changRong,1202.0C)1001,ehangRong,1098.0D)1002,ZhangDa,1202.0(39) 以下程序的输出结果是 。 #include stdio.h void fun(int x) printf(%dn,+x); void main() fun(12+5); A)12B)13C)17D)18(40) 以下叙述中不正确的是 。A)在不同的函数中可以使用相同的名字的变量B)函数中的形式参数是局部变量C)在一个函数内的复合语句中定义的变量在本函数范围内有效D)在一个函数内定义的变量只在本函数范围内有效填空题(1) C语言中最重要的一个函数是 main ,缺少该函数程序就无法运行。(2) 若有代数式:,则正确的C语言表达式为: x*x/(3*x-5*y) 。 (3) 设a=2,b=3,x=3.5,y=2.5;算术表达式(float)(a+b)/2+(int)x%(int)y的值是 3.5 。(4) 若定义了一个指针变量int a=90,*p,假设p=&a ,则执行*p的值为 90 。(5) 在逻辑运算符 !、&、|中,运算优先级别最高的是 ! 。(6) 表示年份y是闰年(能被4整除但不能被100整除或者能被400整除为闰年)的逻辑表达式为 y%4=0 & y%100!=0 | y%400=0 。(7) C语言中数组的起始下标默认为 0 。(8) 若x,y是int型变量,x=100,y=200 ,则程序段printf(%d,(x,y);的输出是 200 。(9) break语句可以用在循环语句和 switch 语句中。(10) 定义数组int a10,则从键盘读入数组a的最后一个元素的语句是 scanf(“%d”,&a9 ); 。(11) 若有声明”int i=7;float x=3.1416;double y=3;”,则表达式i+a*x+i/y值的类型是 double 型。(12) 与数学算式等价的C语言表达式是 sqrt(abs(a-b)/(3*(a+b) 。(13) 设x为int型变量,请写出一个关系表达式 (x%3=0) &(x%7=0) ,用以判断x同时为3和7的倍数时,关系表达式的值为真。(14) 设x,y,z,k都是int型变量,当执行表达式x=(y=4,z=16,k=32)之后x的值为 32 。(15) 设char类型的数据长度为1个字节,则unsigned char类型数据的取值范围是 0255 。(16) 以下程序段的输出结果是: 1 0 。int a=-1,b=1;if (+a0) & !(b-=0)printf(%d %d,a,b);elseprintf(%d %d,b,a);(17) 以下程序的输出结果为 6 。 #include void main() int k=5,n=0; while(k0) switch(k) case 1: case 3:n+=1;k-;break; default:n=0;k-; case 2: case 4: n+=2;k-;break; printf(%3d,n); (18) 以下程序运行后的输出结果是 1 。#includevoid main()int i,j,m=1;for(i=1;i0;j-)if (i*j)3)break;m=i*j;printf(m=%dn,m);(19) 运行下列程序,若输入are(回车),则输出结果为 Compare 。#include void main() char str100=Computer; char *p=str; scanf(%s,p+4); puts(str);(20) 以下程序段的输出结果为 15 。注意:*运算优先级高于条件运算#include#define MIN(x,y) (x)(y)? (x):(y)void main() int i,j,k;i=10; j=15;k=10*MIN(i,j);printf(%dn,k);(21) 完善下列程序,计算sum=1+(1+2)+(1+2+3)+(1+2+3+n)的值。#include main() int n,s,sum=0; scanf(%d,&n); for(int i=1;i=n;i+) s=0 ; for(int j=1;j=A&stri=a & stri=0 & stri=9 ) num+; else other+; printf(big= %d, small=%d,num=%d,other= %dn, big, small, num, other);(23) 完善下列程序,要求从键盘输入10个整数,使用冒泡法升序排序后输出该数组。#include stdio.hvoid main() int a10; int i,j,t; printf(请输入10个数:);for(i= 0;i10;i+) scanf(%d,&ai);for(i= 0;i9;i+) for(j=0; jaj+1 ) t=aj; aj=aj+1; aj+1=t; printf(排序后:n);for(i= 0;i10;i+) for(j=0;j4;j+) printf(%d,aij); (24) 完善下列程序,将一个数组中的数据奇数放在前面,偶数放在后面。#include #define N 10void main()int i,left,right,aN,bN;printf(处理前的数组:);for (i=0;iN;i+) scanf(%d ,&ai);left=0; right=N-1 ;for (i=0;iN;i+) if (ai%2!=0) bleft+=ai; else brig

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论