常熟理工学院 c语言题库文档格式.docx
《常熟理工学院 c语言题库文档格式.docx》由会员分享,可在线阅读,更多相关《常熟理工学院 c语言题库文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
…}
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=;
inti;
”,欲将x中的数值保留小数点后两位,第三位进行四舍五入运算,能实现该功能的表达式是(A)。
A.i=x*100+,x=i/B.x=(x*100+/
C.x=((int)x*100+/D.x=(x/100+/
下面定义符号常量p为中正确的是(D)。
A.#definep;
B.#definep
C.#definep=D.#definep
表达式!
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.函数调用可以作为独立的语句存在
关于程序段中各变量的属性,下面叙述中错误的是(D)。
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("
*(&
b[2][0]-1));
C.printf("
*(b+1)[2]);
D.printf("
*(b[1]+2));
如果要用fopen()函数打开一个新的二进制文件,该文件要既能读也能写,则文件打开方式应为(A)。
A."
wb+"
B."
ab+"
C."
rb+"
D."
ab"
A.printB.INTC.&
aD._02
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>
C.a&
b*b-4*a*c>
0D.!
a&
下面关于语句的说法中正确的是(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.函数的定义和调用都可以嵌套
表达式“'
A'
+4*'
b'
”的正确结果是(B)。
A.67B.67.0C.不确定D.67L
存储字符串"
\\\'
abc\376"
需要的字节数是(D)。
A.11B.13C.6D.7
若有数组a和b的声明“staticchara[]="
abcdef"
b[]={'
a'
'
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)
若只允许对数据文件做一次打开文件操作,修改其中的数据,则打开文件语句应为“fp=fopen("
"
(B));
”。
w+"
r+"
a+"
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
有以下程序
{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;
{intc=0,k;
for(k=1;
k<
3;
k++)
switch(k)
{default:
c+=k
case2:
c++;
break;
case4:
c+=2;
printf(“%d\n”,c);
A)3
B)5
C)7
D)9
以下程序段中,与语句:
k=a>
b?
(b>
c?
1:
0):
0;
功能相同的是
A)if((a>
c))k=1;
elsek=0;
B)if((a>
b)||(b>
c)k=1;
C)if(a<
=b)k=0;
elseif(b<
=c)k=1;
b)k=1;
elseif(b>
elsek=0;
20)有以下程序
{chars[]={“012xy”};
inti,n=0;
for(i=0;
s[i]!
=0;
i++)
if(s[i]>
=’a’&
s[i]<
=’z’)n++;
printf(“%d\n”,n);
B)2
C)3
D)5
{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)输出无定值
voidfun(intp)
{intd=2;
p=d++;
printf(“%d”,p);
{inta=1;
fun(a);
printf(“%d\n”,a);
A)32
B)12
C)21
D)22
以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能
#defineMIN-47
intfindmax(intx[],intn)
{inti,max;
i<
N;
I++)<
p="
/>
{max=MIN;
if(max
returnmax;
}
造成错误的原因是
A)定义语句inti,max;
中max未赋初值
B)赋值语句max=MIN;
中,不应给max赋MIN值
C)语句if(max
D)赋值语句max=MIN;
放错了位置
{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
{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
{inta[]={2,3,5,4},i;
4;
switch(i%2)
{case0:
switch(a[i]%2)
{case0:
a[i]++;
case1:
a[i]--;
}break;
a[i[=0;
for(i=0;
i++)printf(“%d”,a[i]);
printf(“\n”);
A)3344
B)2050
C)3040
D)0304
结构化程序设计语言编写的程序由三种结构组成:
顺序结构、分支结构和。
一个完整的C程序可以有多个函数,其中有且只能有一个名为的函数。
数学式
所对应的C语言表达式为(m,1/。
在调用函数fopen("
d:
\\"
"
)时,若d盘根目录下不存在文件,则函数的返回值是。
执行下面程序段中的语句“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='
;
”,则表达式ch=ch-'
+'
的值为字符的编码。
表示“x≥y≥z”的C语言表达式是x>
=y。
常量'
\n'
的数据类型是。
已有定义“intb[10],*p=b,*q;
q=&
b[5];
”,则表达式q-p的值是。
在文件中,以符号常量EOF作为文本文件(字符流文件)的结束标记,EOF代表的值是。
若要声明一