C语言考试试题及答案
- 格式:docx
- 大小:22.46 KB
- 文档页数:10
《C语言》考卷
一 单选题(每题2分,共25题,共50分)
1.要把高级语言编写的源程序转换为目标程序,需要使用( )[2分][2分]
A.编辑程序
B.驱动程序
C.诊断程序
D.编译程序
参考答案:D
2.以下叙述中正确的是( )[2分][2分]
A.C语言程序将从源程序中第一个函数开始执行
B.可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行
C.C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束
D.main可作为用户标识符,用以命名任意一个函数作为主函数
参考答案:C
3.若变量a是int类型,并执行了语句:a=‘A'+1.6;,则正确的叙述是 ( )[2分][2分] int a int a=66 = 65 + 1.6 =66.6
A.a的值是字符B
B.a的值是浮点型
C.不允许字符型和浮点型相加
D.a的值是字符‘A’的ASCII值加上2
参考答案:A
int a = ‘A’;
char b = 65;
4.若变量已正确定义并赋值,以下符合C语言语法的表达式是( )[2分][2分]
A.a:=b+1
B.a=b=c+2
C.18.5%3
D.a=a+7=c+b
参考答案:B
5.下列可用于C语言用户标识符的一组是( )[2分][2分]
A.void, define, WORD
B.a3_b3, _123,car
C.For, -abc, IF Case
D.2a, DO, sizeof
参考答案:B
6.若在定义语句:int a,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是( )[2分][2分] A.scanf("%d",a,b,c);
B.scanf("%d%d%d",a,b,c);
C.scanf("%d",p); //scanf(“%d”,&c);
D.scanf("%d",&p);
参考答案:C
7.以下关于long、int和short类型数据占用内存大小的叙述中正确的是( )[2分][2分]
A.均占4个字节
B.根据数据的大小来决定所占内存的字节数 // long a = 1 int b = 1000000
C.由用户自己定义
D.由C语言编译系统决定
参考答案:D
8.若变量已正确定义,有以下程序段
i=0;
do{
printf("%d,",i); //0
}while(i++); //while(0) i=1
printf("%d\n",i); //1
其输出结果是( )[2分][2分]
A.0,0
B.0,1
C.1,1
D.程序进入无限循环
参考答案:B
9.有以下计算公式
则不能够正确计算上述公式的程序段是( )(提示:库函数sqrt()用来求一个数的平方根)[2分][2分]
A.if(x>=0) y=sqrt(x); else y=sqrt(-x); //if/else配合使用
B.y=sqrt(x) if(x<0) y=sqrt(-x);
C.if(x>=0)y=sqrt(x); if(x<0)y=sqrt(-x); //if单独使用
D.y=sqrt(x>=0?x:-x);
参考答案:B
10.设有条件表达式:
EXP ? i++ : j--;
则以下表达式与之完全等价的是( )[2分][2分]
A.(EXP==0) ? i++ : j--;
B.(EXP!=0) ? i++ : j--;
C.(EXP==1) ? i++ : j--;
D.(EXP!=1) ? i++ : j--;
参考答案:B
11.有以下程序#include
int main(void)
{
int y=9;
for( ; y>0; y--)
{
if(y%3 == 0)
printf("%d",--y);
}
}
程序的运行结果是( )[2分][2分]
A.741
B.963
C.852
D.875421
参考答案:C
12.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是( )[2分][2分]
A.函数的实参和其对应的形参共占同一存储单元
B.形参只是形式上的存在,不占用具体存储单元 //局部变量
C.同名的实参和形参占同一存储单元
D.函数的形参和实参分别占用不同的存储单元
参考答案:D
13.已知字符‘A’的ASCⅡ代码值是65,字符变量c1的值是‘A’,c2的值是‘D’。
则执行语句printf("%d,%d",c1,c2-2);后,输出结果是( )[2分][2分]
A.A,B
B.A,68 char c1 = ‘A’ char c1 = 65 char c2 = 68
C.65,66
D.65,68
参考答案:C
14.以下叙述中错误的是( )[2分][2分]
A.函数的形参存放在数据段中 B.函数可以返回地址值
C.可以给指针变量强制赋一个浮点数作为地址值
D.可以给指针变量赋NULL
参考答案:A
15.以下正确的字符串常量是( )[2分][2分]
A."\\\"
B.‘abc’
C.Olympic Games
D.""
参考答案:D
16.设有定义:char p[]={'a', 'b', 'c'},*q=p; ,以下不能计算出一个char型数据所占字节数的表达式是( )[2分][2分]
A.sizeof(p) = 3
B.sizeof(char)
C.sizeof(*q)
D.sizeof(p[0])
参考答案:A
17.有以下程序:
int func(char *s)
{
char *t=s;
while(*t++){;}
t--;
return(t-s);
}
int main(void)
{
char *s = "abcdefghijk";
int n = func(s);
printf("%d\n", n)
}
程序的执行结果是( )[2分][2分]
A.字符串s的长度 11
B.比较两个串的大小
C.将串s复制到串t
D.求字符串s所占字节数 12
参考答案:A
18.若有定义语句:int a[3][6]; ,按在内存中的存放顺序,a数组的第10个元素是( )[2分][2分]
A.a[0][4] B.a[1][3]
C.a[0][3]
D.a[1][4]
参考答案:B
19.有以下程序
#include
void fun(char * (*p) )
{
++p;
printf("%s\n",*p);
}
int main(void)
{
char *a[ ]={"Morning","Afternoon","Evening","Night"};
fun(a);
}
程序的运行结果是( )[2分][2分]
A.Afternoon
B.fternoon
C.Morning
D.orning
参考答案:A
20.若有定义语句:int a[2][3],*p[3]; ,则以下语句中正确的是( )[2分][2分]
A.p=a;
B.p[0]=a;
C.p[0]=&a[1][2];
D.p[1]=&a;
参考答案:C
21.有以下程序
#include
int fun(char s[])
{
int n=0;
while(*s<=‘9’&& *s>=‘0’)
{
n = 10*n + *s -‘0’;
s++;
}
return(n);
}
int main(void) {
char s[10]={’6’,’1’,’*’,’4’,’*’,’9’,’*’,’0’,
'*'};
printf("%d\n",fun(s));
}
程序运行的结果是( )[2分][2分]
A.9
B.61490
C.61
D.5
参考答案:C
22.以下能正确定义一维数组的选项是( )[2分][2分]
A.int a[5]={0,1,2,3,4,5};
B.char a[ ]={0,1,2,3,4,5};
C.char a={’A’,’B’,’C’};
D.int a[5]="0123";
参考答案:B
23.以下叙述中正确的是( ) [2分][2分]
A.预处理命令行必须位于源文件的开头
B.在源文件的一行上可以有多条预处理命令
C.宏名必须用大写字母表示
D.宏替换不占用程序的运行时间
参考答案:D
24.若有以下说明和定义( )
union dt
{
int a;
char b;
double c;
}data;
data.a = 5;
以下叙述中错误的是[2分][2分]
A.data的每个成员起始地址都相同
B.变量data所占的内存字节数与成员c所占字节数相等
C.语句printf("%f\n",data.c)的输出结果为5.000000
D.data可以作为函数的实参
参考答案:C
25.以下语句或语句组中,能正确进行字符串赋值的是 ( ) [2分][2分]
A.char *sp; *sp="abcd";