二级C语言笔试真题与答案
2012年3月二级C语言笔试真题及答案
13、以下关于算法叙述错误的是
A、算法可以用伪代码、流程图等多种形式来描述
B、一个正确的算法必须有输入
C、一个正确的算法必须有输出
D、用流程图可以描述的算法可以用任何一种计算机高级语言编写成程序代码
14、以下叙述错误的是
A、一个C程序可以包含多个不同名的函数
B、一个C程序只能有一个主函数
C、C程序在书写时,有严格的缩进要求,否则不能编译通过
D、C程序的主函数必须用main作为函数名
15、设有以下语句
Char ch1,ch2, scanf(”%c%c”,&ch1,&ch2);
若要为变量ch1和ch2分别输入字符A和B,正确的输入形式应该是
A、A和B之间用逗号间隔 B、A和B之间不能有任何间隔符
C、A和B之间可以用回车间隔 D、A和B之间用空格间隔
16、以下选项中非法的字符常量是
A、’\102’ B、’\65’ C、’\xff’ D、’\019’
20、有以下程序
#include
Main()
{ int a;
Scanf(“%d”,&a);
If(a++<9) printf((“%d\n”,a);
Else printf((“%d\n”,a--);
}
程序运行时键盘输入9,则输出的结构是
A、10 B 11 C 9 D 8
21、有以下程序
#include
Main()
{int s=0,n;
For (n=0;n<3;n
{switch(s)
{ case 0;
Case 1;s+=1;
Case 2;s+=2;break;
Case 3;s+3;
Case 4;s+=4;
}
printf((“%d\n”,s);
}
}
程序运行后的结果是
A 1,2,4 B 1,3,6 C 3,10,14 D 3,6,10
24、设有如下定义语句
Int m[ ]={2,4,6,8},*k=m;
以下选项中,表达式的值为6的是
A *(k+2) B k+2 C *k+2 D *k+=2
26、若有函数
Viod fun(double a[], int *n)
{………}
以下叙述中正确的是 函数中的形参a[]已经退化为一个指针,所以AC都不对,D选项中只是传入一个指针,并没有把数组的元素挨个赋值,正确选项为
A调用fun函数时只有数组执行按值传送,其他实参和形参之间执行按地址传送
B形参a和n都是指针变量
C形参a是一个数组名,n是指针变量元素一一对应地传送给形参a数组
28、以下选项中有语法错误的是
A char *str[ ]={“guest”}; B、char str[10 ]={“guest”};
C、char *str[3] *str[1]={“guest”}; D、char str[3][10];str[1]={“guest”};
30、有以下函数
#include
#in程序运行输出结果是
A xyz B wxyz C zyxw D zyx
33、有以下函数
#include
viod func(int n)
{int i;
for(i=0;i<=n;i++) printf(“*”);
printf(“#”);
main()
{ func(3); printf(“????”); func(4); printf(“\n”); }
程序运行输出结果是
A ****#????***# B
32、有以下函数
#include
viod fun(char c)
{if(c>’x’) fun(c-1);
printf (“%c”,c);
}
main()
{fun”z”;}
clude
main()
{ printf(“%d\n”,strren”ATS\n012\1”) );}
程序运行后的输出结果是
A 3 B 8 C 4 D 9
***#????*****#
C **#????*****# D ****#????*****#
37、设有以下程序段
Struct MP3
{char name[20];
Char color;
Float price;
}std,*ptr;
ptr=& std;
若要引用结构体变量std中的color成员,写法错误的是
A s