《C程序设计》试卷1(含答案)
![《C程序设计》试卷1(含答案)](https://img.360docs.net/imgf8/07ga5txto0c9se6e5uoq-81.webp)
![《C程序设计》试卷1(含答案)](https://img.360docs.net/imgf8/07ga5txto0c9se6e5uoq-52.webp)
一、选择题(每题1分,共20分)
1.设 int b=2;表达式b/(b*2)的值是()。
A. 0
B. 0.5
C. 0.500000
D. 0.00000
2.下列标识符中不合法的标识符的是()。
A. hot_do
B. cat1
C. _pri
D. 2ab
3.以下程序的输出结果是()。
void main()
{int k=17;
printf("%d,%o,%x \n",k,k,k);
}
A. 17,021,0x11
B. 17,17,17
C. 17,0x11,021
D. 17,21,11
4.设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为()。
A.4 B.16 C.32 D.52
5.下述程序段中,while循环执行次数是( )。
int k=0;
while(k=1) k++;
A. 无限次
B. 有语法错误,不能执行
C. 一次也不执行
D. 执行一次
6. 若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为()。
A. a < > 0
B. !a
C. a=0
D. a!=0
7.执行下述语句后,*(p+1)的值是( )。
char s[]= “ab”,*p;
p=s;
A.‘b’
B. O
C. 不定值
D. 非法引用
8.有以下语句:int b;char c[10];,则正确的输入语句是( )。
A. scanf("%d%s",&b,&c);
B. scanf("%d%s",&b,c);
C. scanf("%d%s",b,c);
D. scanf("%d%s",b,&c);
9.能正确表示a和b同时为正或同时为负的逻辑表达式是()。
A. (a>=0‖b>=0)&&(a<0‖b<0)
B. (a>=0&&b>=0)&&(a<0&&b<0)
C. (a+b>0)&&(a+b<=0)
D. a*b>0
10.C语言中的逻辑运算结果,用()表示逻辑“真”值。
A. 整数0
B. 整数1
C. true
D. T或Y
11.putchar函数可以向终端输出一个()
A. 整型变量值
B. 实型变量值
C. 字符串
D. 字符常量或字符型变量值
12.执行下面的程序后,a的值是()。
#define SQR(X) X*X
void main( )
{ int a=11,k=2,m=1;
a/=SQR(k+m);
printf("%d\n",a); }
A. 1
B. 2
C. 11
D. 0
13.在定义int a[5][4];之后,对a的正确引用是()
A.a[2][4] B.a[5][0] C.a[0][0] D.a[0,0]
14. 若有以下定义和语句
char c1='b',c2='e';
printf("%d,%c\n",c2-c1,c2-'a'+'A');
则输出结果是:
A . 2,M B. 3,E
C. 2,E
D. 输出项与对应的格式控制不一致,输出结果不确定
15.执行int a[ ][3]={1,2,3,4,5,6};语句后,a[1][0]的值是()A.1 B.4 C.2 D.5
16.若变量c为char类型,能正确判断出c为小写字母的表达式是( )。
A.…a?<=c<=…z? B.(c>=…a?) || (c<=…z?)
C.(…a?<=c) and (…z?>=c) D.(c>=…a?) && (c<=…z?)
17. 下面程序的输出是( )
main()
{int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
printf(“%d”,*(p+3));}
A.1 B.2 C.3 D.4
18.请选出正确的程序段()。
A int *p;
B int *s, k;
scanf("%d",p);*s=100;
……
C int *s, k;
D int *s, k;
char *p, c;char *p, e;
s=&k;s=&k;
p=&c;p=&c;
*p='a';s=p;
…*s=1;
19. 若用数组名作为函数调用的实参,则传递给形参的是。
A.数组的首地址B.数组的第一个元素的值C.数组中全部元素的值D.数组元素的个数
20.在说明一个结构体变量时,系统分配给它的存储空间是( )。
A.该结构体中第一个成员所需存储空间
B.该结构体中最后一个成员所需存储空间
C.该结构体中所有成员所需存储空间的总和
D.该结构体中占用最大存储空间的成员所需存储空间
二、填空题(每题2分,共20分)
1.表达式7 * 7 / 9 * 4 % 3 的值是_____。
2. 若有定义:int a[2][4]; 则该数组有个元素。
3.若想表达x在区间[10,100]时,数学上写成10≤x≤100,但在C中应写成。
4. 若有说明和语句:int a=25,b=60;b=++a;则b的值是_____。
5. 表达式7+8>2 && 25 %5的结果是_______________________。
6.设y为int型变量,请写出描述“y是奇数”的表达式_______________________。
7.C程序设计中语句后的符号/*……*/ 所起作用是_________________________。
8.变量Y满足以下两条件中的任意一个:①能被4整除,但不能被100整除;②能被400整除。请用逻辑表达式表示所给条件。
_____________________________________________________________ 9.以下函数值的类型是。
fun ( float x )
{float y;
y= 3*x-4;
return y;
}
10.void f(char s[ ], char t[ ])
{ int k=0;
while (s[k]==t[k]) k++;
}
等价于
void f(char *s, char *t)
{ while (_____);
}
三、程序阅读题(每题5分,共30分)
1.下列程序的运行结果是.
void main()
{ int i;
float x;
x=5.628;
i=(int)x;
printf("x=%f i=%d",x,i);}
2.下列程序的运行结果是. void main()
{int a=321,b=21,m=0;
switch(a%2)
{case 0: m++;break;
case 1: m+=2; break;
case 2: b++; break;
default: printf("Error\n");
}
printf("%d",m); }
3.下列程序的运行结果是. void melon (int g, int * h);
void main ()
{ int a = 1, b = 2;
melon ( a, &b );
printf ( "a = %d, b = %d", a, b );
}
void melon (int b, int * c)
{ b++;
*c = *c + b;
}
4.下列程序的运行结果是.
void main()
{int f1,f2,f3,i;
f1=f2=1;
printf("%3d%3d",f1,f2);
for(i=1;i<=3;i++)
{ f3=f1+f2;
f1=f2;
f2=f3;
printf("%3d",f3);
}
}
5.下列程序运行结果是.
#include "stdio.h"
void main()
{ int j, k;
for (j=0; j<3; j++)
{for (k=0; k<3; k++)
printf("%d",(k+j+1)% 3 ? (k+j+1)%3 : 3 );
printf("#");
}
}
6.下列程序的运行结果是.
#include
void main()
{ int m, k, i, n = 0;
for ( m = 1; m <= 10; m +=2)
{ k = sqrt(m);
for ( i = 2; i <= k ;i++ )
if ( m % i ==0) break;
if (i >= k+1)
printf ("%d ", m);
}
printf ("\n");
}
四、程序设计题(每题10分,共30分)
1.从键盘输入10个整数存入一个一维数组,对这10个整数按由大到小的顺序排序,并输出。
2.输入a和b两个整数,然后经过比较,将较大的数置于a中,较小的数置于b中,最后顺序输出a和b。
要求:两数交换用函数处理,并且使用指针类型的数据作函数参数。3.一位同学问老师和老师夫人的年龄是多少,老师说:“我年龄的平方加
上我夫人的年龄恰好等于1053,而我夫人年龄的平方加上我的年龄等于873”。试编程计算老师和其夫人的年龄(这里假设老师和老师夫人的年龄在25至65岁之间)。
答案:
一、选择题(每题1分,共20分)
1 A
2 D
3 A 4C 5A 6D 7A 8B 9D 10B 11D 12B 13C 14B 15B 16D 17D 18C 19A 20C
二、程序填空题(每题2分,共20分)
1 2
2 8
3 x>=10 && x<=100
4 26
5 0
6 y%2!=0 或y%2==1
7 注释作用
8 y%4==0 && y%100!=0 || y%400==0
9 int
10 *s++==*t++
三、程序阅读题(每题5分,共30分)
1 x=5.628000 i=5
2 2
3 a=1,b=4
4 1 1 2 3 5
5 1 2 3# 2 3 1# 3 1 2#
6 1 3 5 7
四、程序设计题(每题10分,共30分)
参考程序:
1.#include
void main()
{
int a[10];
int i,j,t;
printf("input 10 numbers :\n");
for (i=0;i<10;i++)
scanf("%d",&a[i]);
printf("\n");
for(j=0;j<9;j++)
for(i=0;i<9-j;i++)