2014年9月份考试C语言程序设计第二次作业
一、单项选择题(本大题共100分,共 40 小题,每小题 2.5 分)
1. 下面程序
fun3(int x)
{
static int a=3;
a +=x; return(a);
}
main()
{
int k=2, m=1, n;
n=fun3(k);
m=fun3(m);
printf("%d\n",n);
}
的输出是( ).
A. 3 B. 4 C. 5 D. 9
2. 下面的程序
main()
{
int x=3;
do
{
printf("%d\n",x-=2);
}
while(!(--x) );
}
( ).
A. 输出的是1 B. 输出的是1和-2 C. 输出的是3和0 D. 是死循环
3. 以下叙述中正确的是( ).
A. 预处理命令行必须位于源文件的开头 B. 在源文件的一行上可以有多条预处理命令 C. 宏名必须用大写字母表示 D. 宏替换不占用程序的运行时间
4. 以下叙述中正确的是( ).
A. 局部变量说明为static存储类,其生存期将得到延长 B. 全局变量说明为static存储类,其作用域将被扩大 C. 任何存储类的变量在未赋初值时,其值都是不确定的 D. 形参可以使用的存储类说明符与局部变量完全相同
5. 下列语句中,符合C语言语法的赋值语句是( ).
A. a=7+b+c=a+7 B. a=7+b++=a+7 C. a=7+b,b++,a+7 D. a=7+b,c=a+7
6. 下面程序
main()
{
int y=9;
for(;y>0;y--)
{
if(y%3==0)
{
printf("%d",--y);
continue;
}
}
} 的输出是( ).
A. 741
B. 852
C. 963
D.
7. 下面程序
main()
{
int x=32;
printf("%d\n",x=x<<1);
}
的输出是( ).
A. 100 B. 160 C. 120 D. 64
8. 以下程序的输出结果是( ). #include main() { printf("%d\n",NULL); }
A. 不确定的(因变量无定义)
B. 0 C. -1 D. 1
9. 若k是int型变量,且有下面的程序片段
k=-3;
if(k<=0) printf("####") else printf("&&&&");
上面程序片段的输出结果是( ).
A. #### B. &&&& C. ####&&&& D. 有语法错误,无输出结果
10. 下面的程序
main()
{
int x=3,y=0,z=0;
if(x=y+z)printf("* * * *");
else printf("####");
}
( ).
A. 有语法错误不能通过编译 B. 输出* * * *
C. 可以通过编译, 但是不能通过连接, 因而不能运行 D. 输出####
11. +以下定义语句中正确的是( ).
A. char a=''''A''''b=''''B'''' B. float a=b=10.0 C. int a=10,*b=&a
D. float *a,b=&a
12. 设有如下一段程序
int *var,ab;
ab=100;
var=&ab;
ab=*var+10;
执行下面的程序段后,ab的值为( ).
A. 120 B. 110 C. 100 D. 90
13. 若x和y都是int型变量,x=100、y=200,且有下面的程序片段 printf("%d",(x,y) ); 上面程序片段的输出结果是( ).
A. 200 B. 100 C. 100 200 D. 输入格式符不够,输出不确定的值
14. 若有以下说明和定义
union dt
{
int a;
char b;
double c;
}
data;
以下叙述中错误的是( ).
A. data的每个成员起始地址都相同 B. 变量data所占的内存字节数与成员c所占字节数相等
C. 程序段:data.a=5;printf("%f\n",data.c);输出结果为5. D. data可以作为函数的实参
15. 设有如下枚举类型定义
enum language
{
Basic=3,Assembly=6,Ada=100,COBOL,Fortran
}
枚举量Fortran的值为( ).
A. 4 B. 7 C. 102 D. 103
16. 以下叙述中正确的是( ).
A. C语言的源程序不必通过编译就可以直接运行 B. C语言中的每条可执行语句最终都将被转换成二进制的机器指令 C. C语言程序经编译形成的二进制代码可以直接运行D. C语言中的函数不可以单独进行编译
17. 在一个C程序中( )
A. main函数必须出现在所有函数之前 B. main函数可以在任何地方出现
C. main函数必须出现在所有函数之后 D. main函数必须出现在固定位置
18. 以下叙述中错误的是( ).
A. 对于double类型数组,不可以直接用数组名对数组进行整体输入或输出
B. 数组名代表的是数组所占存储区的首地址,其值不可改变
C. 当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出"下标越界"的出错信息
D. 可以通过赋初值的方式确定数组元素的个数
19. 有以下程序
main()
{
char s[]="Yes\n/No",*ps=s; puts(ps+4);
*(ps+4)=0; puts(s);
}
程序运行后的输出结果是( ).
A. n/NO Yes /NO B. /NO Yes C. /NO Yes /NO D. /NO Yes
20. 以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是( ).
A. char s[10]="abcdefg" B. char t[]="abcdefg",*s=t
C. char s[10];s="abcdefg" D. char s[10];strcpy(s,"abcdefg")
21. C语言中的标示符只能由字母、数字和下划线三种字符组成,且第一个字符( )
A. 必须是字母 B. 必须是下划线 C. 必须是字母或下划线
D. 可以是字母或数字或下划线中的任意一种
22. 以下程序段给数组所有的元素输入数据,请选择正确答案填入:
#include main()
{
int a[10],i=0;
while(i<10)scanf("%d",( ));
}
A. a+(i++) B. &a[i+1] C. a+I D. &a[++i]
23. C语言中while和do-while循环的主要区别是( )
A. do-while的循环体至少无条件执行一次 B. while的循环控制条件比do-while的循环控制条件严格 C. do-while 允许从外部转到循环体内 D. do-while 的循环体不能是复合语句
24. 下面四个选项当中,均是关键字的是( )
A. auto,enum,include B. switch,typedef,continue
C. signed,union,scanf D. if,struct,type
25. 设ch是char型变量,其值为A,且有下面的表达式 ch=(ch>=''A''&&ch<=''Z'')?(ch+32):ch 上面表达式的值是( ).
A. B. a C. Z D. z
26. 以下叙述中正确的是( ).
A. 用C程序实现的算法必须要有输入和输出操作 B. 用C程序实现的算法可以没有输出但必须要输入 C. 用C程序实现的算法可以没有输入但必须要有输出 D. 用C程序实现的算法可以既没有输入也没有输出
27. 有以下程序:
main()
{
int s=0,a=1,n;
scanf("%d",&n);
do {s+=1; a=a-2;
}
while(a!=n);
printf("%d\n",s);
}
若要使程序的输出值为2,则应该从键盘给n输入的值是( ).
A. -1 B. -3 C. -5 D. 0
28. 有以下程序
main()
{
int c=35;
printf("%d\n",c&c);
}
程序运行后的输出结果是( ).
A. 0 B. 70 C. 35 D. 1
29. 有以下程序
main()
{
int a[]={1,2,3,4,5,6,7,8,9,0},*p;
for(p=a;p<="" 程序运行后的输出结果是(="" }="" printf(?%d,?,*p);="">
A. 1,2,3,4,5,6,7,8,9,0
B. 2,3,4,5,6,7,8,9,10,1
C. 0,1,2,3,4,5,6,7,8,9
D. 1,1,1,1,1,1,1,1,1,1
30. 正确的自定义标识符是( )
A. a=2 B. a+b C. name D. default
31. 有以下程序:
#define f(x) x*x main()
{
int i;
i=f(4+4)/f(2+2);
printf("%d\n",i);
}
执行后输出的结果是( ).
A. 28 B. 22 C. 16 D. 4
32. 下面函数
int fun1(char*x)
{
char *y=x;
while(*y++);
return(y-x-1);
}
的功能是( ).
A. 求字符串的长度 B. 比较两个字符串的大小 C. 将字符串x复制到字符串y
D. 将字符串x连接到字符串y后面
33. 以下程序运行后的输出结果是( )
fun(int a, int b)
{
if(a>b) return a;
else return b;
}
main()
{
int x=3, y=8, z=6, r;
r=fun(fun(x,y), 2*z);
printf("%d\n", r);
}
A. 3 B. 6 C. 8 D. 12
34. 已定义c为字符型变量,则下列语句中正确的是( ).
A. c=''97 B. c="97"; C. c=97; D. c="a";''
35. 若变量已正确定义并赋值,下面符合C语言的表达式是( ).
A. a:=b+1 B. a=b=c+2 C. int 18.5%3 D. a=a+7=c+b
36. s1和s2已正确定义并分别指向两个字符串.若要求:当s1所指串大于s2所指串时,执行语句S;,则以下选项中正确的是( ).
A. if(s1>s2) S B. if(strcmp(s1,s2)) S C. if(strcmp(s2,s1)>0) S
D. if(strcmp(s1,s2)>0) S
37. 以下选项中属于C语言的数据类型是( )
A. 复数型 B. 逻辑型 C. 集合型 D. 双精度型
38. C语言中,long类型的数据占字节数为( ) A. 1 B. 2 C. 4 D. 8
39. 有以下程序
main()
{
int a=1,b;
for(b=1;b<=10;b++)
{
if(a>=8) break;
if(a%2==1){a+=5;continue;
}
a-=3;
}
printf("%d\n",b);
}
程序运行后的输出结果是( ).
A. 3 B. 4 C. 5 D. 6
40. 编辑程序的功能是( )
A. 建立并修改程序 B. 将C源程序编译成目标程序 C. 调试程序
D. 命令计算机执行指定的操作
答案:
一、单项选择题(100分,共 40 题,每小题 2.5 分)
1. C 2. B 3. D 4. A 5. D 6. B 7. D 8. B 9. D 10. D 11. C 12. B 13. A 14. C 15. C 16. B 17. B 18. C 19. B 20. C 21. C 22. A 23. A 24. B 25. B 26. C 27. B 28. C 29. A 30. C 31. A 32. A 33. D 34. C 35. B 36. D 37. D 38. C 39. B 40. A
本文来源:https://www.2haoxitong.net/k/doc/ee54fadb3a3567ec102de2bd960590c69ec3d8f4.html
文档为doc格式