好文档 - 专业文书写作范文服务资料分享网站

模拟试题(一)

天下 分享 时间: 加入收藏 我要投稿 点赞

模拟试题(一)

一、填空(10分)

1.设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32) 后,x的值为。 2.设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是 。 3.设有定义int a=12,b=12;则语句 printf(\,%d\\n\,--a,++b);的输出结果是: 4.执行语句:for(i=1;i++<4;)后;变量i的值是 。 5.有以下程序运行后,输出结果是 。 #define PT 5.5

#define S(x) PT*x*x main()

{int a=1,b=2;

printf(\ }

6.设有如下定义:a=1,b=2,c=3,d=4,m=2,n=2; 则执行表达式:(m=a>b)&&(n=c>d)后,n的值为 。 二、选择题(20分)

1.设有如下的变量定义: int i=8,k,a,b; unsinged long w=5; double x=1.42,y=5.2;

则以下符合C语言语法的表达式是

A)a+=a-=b=4*(a=3) B)x%(-3) C)a=a*3=2 D)y=float(i) 2.假定有以下变量定义: int k=7,x=12; 则能使值为3 的表达式是 A)x%=k%=5 B)x%=k-k%5 C)x%=k-k%3 D)(x%=k)-(k%=5) 3.以下程序运行后,输出结果是

A)cde B)字符c的ASCII码值 C)字符c的地址 D)出错 main()

{ char *s=\ s+=2;

printf(\ }

4.以下叙述中正确的是

A) 输入项可以是一个实型常量,如 scanf(\,3.5);

B) 只有格式控制,没有输入项,也能正确输入数据到内存,如: scanf(\,

b=%d\);

C) 当输入一个实型数据时,格式控制可以规定小数点后的位数,如:scanf(\,

&f);

D) 当输入数据时,必须指明变量地址,例如: scanf(\,&f); 5.以下程序输出结果是

A)7 B) 6 C)5 D)4 main() { int m=5;

if(m++>5)printf(\else printf(\ }

6. 当执行以下程序段时

A)循环体将执行一次 B)循环体将执行两次

C)循环体将执行无限次 D)系统将提示有语法错误 x=-1;

do { x=x*x;} while(!x); 7. 执行以下程序后,输出的结果是

A)-1 B)1 C)8 D)0 main()

{ int y=10;

do{y--;} while(--y); printf(\}

8. 在下列选项中,没有构成死循环的程序段是

A) int i=100; B) for( ; ; ); C) int k=1000; D) int s=36,su=0; while (1) do {++k} while(s)su+=s--; {i=i0+1; while (k>=1000) ; if(i>100) break;}

9. 以下程序运行后,如果从键盘上输入ABCDE<回车>,则输出结果为 A)8 B)7 C)6 D)5 func(char str[]) { int num =0;

while(*(str+num)!='\\0') num++; return(num); }

main( )

