C语言模拟试卷2(带答案)

更新时间:2023-10-07 13:36:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

单选题:

1、 执行下面的程序段后,变量k中的值为 s[0]=k; k=s[1]*10; A. 不定值 B. 33 C. 30 D. 10 答案: A

2、 设有以下定义:

#define N 3

#define Y(n) ( (N+1)*n)

则执行语句:z=2 * (N+Y(5+1));后,z的值为_______.2*(3+(4*5+1) A. 出错 B. 42 C. 48 D. 54 答案: C

3、 若已定义X和Y为double型,则表达式:x=1,y=x+3/2的值是____ A. 1 B. 2 C. 2.0 D. 2.5 答案: c

4、 请选出以下语句的输出结果____ printf(\ A. 5 B. 4 C. 8

D. 输出项不合法,无正常输出 答案: B

5、 为避免嵌套的条件分支语句if…else的二义性,C语言规定,C程序中的

else总是与____组成配对关系。

A. 其上面距它最近的,并且没有其他else与其配对的if相配对 B. 在同一行上的if C. 缩排位置相同的if D. 在其之前未配对的if 答案: A

6、 若X和Y都是int型变量,X=100,Y=200,且有下面的程序片段: printf(\上面程序片段的输出结果是 A. 200 B. 100

C. 100 200

D. 输出格式符不够,输出不确定的值 答案: A

7、 请读程序片段(字符串内没有空格字符): printf(\上面程序片段的输出结果是 A. 11 B. 9 C. 10 D. 8 答案: B

8、 设有以下程序段 int x=0,s=0;

while(!x!=0) s+=++x; printf(\则______

A. 运行程序段后输出0 B. 运行程序段后输出1

C. 程序段中的控制表达式是非法的 D. 程序段执行无限次 答案: B

9、 阅读下列程序: main( )

{ int n[3],i,j,k; for(i=0;i〈 3;i++) n[i]=0; k=2;

for (i=0;i < k;i++) i=0: n[0]=1,n[1]=2 i=1: =3 =3 for (j=0;j〈 2;j++) n[j]=n[i]+1; printf(\ }

下述程序运行后输出结果是 A. 2 B. 1 C. 0 D. 3 答案: D

10、 输入一个华氏温度,要求输出摄氏温度。计算公式为: c=5/9(F-32),以下程序正确的是()

A. main() { float c,F; scanf(\printf(\摄氏温度是:%f\\n\

B. main() { float c,F; scanf(\printf(\摄氏温度是:%f\\n\

C. main() { float c,F; scanf(\printf(\摄氏温度是:%f\\n\

D. main() { float c,F; scanf(\c=5.0/9.0(F-32); 答案: A

14、 下列不正确的转义字符是( ) A. '\\\\' B. '\\' printf(\摄氏温度是:%f\\n\ 答案: B

11、 以下程序的输出结果是 main( ) { int k=17;

printf(\,%o,%x \\n\,k,k,k); }

A. 17,021,0x11 B. 17,17,17 C. 17,0x11,021 D. 17,21,11 答案: D 12、 请读程序: main() {

int x=1,y=0,a=0,b=0; switch(x) { case 1: switch(y)

{ case 0: a++;break; case 1: b++;break; } case 2: a++;b++;break; }

printf(\}

上面程序输出结果是 A. a=2,b=1 B. a=1,b=1 C. a=1,b=0 D. a=2,b=0 答案: A

13、 C语言中,调用一个函数时,实参变量和形参变量之间的数据传递是____. A. 单纯值传递 B. 单纯地址传递

C. 值传递和地址传递都有可能

D. 由实参传给形参,然后由形参传回给实参,即是双向传递

C. '\\101' D. '\\0' 答案: B

15、 下列语句正确的是( ) A. if(a > b > c) temp=a B. if((a=b) > 0) temp=a C. int a=b=c=4 D. int a;scanf(%d,a) 答案: B

16、 以下说法中正确的是( )。

A. C语言程序中是从第一定义的函数开始执行

B. 在C语言程序中,要调用的函数必须在main()函数中定义 C. C语言程序总是从main()函数开始执行

D. C语言程序中的main()函数必须放在程序的开始部分 答案: C

17、 下列说法中正确的是____。

A. 一个数组能够存储许多不同类型的值 B. 数组的下标可以是float数据类型

C. 如果初始化值列表中的个数少于数组的元素的个数,C编译器会自动补齐

D. 初始化值列表中的值的个数多于数组元素的个数是错误的 答案: D

18、 设有说明:char w;int x;float y;double z;则表达式w*x+z-y值的数据类型为 A. float B. char C. int D. double 答案: D

19、 设以下变量均为int类型,则值不等于7的表达式是 A. (x=y=6,x+y,x+1) B. (x=y=6,x+y,y+1) C. (x=6,x+1,y=6,x+y) D. (y=6,y+1,x=y,x+1) 答案: C

20、 以下不正确的if语句形式是 A. if(x>y&&x!=y)t=x++; B. if(x==y) x+=y;

C. if(x!=y) scanf(\ D. if(x<> 答案: C

21、 若i为整型变量,则以下循环执行次数是 for(i=2;i==0;) printf(\ A. 无限次 B. 0次 C. 1次 D. 2次 答案: B

22、 以下错误的描述是:函数调用可以 A. 出现在执行语句中 B. 出现在一个表达式中

C. 做为一个函数的实参 D. 做为一个函数的形参 答案: D

23、 以下各选项企图说明一种新的类型名,其中正确的是 A. typedef v1 int; B. typedef v2=int; C. typedef v1 int v3; D. typedef v4: int; 答案: C

24、 以下程序的输出结果是

main()

{ int a=5,b=4,c=6,d;

printf(\

}

A. 5 B. 4 C. 6 D. 不确定 答案: c

25、 以下程序调用findmax函数返回数组中的最大值 findmax(int a[],int n) { int *p,*s;

for(p=a,s=a; p-a

{ int x[5]={12,21,13,6,18}; printf(\}

在下划线处应填入的是 A. p>s B. *p>*s C. a[p]>a[s] D. p-a>p-s 答案: B 26、 有如下程序

main()

{ char s[]=\

for(p=s+l; p < s+4; p++) printf (\

}

该程序的输出结果是 A. ABCD BCD CD D B. A B C D C. B C D D. BCD CD D

答案: D

27、 下列描述中不正确的是

A. 字符型数组中可以存放字符串

B. 可以对字符型数组进行整体输入、输出

C. 可以对整型数组进行整体输入、输出

D. 不能在赋值语句中通过赋值运算符\对字符型数组进行整体赋

答案: C

28、 将三个数排序需要比较______次。 A. 2 B. 3 C. 4 D. 不确定 答案: B 填空题:

1、 下面程序功能是:输出100以内能被3整除且个位数为6的所有整数,请填 空。

#include < stdio.h > main() { int i, j; for(i=0; _____(1)______; i++) { j=i*10+6;

if( _____(2)______ ) continue; printf(\} }

答案: i<10,j%3!=0 2、 main( ) { int sum=0, i ; scanf( \while (i < = 10) {sum=sum+i; i++;}

printf(\输入 1 输出______ 答案: 55

3、 用来引用特定数组元素的数字称为____. 答案: 下标

4、 把数组元素按顺序存放的过程称为_________. 答案: 排序

5、 应该用_______声明数组的大小,因为这样能够更容易调整程序。 答案: 符号常量 6、 输出为__________ main( ) {char x,y; x='a'; y='b'; printf(\printf(\printf(\ 答案: a\\b\\n 5

7、 #include < stdio.h > main( )

{int i=0,j=0,a=6;

if ((++i > 0) || (j++ > 0)) a++; printf(\结果:_____

答案: I=1, j=0, a=7 8、 写出该程序运行的结果。 #include void main() { int i, j, k=10; i=(j=k)>0; j=i==j;

printf(``-,-\\n``,i,j); k=!i==++j;

printf(\ 答案: 1,0,1,1,0

9、 从键盘输入一个大写字母,要求改用小写字母输出,程序如下办 #include \main( ) { char c1,c2; (1)_________;

printf (\(2)_____________; printf(\ 答案: c1=getchar( ),c2=c1+32; 10、 设有以下变量定义,并已赋确定的值 char w; int x; float y; double z;

则表达式:w*x+z-y所求得的数据类型为____________ 答案: double

11、 在C语言中(以16位PC机为例),一个float型数据在内存中所占的字节数为_____;一个double型数据在内存中所占的字节数为_________ 答案: 4,8 12、 设有以下程序: main() { int n1,n2; scanf(\while(n2!=0) { n1=n2; n2=n2/10; printf(\} }

程序运行后,如果从键盘上输入1298;则输出结果为_________。 答案: 8921

13、 若从键盘输入58,则以下程序输出的结果是 ________ 。 main() { int a; scanf(\

if(a>50) printf(\if(a>40) printf(\if(a>30) printf(\}

答案: 585858

14、 以下程序的输出结果是______________。 main()

{ unsigned short a=65536; int b; printf(\ 答案: 0

15、 下面程序的功能是:输出100以内能被3整除且个位数为6的所有整数,请填空。

#include < stdio.h > main()

{ int i, j;

for(i=0; ______________; i++)

{ j=i*10+6;

if( ________ ) continue;

printf(\

} }

答案: i<10,j%3!=0 程序设计题:

1、 编写程序,计算1000以内有多少个这样的数,其个位数为6且该数能被9整除。 答案: main() {

int i,n=0,a;

for(i=1;i < 1000;i++) {a=i;

if((a==6)&&(i%9==0)n++; }

printf(\

}

参考答案是:11

2、 求正整数[100,999]中的水仙花数的和,(若三位数ABC=A^3+B^3+C^3,则称ABC为水仙花数,例如数153,1^3+5^3+3^3=153,则153为水仙花数)。 答案: main()

{

int x,y,z,i;

int count=0;

for(i=100;i<=999;i++) { z=i/100; y=i/10; x=i;

if((x*x*x+y*y*y+z*z*z)==i)count=count+i; }

printf(\}

/*参考答案:1301 */

3、 若(x,y,z)满足方程:x^2+y^2+z^2=55^2(注:要求 x > y > z),则(x,y,z)称为方程的一个解。试求方程的所有整数解中x+y+z的最大值。

答案: #include

main()

{

int x,y,z,temp,max=0;

for(x=54;x>=-55;x--) for(y=x-1;y>=-55;y--) for(z=y-1;z>=-55;z--) {

temp=x+y+z;

if(x*x+y*y+z*z==55*55) if(temp>max)max=temp; }

printf(\}

/*参考答案:91 */

本文来源:https://www.bwwdw.com/article/bk3d.html

Top