常熟理工学院c语言题库本二.docx
《常熟理工学院c语言题库本二.docx》由会员分享,可在线阅读,更多相关《常熟理工学院c语言题库本二.docx(26页珍藏版)》请在冰豆网上搜索。
常熟理工学院c语言题库本二
下面选项中,不能用作C语言标识符的是(C)。
A._00B.printC.&bD.FOR
下面合法的标识符是(A)。
A.IFB.-321C.cfD.int
可以将高级语言编写的源程序转换为目标程序的软件是(D)。
A.汇编程序B.解释程序C.编辑程序D.编译程序
C语言程序中可以对程序进行注释,注释部分必须用符号(C)括起来。
A.“{”和“}”B.“[”和“]”
C.“/*”和“*/”D.“*/”和“/*”
已有预处理命令“#include”和声明“intx=4,y;”,下面语句中语法正确的是(C)。
A.if(x%2=1)y=x;B.if(sqrt(x)%2)y=x;
C.if(x==1)y=x;D.if(x==1)y=&x;
下列运算符中,优先级最低的是(D)。
A.*B.!
=C.+D.=
逻辑“异或”运算可描述为当且仅当a、b两个操作数中只有一个为真时才为真,其他情况下均为假。
下面能够正确表示逻辑“异或”运算的表达式是(D))。
A.a||bB.a&&b
C.(a&&b)&&!
(a||b)D.(a||b)&&!
(a&&b)
下面关于continue和break语句的叙述中正确的是(B)。
A.continue和break语句都可以出现在switch语句中
B.continue和break语句都可以出现在循环语句的循环体中
C.在switch语句允许出现continue和break语句
D.执行循环语句中的continue和break语句都将立即终止循环
在while(e)语句中的e与下面条件表达式等价的是(D)。
A.e==0B.e==1C.e!
=1D.e!
=0
已有函数fun的定义“voidfun(void){printf("That'sgreat!
");}”,则调用fun函数的正确形式是(B)。
A.fun;B.fun();C.fun(void);D.fun
(1);
设有下列程序段:
staticinty=2;
voidf2()
{staticfloatd=3;…}
intx=1;
voidf1()
{intz=3;…}
关于程序段中各变量的属性,下面叙述中错误的是(D)。
A.x是全局变量,函数f1可以访问,函数f2不能访问
B.y是全局变量,函数f1和函数f2都可以访问
C.z是动态变量,函数f1可访问,函数f2不可访问
D.d是静态变量,函数f1和函数f2都可以访问
已知某编译系统中singedint类型数据的长度是16位,该类型数据的最大值是(A)。
A.32767B.32768C.127D.65535
设k=7,x=12,则下列表达式值为3的是(D)。
A.x%=(k%=5)B.x%=(k-k%5)
C.x%=k-k%5D.(x%=k)-(k%=5)
已有定义“inta[]={5,4,3,2,1},i=4;”,下列对a数组元素的引用中错误的是(B)。
A.a[--i]B.a[a[0]]C.a[2*2]D.a[a[i]]
己有声明“inta=0,b=l,*p,*q;”,下列正确的语句是(C)。
A.a=p;B.b=q;C.p=&a;D.p=&q;
C语言中,结构体类型变量在程序执行期间(A)。
A.所有成员一直驻留在内存中
B.只有一个成员驻留在内存中
C.部分成员驻留在内存中
D.没有成员驻留在内存中
若有定义和声明typedefenum{green,red,yellow,blue,b1ack}color;colorflower;,则下列语句中正确的是(B)。
A.green=red;B.flower=red;
C.color=red;D.enum=red;
在文件包含预处理语句#include的使用形式中,当之后的文件名用双引号括起来时,寻找被包含文件的方式是(C)。
A.仅搜索当前目录
B.仅搜索源程序所在的目录
C.先在源程序所在目录搜索,再按系统设定的标准方式搜索
D.直接按系统设定的标准方式搜索目录
已有定义“inta[2][3]={0};*p=a[0];”,下面表达式中有语法错误的是(A)。
A.a[0]=1B.p[0]=1C.*p=1D.a[0][0]=1
下面关于C语言数据文件的叙述中正确的是(D)。
A.文件由ASCII码字符序列组成,C语言只能读写文本文件
B.文本由二进制数据序列组成,C语言只能读写二进制文件
C.文件由记录序列组成,可按数据的存放形式分为文本文件和二进制文件
D.文件由数据流序列组成,可按数据的存放形式分为文本文件和二进制文件
下面选项中,不能用作C语言标识符的是(C)。
A.FORB._10C.&hD.print
下面合法的标识符是(A)。
A.IFB.-412C.akD.char
C语言源程序的三种基本结构是顺序结构、(B)结构和循环结构。
A.递归B.选择C.转移D.嵌套
已有定义“floatx=1.23456;inti;”,欲将x中的数值保留小数点后两位,第三位进行四舍五入运算,能实现该功能的表达式是(A)。
A.i=x*100+0.5,x=i/100.0B.x=(x*100+0.5)/100.0
C.x=((int)x*100+0.5)/l00.0D.x=(x/100+0.5)/100.0
下面定义符号常量p为3.14中正确的是(D)。
A.#definep3.14;B.#definep(3.14)
C.#definep=3.14D.#definep3.14
表达式!
x等价于(A)。
A.x==0B.x==1C.x!
=0D.x!
=1
下面关于if语句和switch语句的叙述中错误的是(D)。
A.if语句和switch语句都可以实现算法的选择结构
B.if语句和switch语句都能实现多路(两路以上)选择
C.if语句可以嵌套使用
D.switch语句不能嵌套使用
下面关于循环语句for、while、do_while的叙述中正确的是(A)。
A.三种循环语句都可能出现无穷循环
B.三种循环语句中都可以缺省循环终止条件表达式
C.三种循环语句的循环体都至少被无条件地执行一次
D.三种循环语句的循环体都必须放入一对花括号中
在C语言中while和do-while循环的主要区别是(C)。
A.while的循环控制条件比do-while的循环控制条件严格
B.do-while允许从外部转到循环体内
C.do-while的循环体至少无条件执行一次
D.do-while的循环体不能是复合语句
若已定义一个有返回值的函数,则下面关于调用该函数的叙述中错误的是(A)。
A.函数调用可以作为一个函数形参
B.函数调用可以出现在表达式中
C.函数调用可以作为一个函数实参
D.函数调用可以作为独立的语句存在
设有下列程序段:
staticinty=2;
voidf2()
{staticfloatd=3;…}
intx=1;
voidf1()
{intz=3;…}
关于程序段中各变量的属性,下面叙述中错误的是(D)。
A.x是全局变量,函数f1可以访问,函数f2不能访问
B.y是全局变量,函数f1和函数f2都可以访问
C.z是动态变量,函数f1可访问,函数f2不可访问
D.d是静态变量,函数f1和函数f2都可以访问
若有代数式
,则不正确的C语言表达式是(C)。
A.x/b/c*y*6B.6*x*y/b/c
C.6*x*y/b*cD.x*y/c/b*6
已有定义“inti;floatf;”,则下面正确的表达式是(D)。
A.(intf)%iB.int(f)%iC.int(f%i)D.(int)f%i
已有定义“inta[2][3]”,下面选项中(A)正确地引用了数组a中的基本元素。
A.a[1>2][!
1]B.a[2][0]C.a[1]D.a
已有定义“intm=3,c,*a=&m,*b=&c;”,则下列语句中错误的是(C)。
A.a=b=0;B.a=&c,b=a;C.&a=&b;D.*b=*a
定义一个结构体变量时,系统分配给它的内存是(A)。
A.各成员所需内存总和
B.成员中所占内存最多的容量
C.结构中第一个成员所占内存的容量
D.结构中最后一个成员所占内存的容量
已有枚举类型定义“enumletter{E,F,G=7,H,I};”,下面表达式中除(D)外,其他表达式的机内值均等于10。
A.'\xb'-1B.F+IC.010+2D.0xf-3
下面关于宏的叙述正确的是(A)。
A.宏定义没有数据类型限制
B.宏名必须用大写字母表示
C.宏定义必须位于源程序中所有语句之前
D.宏调用比函数调用耗费时间
设有声明语句“intb[3][3]={1,2,3,4,5,6,7,8,9};”,下面语句中不能输出数组元素b[1][2]的值6的是(C)。
A.printf("%d",*(*(b+1)+2))B.printf("%d",*(&b[2][0]-1));
C.printf("%d",*(b+1)[2]);D.printf("%d",*(b[1]+2));
如果要用fopen()函数打开一个新的二进制文件,该文件要既能读也能写,则文件打开方式应为(A)。
A."wb+"B."ab+"C."rb+"D."ab"
下面选项中,不能用作C语言标识符的是(C)。
A.printB.INTC.&aD._02
下面合法的标识符是(A)。
A.FORB.-523C.nbD.if
下面叙述中正确的是(B)。
A.C程序的基本组成单位是语句
B.简单C语句必须以分号结束
C.C程序中的每一行只能写一条语句
D.C程序必须在一行内写完
用C语言编写的源程序中,(A)是必不可少的。
A.名为main的函数定义B.#include
C.变量定义D.注释部分
C源程序中的命令#include与#define是在(A)阶段被处理的。
A.预处理B.编译C.连接D.执行
已有定义“inta=3,b=4,c=5;”,则下列表达式中值为0的是(D)。
A.a&&bB.a<=bC.a||b&&cD.!
(!
c||1)
一元二次方程ax2+bx+c=0有两个相异实根的条件是
且b2-4ac>0,下面选项中正确的表达式是(C)。
A.a!
=0,b*b-4*a*c>0B.a!
=0||b*b-4*a*c>0
C.a&&b*b-4*a*c>0D.!
a&&b*b-4*a*c>0
下面关于语句的说法中正确的是(B)。
A.while语句的循环体至少会被执行1次
B.do-while语句的循环体至少会被执行1次
C.for语句的循环体至少会被执行1次
D.在C语言中只能用do、do-while或for语句实现循环结构
下面叙述中正确的是(C)。
A.break语句只能用于switch语句体中
B.continue语句的作用是:
使程序的执行流程跳出包含它的所有循环
C.break语句只能用在循环体内和switch语句体内
D.在循环体内使用break语句和continue语句的作用相同
对于C语言函数,下列叙述中正确的是(A)。
A.函数的定义不能嵌套,但函数调用可以嵌套
B.函数的定义可以嵌套,但函数调用不能嵌套
C.函数的定义和调用都不能嵌套
D.函数的定义和调用都可以嵌套
设有下列程序段:
staticinty=2;
voidf2()
{staticfloatd=3;…}
intx=1;
voidf1()
{intz=3;…}
关于程序段中各变量的属性,下面叙述中错误的是(D)。
A.x是全局变量,函数f1可以访问,函数f2不能访问
B.y是全局变量,函数f1和函数f2都可以访问
C.z是动态变量,函数f1可访问,函数f2不可访问
D.d是静态变量,函数f1和函数f2都可以访问
表达式“'A'+4*25.0-'b'”的正确结果是(B)。
A.67B.67.0C.不确定D.67L
存储字符串"\\\'abc\376"需要的字节数是(D)。
A.11B.13C.6D.7
若有数组a和b的声明“staticchara[]="abcdef",b[]={'a','b','c','d','e','f'};”则数组a和数组b的长度分别是(A)。
A.7,6B.6,7C.6,6D.7,7
己有声明“inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;”,则不能表示数组a中元素的是(D)。
A.*pB.a[6]C.*aD.p[a]
C语言中,下列属于构造类型的是(D)。
A.整型B.实型C.指针类型D.结构体类型
若有枚举类型定义“enumvari{A1,A2,A3,A4=6,A5,A6};”,则枚举常量A2和A6代表的值分别是(B)。
A.1,6B.1,8C.2,6D.2,8
下面叙述错误的是(C)。
A.宏替换不占用程序运行时间B.宏名无类型
C.宏名必须用大写字母表示D.宏替换只是字符替换
已有定义“inta[2][3]={1,2,3,4,5,6};”,则下列表达式中不能正确引用值为5的数组元素的是(C)。
A.*(a[0]+4)B.*(a[1]+1)
C.*(*(a+3)+1)D.*(*a+4)
若只允许对数据文件abc.txt做一次打开文件操作,修改其中的数据,则打开文件语句应为“fp=fopen("abc.txt",(B));”。
A."w+"B."r+"C."a+"D."r"
以下叙述中正确的是
A)程序设计的任务就是编写程序代码并上机调试
B)程序设计的任务就是确定所用数据结构
C)程序设计的任务就是确定所用算法
D)以上三种说法都不完整
以下选项中,能用作用户标识符的是
A)void
B)8_8
C)_0_
D)unsigned
阅读以下程序
#include
main()
{intcase;floatprintF;
printf(“请输入2个数:
”);
scanf(“%d%f”,&case,&pjrintF);
printf(“%d%f\n”,case,printF);
}
该程序编译时产生错误,其出错原因是
A)定义语句出错,case是关键字,不能用作用户自定义标识符
B)定义语句出错,printF不能用作用户自定义标识符
C)定义语句无错,scanf不能作为输入函数使用
D)定义语句无错,printf不能输出case的值
表达式:
(int)((double)9/2)-(9)%2的值是
A)0
B)3
C)4
D)5
若有定义语句:
intx=10;,则表达式x-=x+x的值为
A)-20
B)-10
C)0
D)10
有以下程序
#include
main()
{inta=1,b=0;
printf(“%d,”,b=a+b);
printf(“%d\n”,a=2*b);
}
程序运行后的输出结果是
A)0,0
B)1,0
C)3,2
D)1,2
设有定义:
inta=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是
A)if(a>b)c=a,a=b,b=c;
B)if(a>b){c=a,a=b,b=c;}
C)if(a>b)c=a;a=b;b=c;
D)if(a>b){c=a;a=b;b=c;}
有以下程序
#include
main()
{intc=0,k;
for(k=1;k<3;k++)
switch(k)
{default:
c+=k
case2:
c++;break;
case4:
c+=2;break;
}
printf(“%d\n”,c);
}
程序运行后的输出结果是
A)3
B)5
C)7
D)9
以下程序段中,与语句:
k=a>b?
(b>c?
1:
0):
0;功能相同的是
A)if((a>b)&&(b>c))k=1;
elsek=0;
B)if((a>b)||(b>c)k=1;
elsek=0;
C)if(a<=b)k=0;
elseif(b<=c)k=1;
D)if(a>b)k=1;
elseif(b>c)k=1;
elsek=0;
20)有以下程序
#include
main()
{chars[]={“012xy”};inti,n=0;
for(i=0;s[i]!
=0;i++)
if(s[i]>=’a’&&s[i]<=’z’)n++;
printf(“%d\n”,n);
}
程序运行后的输出结果是
A)0
B)2
C)3
D)5
有以下程序
#include
main()
{intn=2,k=0;
while(k++&&n++>2);
printf(“%d%d\n”,k,n);
}
程序运行后的输出结果是
A)02
B)13
C)57
D)12
有以下定义语句,编译时会出现编译错误的是
A)chara=’a’;
B)chara=’\n’;
C)chara=’aa’;
D)chara=’\x2d’;
有以下程序
#include
main()
{charc1,c2;
c1=’A’+’8’-‘4’;
c2=’A’+’8’-‘5’;
printf(“%c,%d\n”,c1,c2);
}
已知字母A的ASCII码为65,程序运行后的输出结果是
A)E,68
B)D,69
C)E,D
D)输出无定值
有以下程序
#include
voidfun(intp)
{intd=2;
p=d++;printf(“%d”,p);}
main()
{inta=1;
fun(a);printf(“%d\n”,a);}
程序运行后的输出结果是
A)32
B)12
C)21
D)22
以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能
#defineMIN-2147483647
intfindmax(intx[],intn)
{inti,max;
for(i=0;i
{max=MIN;
if(max
returnmax;
}
造成错误的原因是
A)定义语句inti,max;中max未赋初值
B)赋值语句max=MIN;中,不应给max赋MIN值
C)语句if(max
D)赋值语句max=MIN;放错了位置
有以下程序
#include
main()
{intm=1,n=2,*p=&m,*q=&n,*r;
r=p;p=q;q=r;
printf(“%d,%d,%d,%d\n”,m,n,*p,*q);
}
程序运行后的输出结果是
A)1,2,1,2
B)1,2,2,1
C)2,1,2,1
D)2,1,1,2
若有定义语句:
inta[4][10],*p,*q[4];且0≤i<4,则错误的赋值是
A)p=a
B)q[i]=a[i]
C)p=a[i]
D)p=&a[2][1]
有以下程序
#include
#include
main()
{charstr[][20]={“One*World”,“One*Dream!
”},*p=str[1];
printf(“%d,”,strlen(p));printf(“%s\n”,p);
}
程序运行后的输出结果是
A)9,One*World
B)9,One*Dream
C)10,One*Dream
D)10,One*World
有以下程序
#include
main()
{inta[]={2,3,5,4},i;
for(i=0;i<4;i++)
switch(i%2)
{case0:
switch(a[i]%2)
{case0:
a[i]++;break;
case1:
a[i]--;
}break;
case1:
a[i[=0;
}
for(i=0;i<4;i++)printf(“%d”,a[i]);printf(“\n”);
}
A)3344
B)2050
C)3040
D)0304
结构化程序设计语言编写的程序由三种结构组成:
顺序结构、分支结构和。
一个完整的C程序可以有多个函数,其中有且只能有一个名为的函数。
数学式
所对应的C语言表达式为(m,1/3.0)。
在调用函数fopen("d:
\\b.dat","r")时,若d盘根目录下不存在文件b.dat,则函数的返回值是。
执行下面程序段中的语句“k=A*A+1;”后k的值是。
#defineB2
#defineAB+1
k=A*A+1;
已有定义“floatm;doublen;inta;longb;charc;”,则表达式m+n*a/m+b/n+c值的类型为。
C语言有效的预处理命令总是以开头。
已有定义“inta[10],*p=a+3;”,则数组a的最后一个元素是p[]。
已有定义“intn=12;doublea;”,则执行语句“a=n/=5;”后,a的值为。
若要声明一个类型名STR,使得定义语句STRs等价于char*s,则声明语句是。
程序设计语言的发展经历了几个阶段:
机器语言、汇编语言和。
一个C程序总是从函数开始执行的。
已有定义“doublea=5,b=10;”,则计算ab的库函数调用形式是。
已有定义“charch='a';”,则表达式ch=ch-'a'+'A'的值为字符的编码。
表示“x≥y≥z”的C语言表达式是x>=y。
C语言有效的预处理命令总是以开