C试卷5
- 格式:doc
- 大小:52.50 KB
- 文档页数:7
试卷五一、选择题(本题共20小题,每题2分,共40分)(1) 在C语言中,如果下面的变量都是int类型,则输出的结果是(C) 。
sum=pad=5; pAd=sum + + ,pAd + + , + + pAd;printf("%d\n",pad);A) 7 B) 6 C) 5 D) 4(2) 以下程序的输出结果是(B) 。
# include <stdio.h>main(){int i=010 , j = 10;printf("%d,%d\n",+ +i , j - -);}A) 11,10 B) 9,10 C) 010,9 D) 10,9(3) 已知在ASCII代码中,字母A的序号为65,以下程序的输出的结果是( D) 。
# include <stdio.h>main(){char c1='A', c2='Y';printf("%d,%d\n",c1,c2);}A) 因输出格式不合法,输出错误信息B)65,90 C)A,Y D)65,89(4) 语句while(!E);中的条件!E等价于( C) 。
A)E = = 0 B)E!=1 C)E!=0 D)~E(5) 以下程序的输出结果是(C)。
# include <stdio.h>main(){printf("%d\n",NULL);}A) 不确定的(因变量无定义)B)0 C)-1 D)1(6) 以下函数调用语句中含有( B)个实参。
func((exp1,exp2),(exp3,exp4,exp5));A) 1 B) 2 C) 4 D) 5(7) 下面的程序中( C)有错误(每行程序前面的数字是行号)。
1 #include <stdio.h>2 main()3 {4 float a[3]={0,0};5 int i;6 for(i=0;i<3;i + + ) scanf("%d",&a[i]);7 for(i=1;i<3;i + + ) a[0]=a[0]+a[i];8 printf("%f\n",a[0]);9 }A) 没有B)第4行C)第6行D)第8行(8) 设有语句int a=3;则执行了语句a+=a-=a*a;后,变量a的值是( D) 。
A)3 B)0 C)9 D)-12(9) 以下的for循环( C) 。
for(x=0,y=0; (y!=123)&&(x<4); x + + );A) 是无限循环B)循环次数不定C)执行4次D)执行3次(10) 设有语句char a='\72';则变量a ( A)。
A)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法(11) C语言中( D) 。
A)不能使用do-while语句构成的循环B)do-while语句构成的循环必须用break语句才能退出C)do-while语句构成的循环,当while语句中的表达式值为非零时结束循环D)do-while语句构成的循环,当while语句中的表达式值为零时结束循环(12) 以下程序的输出结果是(D) 。
# include <stdio.h># include <string.h>main(){char str[12]={'s','t','r','i','n','g'};printf("%d\n",strlen(str));}A) 6 B) 7 C) 11 D) 12(13) 以下程序的输出结果是( A) 。
# include <stdio.h>main(){int a=2,c=5;printf("a=%%d,b=%%d\n",a,c);}A) a=%2,b=%5 B) a=2,b=5 C) a=%%d,b=%%d D) a=%d,b=%d(14) 以下程序的输出结果是(B) 。
# include<stdio.h>main(){int a ,b,d=241;a=d/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,b);}A) 6,1 B) 2,1 C) 6,0 D) 2,0(15) 以下for语句构成的循环执行了(C ) 次。
# include <stdio.h># define N 2# define M N+1# define NUM (M+1)*M/2main(){int i , n=0;for ( i=1;i<=NUM;i + + );{n + + ;printf("%d",n);}printf("\n");}A) 5 B) 6 C) 8 D) 9(16) 设有以下语句,则( Dd)不是对a数组元素的正确引用,其中0≤i<10。
int a[10]={0,1,2,3,4,5,6,7,8,9}, *p=a;A)a[p-a] B) *(&a[i]) C) p[i] D) *(*(a+i))(17) 以下程序的输出结果是( B) 。
# include<stdio.h>main(){int i=1,j=3;printf("%d",i + + );{ int i=0; i+=j*2; printf("%d,%d",i,j); }printf("%d,%d\n",i,j);}A) 1,6,3,1,3 B) 1,6,3,2,3 C) 1,6,3,6,3 D) 1,7,3,2,3(18) 以下程序的输出结果是(D) 。
# include <stdio.h>main(){int k=4,m=1,p;p=func(k,m); printf("%d,",p); p=func(k,m); printf("%d\n",p);}func(int a,int b){static int m=0,i=2;i+=m+1; m=i+a+b;return(m);}A)8,17 B) 8,16 C) 8,20 D) 8,8(19) 设有以下语句:char str1[]="string",str2[8],*str3,*str4="string";则(D) 不是对库函数strcpy的正确调用,此库函数复制字符串。
A) strcpy(str1,"HELLO1"); B) strcpy(str2,"HELLO2");C) strcpy(str3,"HELLO3"); D) strcpy(str4,"HELLO4");(20) C语言中形参的缺省存储类别是(a)。
A)自动(auto) B)静态(static) C)寄存器(register) D)外部(extern)二、填空题(本题共6空,每空5分,共30分)(1)以下程序求a数组中的所有素数的和,函数isprime用来判断自变量是否为素数。
素数是只能被1和本身整除且大于1的自然数。
#include <stdio.h>main(){int i,a[10],*p=a,sum=0;printf("Enter 10 num:\n");for(i=0;i<10;i + + ) scanf("%d",&a[i]);for(i=0;i<10;i + + )if(isprime(*(p+ _i_ )) = = 1){printf("%d",*(a+i));sum+=*(a+i);}printf("\nThe sum=%d\n",sum);}isprime(int x){for(i=2;i<=x/2;i + + )if(x%i = = 0)return (0);__return(1)____;}(2) 以下程序调用invert函数按逆序重新放置a数组中元素的值。
a数组中的值在main函数中读入。
#include <stdio.h>#define N 10invert(int *s,int i,int j){int t;if(i<j){t=*(s+i);*(s+i)=(s+j);*(s+j)=t;invert(s, _++i__ ,j-1);}}main(){int a[N],i;for(i=0;i<N;i + + ) scanf("%d",a+ _i__ );invert(a,0,N-1);for(i=0;i<N;i + + ) printf("%d",a[i]);printf("\n");}(3) 以下程序的功能是将字符串a中下标值为偶数的元素由小到大排序,其他元素不变.#include <stdio.h>main(){char a[ ]=”labchmfye”,t;int i,j;for(i=0;i<7;i+=2)for(j=i+2;j<9;_j+=2__)if(____a[i]>a[j]____){t=a[i];a[i]=a[j];a[j]=t;}printf(“\n”);}三、阅读程序题(本题共4小题,每题5分,共20分)(1) 阅读下列程序:#include<stdio.h>main(){int i, j, row, column,m;static int array[3][3]={{100,200,300},{28,72,-30},{-850,2,6}};m=array[0][0];for (i=0; i<3; i++)for (j=0; j<3; i++)if (array[i][j]<m){m=array[i][j]; row=i; column=j;}printf("%d,%d,%d\n",m,row,column);}上述程序的输出结果是__-850,2,0_____ 。
(2) 下面程序的输出结果是__2,5,1,2,3,-2__ 。