C语言试题2019.03
一、单项选择题(共30分,每题1分)
1.在PC机中,‘\n’在内存占用的字节数是()
A.1  B.2  C. 3  D.4
2.字符串“ABC”在内存占用的字节数是()
A.3  B.    4  C.6  D.8
3.在C语言中,合法的长整型常数是()
A.0L  B.4962710  C.0.054838743  D.2.1869 e10
4.执行语句“x=(a=3,b=a--)”后,x,a,b的值依次是()
A.3,3,2  B.3,2,2  C.3,2,3  D.2,3,2
5.设有语句int a=3;,则执行了语句a+=a-=a*a后,变量a的值是()
A.3  B.0  C.9  D.-12
6.设int k=32767;执行k=k+1;后k值为()最大值与最小值首尾相连A.32768  B.-32768  C.0  D.-1
7.下列正确的标识符是()
A.hot_do  B.a+b  C.test!  D.%y
8.设int a=5,使b不为2的表达式是()
A.b=6-(--a) B.b=a%2  C.b=a/2  D.b=a>3?2:1
9.执行x=(6*7%8+9)/5;后,x的值为()
A.1  B.2  C.3  D.4
10.执行语句x=(a=3,b=a--)后,x,a,b的值依次为()
A.3,2,3  B.2,3,2  C.3,3,2  D.3,2,2
11.设a=-3;执行(a>0)?a:-a;后,a的值为()
A.3  B.1  C.0  D.-3
12.设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值为()
A.7  B.8  C.9  D.2
13.下面正确的字符常量是()
A.”c” B.’\\’’ C.’W’    D. ‘’
14.若有代数式3ae/bc,则不正确的c语言表达式是()
A.a/b/c*e*3  B.3*a*e/b/c  C.3*a*e/b*c  D.a*e/c/c*3
15.在C语言中,要求运算数必须是整型的运算符是()书中55页
A./  B.++  C.!=  D.%
16.若有说明语句:char c=’\72’;则变量c (  )
A.包含1个字符 B.包含2个字符
C.包含3个字符 D.说明不合法,c值不确定
17.sizeof (float)是()返回值为4。所以为整型表达式
c语言正确的字符常量
A.一个双精度型表达式 B.一个整型表达式
C.一种函数调用    D 一个不合法的表达式
18.设变量a 是整型,f是实型,i是双精度型,则表达式10+’a’+i*f值的数据类型是()A.int  B.folat  C.double  D.不确定
19.若有定义int a[10],*p=a;,则p+5表示()
A.元素a[5]的地址 B.元素a[5]的值
C.元素a[6]的地址 D.元素a[6]的值
?*20.以下与int *q[5];等价的定义语句是()指针数组,数组元素为指针
A.int q[5];  B.int * q  C.int *(q[5])  D.int (*q)[5]  指向数组的指针
21.若有定义int a[5],*p=a;则对a数组元素地址的正确引用是()
A.P+5  B.*a+1  C.&a+1    D  &a[0]
22.凡是函数中未指定存储类别的局部变量,其隐含的存储类别是()
A.auto  B.static  C.extern  D.register
23.若用数组名作为函数调用的实参,传递给形参的是()
A.数组的首地址 B.数组第一个元素的值
C.数组中全部元素的值    D .数组元素的个数
24.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是()
A.float  B.int  C.long  D.double
25.以下对二维数组a的正确说明是()
A.int a[3][]  B.float  a(3,4)
C.double a[1][4]  D.float a(3)(4)
?
*26.若有说明int a[3][4];则对a数组元素的正确引用是( C )
A.a[2][4]  B.a[1,3]  C.a[1+1][0]  D.a(2)(2)
答案?*26.语句while(!E);中的表达式!E等价于()
A.E= =0  B.E!=1  C.E!=0  D.E= =1
27.C语言中while和do—while循环的主要区别是()
A.do—while的循环体至少无条件执行一次
B.While的循环控制条件比do—while的循环控制条件严格
C.do—while允许从外部转到循环体内
D.do—while循环体不能是复合语句
28.为了避免在嵌套的条件语句if—else中产生二义性,C语言规定:else子句总与()配对A.缩排位置相同的if  B.其之前最近的if
C.其之后最近的if  D.同一行上的if
29.判断char型变量ch是否为大写字母的正确表达式是()
A.’A’<=ch<=’Z’ B.(ch>=’A’)&(ch<=’Z’)
C.(ch>=’A’)&&(ch<=’Z’ D.(‘A’<=ch)AND (‘Z’>=ch)
*30.以下能正确定义整型变量a、b、c并为其赋初值5的语句是(  A )
A.int  a=5,b=5,c=5;  B.int  a,c, c=5;
C.a=5,b=5,c=5;  D.a=b=c=5;
二、填空(共20分,每空1分)
1.C语言中的实型变量分为两种类型,它们是()和()。2.C语言中的标识符只能由三种字符组成,它们是()、()和()。
3.若有定义:char c=’\010’;则变量c中包含的字符个数是()。
4.C语言提供的三种逻辑运算符是()、()、()。
5.设y为int型变量,请写出描述“y是奇数”的表达式()。6.设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式()。7.在C语言中,二维数组元素在内存中的存放顺序是()。
8.若有定义:double x[3][5];则x数组中行下标的下限为(),列小标的上限为()。
9.若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值是(),a[2][2]得到的初值是()。
10.若自定义函数要求返回一个值,则应在该函数体中有一条()语句,若自定义函数要求不返回一个值,则应在该函数说明时加一个类型说明符()。
11.函数中的形参和调用时的实参都是数组名时,传递方式为(),都是变量时,传递方式为()。
三、读程序(共30分,每题5分)
1.main()
{
int a=2,b=3,c;
c=a;
if (a>b) c=1;
else if (a= =b) c=0;
else c=-1;
printf (“%d\n”,c);
} 运行结果:
2.main()
{
int a=2,b=7,c=5;
switch (a>0)
{
case  1:
swithch (b<0)
{case 1:printf(“@”);break;
case 2:printf(“!”);break;
}
case 0: switch  (c= =5)
{ case 0:printf(“*”);break;
case 1:printf(“#”),break;
default:printf(“#”);break;
}
default:printf(“&”); 运行结果:
} printf (“\n”);
}
3.#include <stdio.h>
main()
{
int i;
for (i=1;i<=5;i++)
switch (i%5)
{
case 0:printf(“*”);break;
case 1:printf(“#”);break;
default:printf(“\n”);
case 2:printf (“&”);
}
} 运行结果:
4.main()
{
int i,b,k=0;
for (i=1;i<=5;i++)
{
b=i%2;
while (b-->=0)  k++;
}
printf (“%d,%d”,k,b);
}  运行结果:
5.#include <stdio.h>
main()
{
char ch[7]={“12ab56”};
int i,s=0;
for (i=0;ch[i]>=’0’&&ch[i]<=’9’;i+=2)
s=s*10+ch[i]-‘0’;
printf (“%d\n”,s);
}运行结果:
6.main()
{
int a=2,i;
for (i=0;i<3;i++)
printf (“%4d”,f(a));
}
f(int a)
{
int b=0;static int c=3;
b++;c++;
return(a+b+c);
}运行结果:
四、编写程序(20分,每题10分)
1.从键盘输入的10个整数中,出第一个能被7整除的数。若到,打印此数后退出循环;若未到,打印“not exist”。
2.已有变量定义和函数调用语句:int x=57;isprime(x);函数isprime()用来判断一个整数a是否是素数,若是素数,函数返回1,否则返回0。请编写isprime函数。
insprime( int a)
{……};  {……}
一、单项选择题(共30分,每题1分)
1.A.2.B.3.A    4. C  5. D  6. B  7. A  8. B  9. B  10. A  11. D  12. A
13. C  14. C  15. D  16. A  17. B  18. C  19. A  20.D  21. D  22. A  23. A  24. B  25.
C  26. A  27. A  28. B  29. C  30. A
二、填空(20分,每空1分)
1.单精度,双精度
2.数字、下划线、英文字母
3.1个
4.与&&、或||、非!
5.y%2!=0
6.x<z||y<z
7.行列
8.0,4
9.0,8
10.return,void
11.地址传送,值传送
三、读程序(30分)
1.-1  2.&
3.#&
*
4.8,-2  5.1    6.  7  8  9
四、编写程序(20分)
1.#include<stdio.h>
main()
{int i,a;
for (i=1;i<=10;i++)
{scanf(“%d”,&a);
if (a%7= =0) {printf (“%d”,a); break;}
}
if (i>10) printf (“not exist”);
}
2.insprime(int a)
{int i;
for (i=2;i<=a-1;i++)
if (i%2= =0)return(0);
else
return(1);  }

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。