c语言考试题文档格式.docx
《c语言考试题文档格式.docx》由会员分享,可在线阅读,更多相关《c语言考试题文档格式.docx(30页珍藏版)》请在冰豆网上搜索。
#include<
>
main()
{int**k,*j,i=100;
j=&
i,k=&
j;
printf("
**k);
}
A、运行错误
B、100
C、i的地址
D、j的地址
以下叙述正确的是()。
A、可以把if定义为用户标识符,但不能把define定义为用户标识符
B、define和if都不能定义为用户标识符
C、可以把define定义为用户标识符,但不能把if定义为用户标识符
D、可以把define和if定义为用户标识符
关于建立函数的目的,以下正确的说法是()。
A、提高程序的可读性
B、减少程序文件所占内存
C、减少程序的篇幅
D、提高程序的执行效率
若使用一维数组名作函数实参,则以下正确的说法是()。
A、实参数组名与形参数组名必须一致
B、必须在主调函数中说明此数组的大小
C、实参数组类型与形参数组类型可以不匹配
D、在被调用函数中,不需要考虑形参数组的大小
下面叙述中错误的是()。
A、在其它函数中定义的变量在主函数中也不能使用
B、主函数中定义的变量在整个程序中都是有效的
C、复合语句中定义的变量只在该复合语句中有效
D、形式参数也是局部变量
下列说法中错误的是()。
A、如果在对数组进行初始化时,给定的数据元素个数比数组元素个数少时,多余的数组元素会被自动初始化为最后一个给定元素的值
B、一个数组只允许存储同种类型的变量
C、数组的名称其实是数组在内存中的首地址
D、当数组名作为参数被传递给某个函数时,原数组中的元素的值可能被修改
以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是()。
A、chart[]="
abcdefg"
*s=t;
B、chars[10]="
C、chars[10];
s="
D、chars[10];
strcpy(s,"
);
已定义charstr1,str2[10];
选择正确的输入语句().
A、scanf("
%c%s"
str1,str2);
B、scanf("
&
str1,&
str2);
C、scanf("
&
str1,str2);
D、scanf("
str1,&
若有语句charx[]="
12345"
y[]={'
1'
'
2'
3'
4'
5'
};
则正确的描述是().
A、x数组和y数组的长度相同.
B、x数组的长度小于y数组的长度.
C、x数组等价于y数组.
D、x数组的长度大于y数组的长度.
下列字符数组长度为5的是()。
A、chard[6]={'
h'
'
a'
b'
c'
\0'
};
B、charc[10]={'
d'
C、charb[]={'
D、chara[]={'
若有说明inta[3][4];
则a数组元素的非法引用是()。
A、a[1][3]
B、a[0][4]
C、a[0][2*1]
D、a[4-2][0]
语句while(!
E);
中的表达式!
E等价于()。
A、E==1
B、E!
=0
C、E!
=1
D、E==0
在C语言中,为了结束由while语句构成的循环,while后一对圆括号
中表达式的值应该为()。
A、非0
B、1
C、0
D、True
从循环体内某一层跳出,继续执行循环外的语句是()。
A、continue语句
B、空语句
C、break语句
D、return语句
下面程序段运行的结果是().
x=-1;
do{
x=x*x;
}while(!
x);
A、循环执行一次
B、有语法错误
C、死循环
D、循环执行两次
判断char型变量cl是否为小写字母的正确表达式是()。
A、('
=cl)||('
z'
<
=cl)
B、'
=cl<
='
C、(cl>
=a)&
&
(cl<
=z)
D、(cl>
)&
)
若有条件表达式(exp)a++:
b--,则以下表达式中能完全等价于
表达式(exp)的是()。
A、(exp==1)
B、(exp!
=1)
C、(exp!
=0)
D、(exp==0)
设a,b,c,f均为整型变量,则执行以下程序段后,f的值为:
()
a=0;
b=c=1;
f=--a||++b&
--c;
A、不确定值
C、2
D、1
C语言中,switch后的括号内表达式的值可以是()。
A、只能为整型和字符型
B、只能为整型
C、任何类型
D、只能为整型,字符型,枚举型
下列运算符优先级最高的是().
A、||
B、!
C、*
D、!
=
设a,b和c都是int型变量,且a=3,b=4,c=5,下面表达式中,值为0的表达式是().
A、'
'
B、a||b+a&
b-c
C、!
((a<
b)&
!
c||1)
D、a<
=b
[未答此题]
下列程序段的输出结果为()。
intx=3,y=2;
%d"
(x-=y,x*=y+8/5));
A、5
B、3
C、7
设变量定义为"
inta,b;
"
执行下列语句时,输入(),则a和b的值都是10.
scanf("
a=%d,b=%d"
a,&
b);
A、a=10,b=10
B、a=10b=10
C、10,10
D、1010
a\rHappi\by"
在屏幕上正确的输出形式是().
A、Happy
B、Happi
C、aHappi
D、aHappy
下列语句中符合C语言语法的语句是:
().
A、x=y+2=x+y+z;
B、x=7+y,y++,z++;
C、x=(3+b,z)=x+3;
D、x=3+y++=x+3;
若有说明:
inta[3][4];
则数组a中各元素()。
A、不能得到确定的初值
B、可在程序的编译阶段得到初值0
C、可在程序的运行阶段得到初值0
D、可在程序的编译或运行阶段得到初值0
下列四个选项中,均是C语言关键字的选项是()。
A、autoenuminclude
B、ifstructtype
C、switchtypedefcontinue
D、signedunionscanf
若有说明语句:
charc='
\72'
则变量c()。
A、说明不合法,c的值不确定
B、包含2个字符
C、包含3个字符
D、包含1个字符
以下选项中合法的用户标识符是()。
A、long
B、3Dmax
C、_2Test
D、
以下不符合C语言语法的赋值语句是()。
A、a=b=5;
B、y=(a=3,6*5);
C、++j;
D、a=1,b=2
若变量已正确定义且k的值是4,计算表达式(j=4,k--)后,j和k的值为()。
A、j=3,k=4
B、j=4,k=4
C、j=3,k=3
D、j=4,k=3
若inta=2,则执行完表达式a-=a+=a*a后,a的值是()。
A、-4
B、-8
D、-2
C语言能正确处理的指数是()。
A、
B、、
D、e-32
以下数据中,不正确的数值或字符常量是()。
B、0xff00
C、10
D、【参考答案】错误
以下选项中合法的实型常数是()。
A、E-3
B、.2E0
C、
以下叙述中正确的是()。
A、花括号“{“和”}”只能作为函数体的定界符
B、构成C程序的基本单位是函数,所有函数名都可以由用户命名
C、分号是C语句之间的分隔符,不是语句的一部分
D、C程序中注释部分可以出现在程序中任意合适的地方
一个C语言程序是由()。
A、若干过程组成
B、若干子程序组成
C、一个主程序和若干子程序组成
D、函数组成
C语言规定,在一个源程序中,main函数的位置()。
A、必须在系统调用的库函数的后面
B、必须在最后
C、可以任意
D、必须在最开始
C语言源程序文件以()后缀。
A、.c
B、.exe
C、.obj
D、.bas
对auto存储类型的变量,若不赋值,则其值是().
\0'
B、随机的
C、系统自动赋值0
D、根据情况赋值
下面说法不正确的是:
____
A、a为真,!
a为假
B、a为真b为假,则a||b+1为真
C、b为假,则!
b+1为假
D、a为真b为假,!
a&
b为假
以下程序的输出结果是______.
main(){inta[]={2,4,6,8},*p=a,i;
for(i=0;
i<
4;
i++)a[i]=*p++;
a[2]);
A、6
B、4
C、8
D、2
以下对枚举类型名的定义中正确的是()。
A、enuma{sum=9,mon=-1,tue};
B、enuma={sum,mon,tue};
C、enuma{"
sum"
"
mon"
tue"
D、enuma={"
下面程序运行后,从键盘上输入ABCD<
回车>
输出结果应该是().
#include<
func(charstr[])
{intnum=0;
while(*(str+num)!
)num++;
returnnum;
}
main()
{charstr[10],*p=str;
A、7
C、6
D、5
在位运算中,操作数每右移一位,其结果相当于()。
A、操作数乘以16
B、操作数除以16
C、操作数除以2
D、操作数乘以2
C语言的三种基本结构是_____结构、选择结构、循环结构.
【空1】错误
[无]
【参考答案】
顺序
若a,b和c均是int型变量,则计算表达式a=(b=4)+(c=2)后,a值为_____,b值为_____,c值为_____.
6
============================================================
【空2】错误
4
【空3】错误
2
若a是int型变量,则计算表达式a=25/3%3后a的值为_____.
表达式a+=b相当于表达式_____.
a=a+b
a=b+a
下列语句输出的结果是_____,inta=-1;
%x"
a);
(在vc环境下)
ffffffff
执行下列语句的结果是_____,a=3;
%d,"
++a);
a++);
4,4
设x=2&
2||5>
1,x的值为_____.
1
已知a=13,b=6,a&
b的十进制数值为_____.
以下do-while语句中循环体的执行次数是_____.a=10;
b=0;
do{b+=2;
a-=2+b;
}while(a>
=0);
3
连接字符串的函数是_____,只写函数名即可.
Strcat
定义inta[2][3];
表示数组a中的元素个数是_____个.
C语言中,数组名是一个不可变的_____量,不能对它进行加减和赋值运算.
常量
地址常量
地址
函数调用语句func((e1,e2),(e3,e4,e5))中含有_____个实参.
函数的_____调用是一个函数直接或间接地调用它自身
递归
若x和n均是int型变量,且x和n的初值均为5,则计算表达式x+=n++后x的值为_____,n的值为_____.
10
【程序改错】
--------------------------------------------------------
题目:
注意:
不可以增加或删除程序行,也不可以更改程序的结构。
------------------------------------------------------*/
/**********ERROR**********/
#include
{
inta,b;
floatc;
a=3;
b=4;
c=sqrt(a*a+b*b);
/**********ERROR**********/
c=%d\n"
c);
【改错1】错误
#include"
【改错2】错误
c=%f\n"
改正以下程序的函数体中不正确的语句。
inti=8,a,b;
unsignedlongw=5;
doublex=,y=;
x=x/(-3);
y=float(i);
y=y+x
a+=a-=(b=4)*(a=3);
y=float(i);
y=(float)i;
y=i;
y=y+x
y=y+x;
功能:
编写函数fun生成一个对角线元素为5,上三角元素为0,
下三角元素为1的3*3的二维数组。
voidfun(intarr[][3])
inti,j
for(i=1;
3;
i++)
for(j=0;
j<
j++)
if(i=j)
arr[i][j]=5;
elseif(j>
i)
arr[i][j]=0;
else
arr[i][j]=1;
inta[3][3],i,j;
fun(a);
{
%d"
a[i][j]);
\n"
inti,j
inti,j;
for(i=1;
for(i=0;
【改错3】错误
if(i=j)
if(i==j)
下面程序将文件中的数据读到变量s中,将其按从小到大排序后回存到原文件中,请填空。
{FILE*fp;
inti,j;
ints[10],ch;
if((fp=fopen("
_____"
))!
=NULL)
10;
i++)fscanf(fp,"
s[i]);
/***********FILL***********/
_____
【空1】错误
r
【空2】错误
w
/*--------