{char str[10],*p=str;

gets(p); printf(\ }

三、阅读下面程序,写出程序运行的输出结果(25分) 1. 下面程序的运行结果是 : main()

{ char ch[7]={\ int i,s=0;

for(i=0;ch[i]>='0'&& ch[i]<'9';i+=2) s=10*s+ch[i]-'0'; printf(\ }

2. 以下程序运行后,输出结果是 int d=1; fun(int p) { int d=5; d+=p++;

printf(\}

main() {int a=3; fun(a); d+=a++;

printf(\}

3. 下面程序的输出结果是 main( )

{ int y=18,i=0,j,a[8]; do

{ a[i]=y%2;i++; y=y/2;

} while(y>0);

for(j=i-1;j>=0;j--) printf(\ printf(\}

4. 以下程序运行后,输出结果是 func(int a,int b) { static int m=0,i=2; i+=m+1;

m=i+a+b; return(m); } main()

{ int k=4,m=1,p;

p=func(k, m);printf(\,\ p=func(k, m);printf(\}

5. 以下程序运行后,输出结果是 main( )

{ static char a[]=\char *p1,*p2; int k;

p1=a; p2=b;

for(k=0;k<7;k++) if(*(p1+k)==*(p2+k)) printf(\ printf(\ }

四、根据下列各编程题题意填空(25分)

1. 下面程序把从终端读入的10个整数以二进制的方式写到一个名为bi.dat 的新文件中。

#include \ FILE *fp; main( ) { int i,j;

if((fp=fopen( ,\for(i=0;i<10;i++ ) { scanf(\ );

fwrite(&j,sizeof(int),1, ); }

fclose(fp); }

2.下面fun函数的功能是从a数组中查找值为y的元素;若找到,返回该元素的下标值,若不存在值为y的元素,返回0;数列放在a数组的a[1]到a[n]中,a[0]元素用来作为临时存储单元。 fun( ,int y,int n) { int k=0; a[0]=y; k=n;

while( )k--; return ; }

3.以下程序的功能是在有10个元素的数组中求出与平均值最接近的元素并输出该元素和平均值。 #include \ # include float average(float a[ ]) {float sum=0; int i;

for(i=0;i<10;i++) sum+=a[i]; return(sum/10); }

main() { int i,k;

float a[10],aver,b,diff;

for(i=0;i<10;i++) scanf(\ ); aver=average(a); k=0;

diff=fabs(a[0]-aver); for(i=1;i<10;i++) {b=fabs(a[i]-aver); if(b

{diff=b; ;} }

printf(\个元素的平均值是%f\\n\printf(\最接近平均值的元素是%f\\n\

}

五、编写程序(20分)

1.请编一个函数int fun(int pm),它的功能是:判断pm是否是素数。若pm是素数,返回1;若不是素数,返回0。pm的值由主函数从键盘读入。

2.请编写函数void fun(int *a, int *n, int y),它的功能是:把y值插入到a数组中,a数组中的数由主函数按由小到大的次序从键盘读入,y的值也从键盘读入。插入后,数组中数仍然有序。

组s的值由主函数从键盘读入,用-1来结束输入。

参考答案

一、填空(10分)

1、 设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32) 后,x的值为 32 。 2、 设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是 交换 。 3、 设有定义int a=12,b=12;则语句 printf(\,%d\\n\,--a,++b);的输出结果是11,

13

4、 执行语句:for(i=1;i++<4;)后;变量i的值是 5 。 5、 9.5 6、 2

二、选择题(20分)

1、A 2、D 3、C 4、D 5、B 6、A 7、D 8、D 9、D 三、阅读下面程序,写出程序运行的输出结果(25分) 1、6 2、8 4 3、10010 4、8,17 5、CDG

四、根据下列各编程题题意填空(25分) 1、\ &j fp

2、int a[] a[0]!=a[k] k 3、&a[i] k=i 五、编写程序(20分) 1、#include \#include \ int fun(int pm) {int i; if (pm>2)

{for(i=2;i<=sqrt(pm);i++) if(pm%i==0)break;

if (i>=sqrt(pm))return 1; else return 0; }

else if(pm==2)return 1; else return 0;

}

main() {int x;

scanf(\

if(fun(x)==1)printf(\是素数\\n\else printf(\不是素数\\n\} 2、

#include \

void fun(int *a, int *n, int y) {int i; *n=*n-1;

for(i=*n-1;a[i]>y;i--) a[i+1]=a[i]; a[i+1]=y; (*n)++; }

main()

{int a[10],i,x,n=0;

printf(\请输入数组a的元素\for(i=0; ;i++)

{scanf(\if (a[i]==-1)break;}

printf(\请输入要插入的x的值\scanf(\fun(a,&n,x); for(i=0;i

模拟试题(一)

模拟试题(一)一、填空(10分)1.设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为。2.设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是。3.设有定义inta=12,b=12;则语句printf(\,%d\\n\,--a,++b);的输出结果是:4.执行语句:f
推荐度:
点击下载文档文档为doc格式
1p9lp50i4n3gyk618jsm0fvam2gyzr007he
领取福利

微信扫码领取福利

微信扫码分享