一、选择题(每题1.5分,共计45分)
1、以下叙述正确的是【 】
A.C语言程序是由过程和函数组成的
B.C语言函数可以嵌套调用,例如:fun(fun(x))
C.C语言函数不可以单独编译
D.C语言中除了main函数,其他函数不可作为单独文件形式存在
2、以下关于C语言的叙述中正确的是【 】
A.C语言中的注释不可以夹在变量名或关键字的中间
B.C语言中的变量可以在使用之前的任何位置进行定义
C.在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致
D.C语言的数据常量中夹带空格不影响常量的正常使用
3、以下C语言用户标识符中,不合法的是【 】
A._1
B.AaBc
C.a_b
D.a—b
4、若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是【 】
A.a=a++,i++;
B.i=(a+k)<=(i+k);
C.i=a%11;
D.i=!a;
5、有以下程序
#include
main()
{ char a,b,c,d;
scanf(“%c%c”,&a,&b);
c=getchar(); d=getchar();
printf(“%c%c%c%c\n”,a,b,c,d);
}
当执行程序时,按下列方式输入数据(从第1列开始,代表回车,注意:回车也是一个字符)
12
34
则输出结果是【 】
A.1234
B.12
C.12
3
D.12
34
6、以下关于C语言数据类型使用的叙述中错误的是【 】
A.若要准确无误差的表示自然数,应使用整数类型
B.若要保存带有多位小数的数据,应使用双精度类型
C.若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型
D.若只处理“真”和“假”两种逻辑值,应使用逻辑类型
7、若a是数值类型,则逻辑表达式(a= =1)||(a!=1)的值是【 】
A.1
B.0
C.2
D.不知道a的值,不能确定
8、以下选项中与if(a= =1)a=b; else a++; 语句功能不同的switch语句是【 】
A.switch(a)
{case:a=b;break;
default:a++;
}
B.switch(a= =1)
{case 0:a=b;break;
case 1:a++;
}
C.switch(a)
{default:a++;break;
case 1:a=b;
}
D.switch(a= =1)
{case 1 : a=b;break;
case 0 : a++;
}
9、有如下嵌套的if语句
if (a
void proc()
{
int arr[3][3],mul;
int i,j;
mul=1;
printf(" please input an 3*3 array:\n");
for (i=0;i<3;i++)
{
/*************第一处错误区**************/
for (i=0;j<3;j++)
scanf("%d",&arr[i][i]);
}
for(i=0;i<3;i++)
/*************第二处错误区**************/
mul=mul*arr[i][j];
printf("Mul=%d\n",mul);
}
void main()
{
proc();
}
四、程序编写(15分)
请补充main函数,该函数实现的功能是把一个二维字符数组中最大的字符拷贝到新的数组str中。例如: arr[3]={“hoih”,”yufui”,”xgf”},则str=”oyx”。
void main()
{
int i=0;
char *arr[3]={ " hoih","yufui","xgf"};
char **p;
char str[8];
/*************请开始编写******************/
str[i]= '\0';
printf(" new string \n");
puts(str);
}
C语言程序设计(A卷)答案
一、选择题
1-10:BBDCC DABCA
11-20:DDABDADBCC
21-30: