最新C语言程序设计模拟试题B(附答案) 联系客服

发布时间 : 星期六 文章最新C语言程序设计模拟试题B(附答案)更新完毕开始阅读ca05124bfc4733687e21af45b307e87101f6f84e

精品文档

《C语言程序设计》模拟试卷十二

一、填空题。(每题2分,共20分)

1. C语句必须以 号结束

2. 若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是 。 3. 若有以下程序段,

int c1=1,c2=2,c3; c3=1.0/c2*c1;

则执行后,c3中的值是 。

4. 设有定义:int n,*k=&n;以下语句将利用指针变量k读写变量n中的内容,请将语句补

充完整。

scanf(“%d, ” ); printf(“%d\\n”, 。);

5. 若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值

是 。 6. 有以下程序段

int k=0 while(k=1)k++;

while 循环执行的次数是 。

7. 表达式a = 1,a + 1,a + + 的值是___________________。

8. 设char string[] =″This_is_a_book!″;则数组的长度应是________________。 9. 设int a[2][3] = {{2},{3}};则数组元素_____________________的值为3。 10. 设有如下变量说明语句

int a[8]={44,55,12,42,94,18,6,67},*p=a;

则通过指针变量p引用值为18的表达式是____ ____。 11. 执行下述程序 #include

int strlength(char a[],char b[]) {

int num=0,n=0; while (*(a+num)!='\\0') 精品文档

精品文档

num++; while (b[n]) {

*(a+num)=b[n]; num++; n++; }

return (num); } main() {

char strl[81],str2[81],*p1=str1,*p2=str2; gets(p1); gets(p2);

printf(\ } 若从键盘输入 qwerty abcd

则输出结果是____ ___。

二、单项选择题。(每题2分,共40分)

1.下列叙述中错误的是( )

A)计算机不能直接执行用C语言编写的源程序

B)C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件 C)后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件 D)后缀为.obj和.exe的二进制文件都可以直接运行

2.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是() A)大写字母 B)连接符 C)数字字符 D)下划线 3.以下叙述中错误的是( )

精品文档

精品文档

A)C语言是一种结构化程序设计语言

B)结构化程序有顺序、分支、循环三种基本结构组成 C)使用三种基本结构构成的程序只能解决简单问题 D)结构化程序设计提倡模块化的设计方法

4.对于一个正常运行的C程序,以下叙述中正确的是() A)程序的执行总是从main函数开始,在main函数结束 B)程序的执行总是从程序的第一个函数开始,在main函数结束 C)程序的执行总是从main函数开始,在程序的最后一个函数中结束 D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束

5.设变量均已正确定义,若要通过scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。以下所示的输入形式中正确的是(注:□代表空格字符)( ) A)10□X□20□Y〈回车〉 B)10□X20□Y〈回车〉 C)10□X〈回车〉 D)10X〈回车〉 20□Y〈回车〉 20Y〈回车〉

6.若有代数式

的C语言表达式是( )

(其中e仅代表自然对数的底数,不是变量),则以下能够正确表示该代数式

A)sqrt(abs(n^x+e^x)) B)sqrt(fabs(pow(n,x)+pow(x,e))) C)sqrt(fabs(pow(n,x)+exp(x))) D)sqrt(fabs(pow(x,n)+exp(x)))

7.设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是() A)k++ B)k+=1 C)++k D)k+1 8.有以下程序,其中%u表示按无符号整数输出()

main()

{unsigned int x=0xFFFF; /* x的初值为十六进制数*/

printf(“%u\\n”,x);

}

程序运行后的输出结果是

A)-1 B)65535 C)32767 D)0xFFFF

精品文档

精品文档

9.设变量x和y均已正确定义并赋值,以下if语句中,在编译时将产生错误信息的是( ) A)if(x++); B)if(x>y&&y!=0); C)if(x>y)x-- D)if(y<0){;}

else y++; else x++; 10.以下选项中,当x为大于1的奇数时,值为0的表达式( ) A)x%2==1 B)x/2 C)x%2!=0 D)x%2==0 11.以下叙述中正确的是( )

A)break语句只能用于switch语句体中

B)continue语句的作用是:使程序的执行流程跳出包含它的所有循环 C)break 语句只能用在循环体内和switch语句体内 D)在循环体内使用break语句和continue语句的作用相同 12.有以下程序

main() {int k=5,n=0;

do

{switch(k)

{case1: case3:n+=1; break;

default:n=0;k--;

case2:case4:n+=2;k--;break; }

printf(“%d”,n); }while(k>0&&n<5); }

程序运行后的输出结果是( )

A)222 B)0235 C)02356 D)2356 13.有以下程序

main() {int i,j;

for(i=1;i<4;i++)

{for(j=i;j<4;j++)printf(“%d*%d=%d”,i,j,i*j);

精品文档