C语言程序设计试题1
一、单项选择题
1.C语言规定,在一个源程序中main函数的位置 _____D____ 。
A.必须在最开始 B.必须在最后
C.必须在预处理命令的后面 D.可以在其他函数之前或之后
2.以下选项中,__D_________ 是C语言关键字
A.printf B.include C.fun D.default
3.已知有声明"int a=3,b=4,c;",则执行语句"c=1/2*(a+b);"后,c的值为__A___ 。
A.0 B.3 C.3.5 D.4
4.设指针变量占4个字节的内存空间,若有声明"char *p="123";int c;",则执行语句"c=sizeof(p);"后,c的值为_D___
A.1 B.2 C.3 D.4
5.已知有声明"int a=3,b=4;",下列表达式中合法的是D____。
A.a+b=7 B.a=|b| C.a=b=0 D.(a++)++
6.已知有声明"char s[20]="Hello";",在程序运行过程中,若要想使数组s中的内容修改为"Good",则以下语句中能够实现此功能的是__D__。
A.s="Good"; B.s[20l="Good";
C.strcat(s,"Good"); D.strcpy(s,"Good");
7.已知有声明"int a[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};",若需要引用值为12的数组元素,则下列选项中错误的是_C___ 。
A.*(a+2)+3 B.*(*(a+2)+3) C.*(a[2]+3) D.a[2][3]
8.已知有声明"int n;float x,y;",则执行语句"y=n=x=3.89;"后,y的值为_A___ 。
A.3 B.3.0 C.3.89 D.4.0
9.已知有声明"int a=12,b=15,c;",则执行表达式"c=(a||(b-=a))"后,变量b和c的值分别为_A___。
A.3,1 B.15,12 C.15,1 D.3,12
10.下面的函数定义正确的是____D__________
A) float fun (float x ; float y) {return x*y;} B) float fun (float x,y) {return x*y;}
C) float fun (x,y) {int x,y;return x*y;} D) int fun (int x, int y) {return x*y;}
11.某程序需要使用一个代表常数3.14的符号常量名P,以下定义中正确的是_D___。
A.#define P 3.14; B.#define P(3.14)
C.#define P=3.14; D.#define P 3.14
12.下列四个选项中,属于C语言关键字的是__C__ 。
A.Float B.single C.double D.real
13.已知某编译系统中signed int类型数据的长度是16位,该类型数据的最大值是__B__。
A.32767 B.32768 C.127 D.65535
14.以下关于if语句和switch语句的叙述中错误的是__D__。
A.if语句和switch语句都可以实现算法的选择结构
B.if语句和switch语句都能实现多路(两路以上)选择
C.if语句可以嵌套使用
D.switch语句不能嵌套使用
15.已有声明"char *s1="China",s2[10],*s3="Nanjing",*s4;",以下字符串赋值语句在执行时可能出现错误的是__A____。
A.strcpy(s3,s1); B.strcpy(s4,s1); C.strcpy(s2,s1); D.strcpy(s2,s3);
16.已有声明"int x=0,*p=&x;",以下语句中有语法错误的是__B___。
A.printf("%d",*x); B.printf("%d",&x); C.printf("%d",*p); D.printf("%d",x);
17.以下叙述中错误的是__C___。
A.在函数外可以声明变量
B.变量声明的位置决定了该变量名的使用范围
C.函数调用时在函数内声明的变量所得到的值将无法保存到该函数的下一次调用
D.在函数外声明的变量,其值可以保存到该程序运行结束
18.已有声明"int t=1;",则执行"printf("%d",(t+5,t++));"时输出结果是_A___。
A.1 B.6 C.2 D.7
19.已有声明"static char *p="Apple";",则执行语句"puts(p+2);"时输出为__D____。
A.Apple B.Cpple C.pple D.ple
20.若i是整型变量,pb是基本型为整型的指针变量,则正确的赋值表达式是(A )
A. pb=&i B. pb=i C. *pb=&i D. *pb=*i
二、填空题
1. 数学式所对应的c语言表达式为pow(x, __(1)__)。
2. 已知有声明"char ch='g';",则表达式ch=ch-'a'+'A'的值为字符 (2) G 的编码。
3. 在C语言系统中,如果一个变量能正确存储的数据范围为整数-32768~32767,则该变量在内存中占_____(3)_2____个字节。
4. 已知有声明"int a[3][2]={{1,2),{3,4},{5,6}},*p=a[0];",则执行语句"printf("%d\n",*(p+4));"后的输出结果为__(4)_0__ 。
程序设计语言一般可分为三大类5. 已知有声明和语句"int a;scanf("a=%d",&a);",欲从键盘上输入数据使a中的值为3,则正确的输入应是 _____(5)_a=3____ 。
6. C语言源程序中用十六进制表示整型常数必须以___(6)_OX__开头。
7. 如果一个循环结构的循环体至少要执行一遍,则最适合描述该循环结构的语句是do while___(7)___语句。
8. 若要声明一个无符号整型变量x,则正确的声明形式是" _unsigned__(8)___ int x;"。
9. 已有声明"int n=12;double a;",则执行语句"a=n/=5;"后,a的值为___(9)2.000000___。
10. 若有数据类型定义如下:
a) union A{float a1;float a2;};
b) 则表达式sizeof(union A)的值为___(10)___。
11. C语言源程序的扩展名为.c,可执行文件的扩展名为______(11)__.exe_______。
12. 数组 int a[4][5];共定义了__(12)__20__个数组元素。
13. 若char str[7]={“cake”};int k=strlen(str);则k的值为______(13)_5_____。
14. C语言中,用_____(14)__include___ 关键字来包含如stdio.h之类的头文件。
15. 函数的返回值是通过函数中的_________(15)_return______语句来获得的。
16. 静态局部变量应该用关键字_____(16)__static_____来进行声明。
17. 对于不带返回值的函数,应当用关键字________(17)_void_____定义函数。
18. 多分支结构的程序,通常选用___(18)___switch___语句来实现。
19. 若char ch[]="25yi6"有以下语句,则编译后分配给数组ch的内存占用的字节数为___(19)__7___。
20. 下面运算符 < , ++ = 按照优先级从高到低排列顺序为__ (20)++ <, = _。
三、阅读程序题(每小题5分,共20分)
1. 以下程序运行时输出到屏幕的结果为( 10 ) 。
#include “stdio.h”
#define MAX(A,B) A>B?2*A:2*B
void main()
{int a=1,b=2,c=3,d=4,t;
t=MAX(a+b,c+d);
printf("%d\n",t);
}
2. 以下程序运行时输出到屏幕的结果是(5 7 8 )。
#include “stdio.h”
int g(int x,int y)
{ return x+y;
}
int f(int x,int y)
{
{static int x=2;
if(y>2)
{ x=x*x;
y=x;
}
else y=x+1;
}
return x+y;
}
void main()
{int a=3;
printf("%d ",g(a,2));
printf("%d ",f(a,3));
printf("%d \n",f(a,2));
}
3. 以下程序运行时输出到屏幕的结果是( 321
54321 )。
#include “stdio.h”
void fun(char *p1,char *p2);
void main()
{int i; char a[]="54321";
puts(a+2);
fun(a,a+4);
puts(a);
}
void fun(char *p1,char *p2)
{char t;
while(*p1)
{t=*p1;*p1=*p2;*p2=t;
p1+=2,p2-=2;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论