《常熟理工学院-c语言题库-(本二)(共14页).doc》由会员分享,可在线阅读,更多相关《常熟理工学院-c语言题库-(本二)(共14页).doc(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上下面选项中,不能用作C语言标识符的是( C )。 A_00Bprint C&bDFOR下面合法的标识符是( A )。 AIF B-321 Cc fDint可以将高级语言编写的源程序转换为目标程序的软件是( D )。 A汇编程序B解释程序 C编辑程序D编译程序C 语言程序中可以对程序进行注释,注释部分必须用符号( C )括起来。 A“”和“”B“”和“”C“/*”和“*/”D“*/”和“/*”已有预处理命令“#include ”和声明“int x=4, y;”,下面语句中语法正确的是( C )。 Aif(x%2=1)y=x;Bif(sqrt(x)%2)y=x;Cif(x
2、=1)y=x;Dif(x=1)y=&x;下列运算符中,优先级最低的是( D )。 A*B!= C+D=逻辑“异或”运算可描述为当且仅当a、b两个操作数中只有一个为真时才为真,其他情况下均为假。下面能够正确表示逻辑“异或”运算的表达式是( D ))。 Aa | bBa & bC(a&b)&!(a | b)D(a | b)&!(a&b)下面关于continue和break语句的叙述中正确的是( B )。 Acontinue和break语句都可以出现在switch语句中 Bcontinue和break语句都可以出现在循环语句的循环体中 C在switch语句允许出现continue和break语句D执
3、行循环语句中的continue和break语句都将立即终止循环在while(e)语句中的e与下面条件表达式等价的是( D )。 Ae=0Be=1 Ce!=1 De!=0已有函数fun的定义“void fun(void) printf(Thats great! );”,则调用fun函数的正确形式是( B )。 Afun;Bfun();Cfun(void);Dfun(1);设有下列程序段:static int y=2;void f2( ) static float d=3; int x=1;void f1( ) int z=3; 关于程序段中各变量的属性,下面叙述中错误的是( D )。 Ax是全局
4、变量,函数f1可以访问,函数f2不能访问 By是全局变量,函数f1和函数f2都可以访问 Cz是动态变量,函数f1可访问,函数f2不可访问Dd是静态变量,函数f1和函数f2都可以访问已知某编译系统中singed int类型数据的长度是16位,该类型数据的最大值是( A )。 A32767B32768 C127D65535设k=7,x=12,则下列表达式值为3的是( D )。 Ax%=(k%=5)Bx%=(k-k%5)Cx%=k-k%5D(x%=k)-(k%=5)已有定义“int a=5,4,3,2,1,i=4;”,下列对a数组元素的引用中错误的是( B )。 Aa-iBaa0 Ca2*2Daai
5、己有声明“int a=0,b=l,*p,*q;”,下列正确的语句是( C )。 Aa=p;Bb=q; Cp=&a;Dp=&q;C语言中,结构体类型变量在程序执行期间( A )。 A所有成员一直驻留在内存中 B只有一个成员驻留在内存中 C部分成员驻留在内存中 D没有成员驻留在内存中若有定义和声明typedef enumgreen, red, yellow, blue, b1ackcolor; color flower;,则下列语句中正确的是( B )。 Agreen=red;Bflower=red; Ccolor=red;Denum=red;在文件包含预处理语句include的使用形式中,当之后
6、的文件名用双引号括起来时,寻找被包含文件的方式是( C )。 A仅搜索当前目录 B仅搜索源程序所在的目录 C先在源程序所在目录搜索,再按系统设定的标准方式搜索D直接按系统设定的标准方式搜索目录已有定义“int a23=0; *p=a0;”,下面表达式中有语法错误的是( A )。 Aa0=1Bp0=1C*p=1Da00=1下面关于C语言数据文件的叙述中正确的是( D )。 A文件由ASCII码字符序列组成,C语言只能读写文本文件 B文本由二进制数据序列组成,C语言只能读写二进制文件 C文件由记录序列组成,可按数据的存放形式分为文本文件和二进制文件D文件由数据流序列组成,可按数据的存放形式分为文本
7、文件和二进制文件下面选项中,不能用作C语言标识符的是(C)。 AFOR B_10C&hDprint下面合法的标识符是(A)。AIF B-412Ca kDcharC 语言源程序的三种基本结构是顺序结构、(B)结构和循环结构。 A递归 B选择C转移D嵌套已有定义“float x=1.23456; int i;”,欲将x中的数值保留小数点后两位,第三位进行四舍五入运算,能实现该功能的表达式是(A)。Ai=x*100+0.5, x=i/100.0Bx=(x*100+0.5)/100.0Cx=(int)x*100+0.5)/l00.0Dx=(x/100+0.5)/100.0下面定义符号常量p为3.14中
8、正确的是(D)。 A#define p 3.14;B#define p(3.14) C#define p=3.14D#define p 3.14表达式 !x 等价于(A)。 Ax=0Bx=1Cx != 0 Dx!=1下面关于if语句和switch语句的叙述中错误的是(D)。 Aif语句和switch语句都可以实现算法的选择结构 Bif语句和switch语句都能实现多路(两路以上)选择 Cif语句可以嵌套使用 Dswitch语句不能嵌套使用下面关于循环语句for、while、do_while的叙述中正确的是(A)。 A三种循环语句都可能出现无穷循环 B三种循环语句中都可以缺省循环终止条件表达式
9、C三种循环语句的循环体都至少被无条件地执行一次 D三种循环语句的循环体都必须放入一对花括号中在C语言中while和do-while循环的主要区别是(C)。 Awhile的循环控制条件比do-while的循环控制条件严格 Bdo-while允许从外部转到循环体内 Cdo-while的循环体至少无条件执行一次 Ddo-while的循环体不能是复合语句若已定义一个有返回值的函数,则下面关于调用该函数的叙述中错误的是(A)。 A函数调用可以作为一个函数形参 B函数调用可以出现在表达式中 C函数调用可以作为一个函数实参 D函数调用可以作为独立的语句存在设有下列程序段:static int y=2;voi
10、d f2( ) static float d=3; int x=1;void f1( ) int z=3; 关于程序段中各变量的属性,下面叙述中错误的是(D)。 Ax是全局变量,函数f1可以访问,函数f2不能访问 By是全局变量,函数f1和函数f2都可以访问 Cz是动态变量,函数f1可访问,函数f2不可访问 Dd是静态变量,函数f1和函数f2都可以访问若有代数式,则不正确的C语言表达式是(C)。 Ax/b/c*y*6B6*x*y/b/c C6*x*y/b*cDx*y/c/b*6已有定义“int i;float f;”,则下面正确的表达式是(D)。 A(int f)%iBint(f)%i Cin
11、t(f%i)D(int)f%i已有定义“int a23”,下面选项中(A)正确地引用了数组a中的基本元素。 Aa12!1Ba20 Ca1Da已有定义“int m=3, c, *a=&m, *b=&c;”,则下列语句中错误的是(C)。 Aa=b=0;Ba=&c, b=a;C&a=&b;D*b=*a定义一个结构体变量时,系统分配给它的内存是(A)。 A各成员所需内存总和 B成员中所占内存最多的容量 C结构中第一个成员所占内存的容量 D结构中最后一个成员所占内存的容量已有枚举类型定义“enum letterE, F, G=7, H, I;”,下面表达式中除(D)外,其他表达式的机内值均等于10。 A
12、xb-1BF+IC010+2D0xf-3下面关于宏的叙述正确的是(A)。 A宏定义没有数据类型限制 B宏名必须用大写字母表示 C宏定义必须位于源程序中所有语句之前 D宏调用比函数调用耗费时间设有声明语句“int b33=1,2,3,4,5,6,7,8,9;”,下面语句中不能输出数组元素b12的值6的是(C)。 Aprintf(%d ,*(*(b+1)+2)Bprintf(%d ,*(&b20-1); Cprintf(%d ,*(b+1)2);Dprintf(%d ,*(b1+2);如果要用fopen()函数打开一个新的二进制文件,该文件要既能读也能写,则文件打开方式应为(A)。 Awb+Bab
13、+ Crb+Dab下面选项中,不能用作C语言标识符的是(C)。 Aprint BINTC&aD_02下面合法的标识符是(A)。 AFOR B-523Cn bDif下面叙述中正确的是(B)。 AC程序的基本组成单位是语句 B简单C语句必须以分号结束 CC程序中的每一行只能写一条语句DC程序必须在一行内写完用C语言编写的源程序中,(A)是必不可少的。 A名为main的函数定义B#include C变量定义D注释部分C源程序中的命令#include与#define是在(A)阶段被处理的。 A预处理B编译C连接D执行已有定义“int a=3, b=4, c=5;”,则下列表达式中值为0的是(D)。 A
14、a&bBa0,下面选项中正确的表达式是(C)。 Aa!=0, b*b-4*a*c0Ba!=0|b*b-4*a*c0 Ca&b*b-4*a*c0D!a&b*b-4*a*c0下面关于语句的说法中正确的是(B)。 Awhile语句的循环体至少会被执行1次 Bdo-while语句的循环体至少会被执行1次 Cfor语句的循环体至少会被执行1次 D在C语言中只能用do、do-while或for语句实现循环结构下面叙述中正确的是(C)。 Abreak语句只能用于switch语句体中 Bcontinue语句的作用是:使程序的执行流程跳出包含它的所有循环 Cbreak语句只能用在循环体内和switch语句体内
15、D在循环体内使用break语句和continue语句的作用相同对于C语言函数,下列叙述中正确的是(A)。 A函数的定义不能嵌套,但函数调用可以嵌套 B函数的定义可以嵌套,但函数调用不能嵌套 C函数的定义和调用都不能嵌套 D函数的定义和调用都可以嵌套设有下列程序段:static int y=2;void f2( ) static float d=3; int x=1;void f1( ) int z=3; 关于程序段中各变量的属性,下面叙述中错误的是(D)。 Ax是全局变量,函数f1可以访问,函数f2不能访问 By是全局变量,函数f1和函数f2都可以访问 Cz是动态变量,函数f1可访问,函数f2
16、不可访问 Dd是静态变量,函数f1和函数f2都可以访问表达式“A +4*25.0-b”的正确结果是(B)。 A67B67.0C不确定D67L存储字符串abc376需要的字节数是(D)。 A11 B13C6 D7若有数组a和b的声明“static char a= abcdef,b= a, b, c, d, e, f;”则数组a和数组b的长度分别是(A)。 A7,6B6,7C6,6D7,7己有声明“int a10=0, 1, 2, 3, 4, 5, 6, 7, 8, 9,*p=a;”,则不能表示数组a中元素的是(D)。 A*pBa6C*aDpaC语言中,下列属于构造类型的是(D)。 A整型 B实型
17、C指针类型D结构体类型若有枚举类型定义“enum variA1, A2, A3, A4=6, A5, A6;”,则枚举常量A2和A6代表的值分别是(B)。 A1,6B1,8C2,6D2,8下面叙述错误的是(C)。A宏替换不占用程序运行时间B宏名无类型C宏名必须用大写字母表示D宏替换只是字符替换已有定义“int a23=1, 2, 3, 4, 5, 6;”,则下列表达式中不能正确引用值为5的数组元素的是(C)。A*(a0+4)B*(a1+1) C*(*(a+3)+1)D*(*a+4)若只允许对数据文件abc.txt做一次打开文件操作,修改其中的数据,则打开文件语句应为“fp=fopen(abc.
18、txt,(B);”。 Aw+Br+Ca+Dr以下叙述中正确的是 A)程序设计的任务就是编写程序代码并上机调试 B)程序设计的任务就是确定所用数据结构 C)程序设计的任务就是确定所用算法 D)以上三种说法都不完整以下选项中,能用作用户标识符的是A)voidB)8_8C)_0_D)unsigned阅读以下程序 #include main() int case; float printF; printf(“请输入2个数:”); scanf(“%d %f”,&case,&pjrintF); printf(“%d %fn”,case,printF); 该程序编译时产生错误,其出错原因是 A)定义语句出错
19、,case是关键字,不能用作用户自定义标识符 B)定义语句出错,printF不能用作用户自定义标识符 C)定义语句无错,scanf不能作为输入函数使用 D)定义语句无错,printf不能输出case的值表达式:(int)(double)9/2)-(9)%2的值是 A)0 B)3 C)4 D)5 若有定义语句:int x=10;,则表达式x-=x+x的值为 A)-20 B)-10 C)0 D)10有以下程序 #include main() int a=1,b=0; printf(“%d,”,b=a+b); printf(“%dn”,a=2*b); 程序运行后的输出结果是 A)0,0 B)1,0
20、C)3,2 D)1,2设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是 A)if(ab) c=a,a=b,b=c; B)if(ab) c=a,a=b,b=c; C)if(ab) c=a;a=b;b=c; D)if(ab) c=a;a=b;b=c;有以下程序 #include main() int c=0,k; for (k=1;kb?(bc?1:0):0;功能相同的是 A)if(ab)&(bc) k=1;else k=0; B)if(ab)|(bc) k=1;else k=0; C)if(a=b) k=0;else if(bb) k=1;else if(bc)
21、k=1; else k=0;20)有以下程序 #include main() char s=“012xy”;int i,n=0; for(i=0;si!=0;i+)if(si=a&si2); printf(“%d %dn”,k,n); 程序运行后的输出结果是 A)0 2 B)1 3 C)5 7 D)1 2有以下定义语句,编译时会出现编译错误的是 A)char a=a; B)char a=n; C)char a=aa; D)char a=x2d;有以下程序#include main() char c1,c2; c1=A+8-4; c2=A+8-5; printf(“%c,%dn”,c1,c2);
22、已知字母A的ASCII码为65,程序运行后的输出结果是 A)E,68 B)D,69 C)E,D D)输出无定值有以下程序 #include void fun(int p) int d=2; p=d+; printf(“%d”,p); main() int a=1; fun(a); printf(“%dn”,a); 程序运行后的输出结果是 A)32 B)12 C)21 D)22以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能#define MIN - int findmax (int x,int n) int i,max; for(i=0;iN;I
23、+) max=MIN; if(max return max; 造成错误的原因是 A)定义语句int i,max;中max未赋初值 B)赋值语句max=MIN;中,不应给max赋MIN值 C)语句if(max D)赋值语句max=MIN;放错了位置 有以下程序 #include main() int m=1,n=2,*p=&m,*q=&n,*r; r=p;p=q;q=r; printf(“%d,%d,%d,%dn”,m,n,*p,*q); 程序运行后的输出结果是 A)1,2,1,2 B)1,2,2,1 C)2,1,2,1 D)2,1,1,2若有定义语句:int a410,*p,*q4;且0i4,
24、则错误的赋值是 A)p=a B)qi=ai C)p=ai D)p=&a21有以下程序 #include #include main() char str 20=“One*World”, “One*Dream!”,*p=str1; printf(“%d,”,strlen(p);printf(“%sn”,p); 程序运行后的输出结果是 A)9,One*World B)9,One*Dream C)10,One*Dream D)10,One*World有以下程序 #include main() int a =2,3,5,4,i; for(i=0;i4;i+) switch(i%2) case 0:sw
25、itch(ai%2) case 0:ai+;break; case 1:ai-; break; case 1:ai=0;for(i=0;i=y 。C语言有效的预处理命令总是以 开头。常量n的数据类型是 。已有定义“int b10, *p=b, *q; q=&b5;”,则表达式q-p的值是 。在文件中,以符号常量EOF作为文本文件(字符流文件)的结束标记,EOF代表的值是 。若要声明一个类型名STR,使得定义语句STR s等价于char *s,则声明语句是 。结构化程序设计语言编写的程序由三种结构组成:顺序结构、 和循环结构。C语言中除复合语句外的其它所有语句都以 结束。已有定义“double
26、a=10, b=5;”,则计算ab的库函数调用形式是 。C语言有效的预处理命令总是以 开头。已有定义“char a=1; int b=2; float c=3; double d=4;”,则表达式“c=a+b+c+d”值的类型为 。用typedef定义一个长度为10的整型数组NUM的语句是 。执行下面程序段中的语句“k = A*A+1;”后k的值是 。#define B 2#define A B+1k = A*A+2;已有定义“int a4=1, 2, 3, 4, 5, 6, 7, 8, 9;”,则数组a第一维的大小是 。 程序中已使用预处理命令“#include”,为使语句“fp=fopen
27、(asc.txt,r);”能正常执行,在该语句之前必须有定义FILE ;。执行“printf(%d,%d, a, b, c, d); ”后在屏幕上将输出 个整数。C语言中除复合语句外的其它所有语句都以(分号)结束。数学式所对应的C语言表达式为pow(m, (1/3.0))。判断字符变量c是英文字母的表达式是(c=a&c=A&c=Z)。一个C程序在运行时,如果没有发生任何异常情况,则只有在执行了(main)函数的最后一条语句或该函数中的return语句后,程序才会终止运行。已有定义“int r=3;”,则执行语句“printf(%d, sizeof(2*3.14159*r);”时输出(8)。若二
28、维数组a有n列,则在存储该数组时,aij之前有(i*n+j)个数组元素。已有定义“char ch110= abcdef, ch210= a0;”,则执行语句 “printf(%d, strlen(strcpy(ch1, ch2);”的输出结果是(3)。结构类型的每个成员的数据类型可以是基本数据类型,也可以是(构造)类型。若已有定义“enum ABCA, B, C;”,则执行语句“printf(%dn, A+2);”后输出结果是(2)。已知数据文件abc.dat是通过执行下列程序建立的,若在另一个程序运行时需要从该数据文件中正确读取数据,则正确的读文件库函数的函数名是(fread)。#inclu
29、deint main() FILE *fp = fopen(abc.dat,wb);float x = 25.0;fwrite(&x, sizeof(float), 1, fp);fclose(fp);return 0;C语言没有提供用于数据输入及输出的语句,所有的输入与输出都是通过系统提供的()来实现的。已有定义“float x=3.14159; int n;”,则计算表达式“n = x*100+0.5, x= n/100.0”后x的值是()。已有定义“char ch; int b;” 执行语句“scanf(%c%d, &ch, &b);”时如果从键盘输入的数据是“110”,则变量b得到的值
30、是()。若一个函数不需要形参,则在定义该函数时,应使形式参数表为空或放置一个()。若在某个C编译系统中,如果一个变量能正确存储的数据范围为整数-3276832767,则该变量在内存中占()字节。系统库函数scanf和gets在被调用执行时都可以读取从键盘输入的一串数字字符,其中函数( )具有将读取的数字字符串转换为整型数的功能。已有定义“int a32=6, 5, 4, 3, 2, 1, *p=a1;” 则执行语句“printf(%dn, *(p+2);”后的输出结果是()。若程序中已经声明了一个结构类型以及结构变量,则访问该结构变量成员的形式是()。若已有定义“enum ABCA, B, C
31、;”,则执行语句“printf(%dn, A+1);”后输出结果是()。下列程序段的输出是()。char *a2=one, two, *p=a;printf(%s, *(p+)+1);printf(%cn, *p-1);结构化程序设计语言编写的程序由三种结构组成:顺序结构、分支结构和(循环结构)。已有定义“double n;”,则数学公式“”对应的C语言表达式是(3.0/4*n*(4*power(n,2)-1))。已有定义“int m=2,n=3;”,则执行表达式“(mn)&(-m0)”后m的值为(2)。变量的值在函数调用结束后仍然保留,以便下一次调用该函数时使用,可以将局部变量定义为(sta
32、tic)类型。数学式所对应的C语言表达式为(sqrt(a*a+b*b)/(a+b))。若有表达式为 (x) op (y),其中op代表运算符,x、y代表操作数。若op是“+”运算符,且x和y均为常量时,不能同时为(字符串)常量。已有定义“char *s=%d,%dn; int a=2, b=3;”,则语句“printf(s, a, b);”的输出结果是(2,3)。使用sizeof()函数计算结构struct List的长度的表达式是(sizeof(struct List))。若已有定义“enum ABCA, B, C;”,则执行语句“printf(%dn, B+1);”后输出结果是(2)。下列
33、程序段的输出是(7,-13)。#define F(x) x - 2#define D(x) x*F(x)printf(%d,%d, D(3), D(D(3) ;题目:本程序的功能是:以每行5个的格式输出22000之间满足下列条件的数:(1)该数是素数;(2)从个位开始依次去掉一位数字后的数仍然是素数。例如,233是素数,23和2仍然是素数,则233满足条件。改正程序中的错误。注意:不能增加、删除语句,但可以调换语句的位置。【含有错误的程序代码】(1)#include(2)int prime(int n) /*判断n是否为素数的函数*/(3)int i;(4)for(i=2;in-1;i+)(5
34、)if(n%i=0)(6)return 0;(7)return 1;(8)(9)main()(10)int m,n,k,flag;(11)for(n=2;n2000;n+)(12)if(prime(n) /*若不是素数则判断下一个*/(13)continue;(14)else(15)m=n;(16)flag=1; /*标志变量置为1*/(17)while(m0)(18)m=m/10; /*依次去掉一位数字*/(19)if(!prime(m)(20)flag=0; /*若不是素数标志置为0*/(21)break;(22)(23)(24)if(flag) /*若是素数则输出*/(25)printf
35、(t%d,n);(26)k+;(27)if(k%5=0)(28)printf(n);(29)(30)(31)本程序的功能是:输出25至200之间所有能被5整除且至少有一位数字是3的整数。请改正程序中的错误。注意:不能增加、删除语句,但可以调换语句的位置。【含有错误的程序代码】1#include2void main()34 int i,j,n=0,m,k,a200,b5;5 for(i=25;i=200;i+)6if(i%5!=0)/* 判断是否是5的倍数 */7i = m;/* 将判断的数赋给m */8j=0;9k=0;10do11bj=m%10;12m/=10;13if(bj=3)14k+;
36、15j+;16while(m0)18an+=i;1920 for(i=0;in;i+)21printf(%4d,ai);22题目:下面程序的功能是:由键盘输入任意字母数字串number345reverse,将其中字母直接输出,数字逆序输出。改正程序中的错误。注意:不能增加、删除语句,但可以调换语句的位置。【含有错误的程序代码】(1)#include(2)main()(3)(4)char ch;(5)long m,n,nx=0; /*定义变量并赋初值*/(6)while(ch=getchar()!=n)(7)(8)if(ch=0&ch=9) /*判断是否为数字*/(9)m=m*10+ch-0; /*生成数字*/(10)else(11)putchar(ch); /*输出非数字*/(12)(13)n=m;(14)while(n!=0) /*数字逆序*/(15)(16)nx=nx*10+m%10;(17)m=m/10;(18)(1