A.0650 B.1470 C.5430 D.输出值不定
8.以下程序的输出结果是(5,7) int a,b;
void fun(){a=100;b=200} Main()
{int a=5,b=7; fun() printf(\ A.100,200 B.5,7 C.200,100
D.7,5
9.,执行下面程序后,a的值为(8)(考点全局变量和局部变量) Main() {int a,b;
for(a=1,b=1;a<=100;a++) {if(b>=20) break;
if(b%3==1) {b+=3; continue} b—=5;}} A.7 B.8 C.9 D.10
10.若有以下说明: int a[3][5]={{1,2},{3,4},{5,6}};则数值为6的表达式是( a[2][1] ) A.a[2] B.a[2][1] C.a[3][3] D.a[3][5] 11.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是(7和5) Main() {int x;
scanf(\
if(x++>5) printf(\Else printf(\——);} A.7和5 B.6和3 C.7和4 D.6和4 12.以下程序的输出结果是(004) Main() {int a=-1,b=4,k; K=(++a<0)&&!(b——<=0);
Printf (\(短路) A.104 B.103 C.003
D.004
13下述程序运行后输出结果是(3)
Main() {int n[3],i,j,k; 000,i=0 j:0:1;1:2; i=1 j:0:3;1:3; For(i=0;i<3;i++) n[i]=0; k=2; For (i=0;i For(j=0;j Main() {int a=10,k=2,m=1; a/=SQR(k+m)/SQR(k+m);(a=a/(SQR(k+m)/SQR(k+m))) Printf(\ A.10 B.1 C.9 D.0 15.下列运算符中优先级最高的是(+) A.> B.+ C.&& D.!= 16.一下不正确的语句(if(x=y)&&(x!=0) x+=y) 6 / 11 A.if(x>y); B.if (x=y)&&(x!=0) x+=y; C.if(x!=y) scanf(“%d”,&x); else scanf(“%d”,&y); D.if(x<y) {x++;y++;} 17.在c语言中,一位数组的定义的方式为:类型说明符 数组名([常量表达式]) A.[常量表达式] B.[整形表达式] C[整型常量]或[整型表达式] D.[整型常量] 18.定会以如下数组和变量 int k; inta[3][3]={1,2,3,4,5,6,7,8,9}; 则下列语句的输出结果是( 7 5 3 ) for(k=0;k<3;k++) prinft(\ A.3 6 9 B.7 5 3 C.9 6 3 D.3 5 7 19.设有:int a=1 ,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后的n值为(2) A.1 B.2 C.0 D.4 20.下面程序段运行的结果是char str[]=”ABC”,*p=str;printf(“%d\\n”,*(p+2));(字符'C'的ASCII码) char str[] ='ABC',*p=str; prinft(\; A.0 B.字符‘C’的ASSCII码 C.字符‘C’的地址 D.字符‘C’ 21.若i为整型变量,则下列循环执行的次数是( 3次) for (i=3;i!=0)printf(\ A.0次 B.1次 C.2次 D.3次 22.下面程序有错得行是(5) 1 main() 2 { 3 int a[3]={1} ; 4 int i ; 5 scanf(\是地址 6 for(i=1;i<3;i++) a[0]=a[0]+a[i]; 7 prinf(\ 8 } A.3 B.6 C.7 D.5 23.下面的程序的运行结果是 (*#*#*#$)选项中无正确答案 #include for(i=1 ;i<5;i++){ if(i%2) printf(\; else continute ;//else 控制到这句; printf(\;} printf(\;} 7 / 11 A.*#*#$ B.#*#*#*$ C.*#*#$ D.#*#*$ 24.下面的程序的运行结果是 (k=4) #include do{ switch(c++) {case 'A' :k++;break ; case 'B' :k-- ; case 'C' :k+=2;break ; case 'D' :k=k%2;continue ; case 'E' :k=k*10;break ; default :k=k/3 } k++;} while(c<'G') printf(\ A.k=3 B.k=4 C.k=2 D.k=0 25.下程序不是死循环的是(.int k=0 ; do(++k) while(k>=0)) A. int i =100; while(1){ i=i0+1;if(i>100) break ; A.int i=100; while(1) {i=i0+1;if (i>100 break)} B.for(;;); C.int k=0; do{++k;} while (k>=0;) D.int s=36; while (s);--s 填空题 1.在内存中存储“A”要占用 (2)个字节,存储‘A’要占用(1)个字节。 2.在C语言中,长整型数据和(float)类型的数据占用相同的字节数。 3.表达式‘A'+4-0.5运算结果是(68.5),其数据类型是(double) 4.一个函数自己调用自己,称作(递归调用)。 5.在程序中使用库函数,一般应在文件开头使用(#include)命令。 6.定义语句“char p[6]=\”则p[3]代表的字符是(‘4’)。P[5]代表的字符是‘\\0‘. 7.若有如下定义:#define F(N) 2*N,则表达式F(2+3)的值是(7)。(2*2+3) 判断题 1.C语言中每个语句必须以“;”分号结束。(T) 2.C语言中所有函数的执行都是从主函数开始的。(T) 3.语句printf(\的输出结果为51。 (T)0的ASCII是48 4.常量—1按无符号整型输出时,显示65535。 (T) 5.结构体类型本身不占用内存空间,结构体变量占用内存空间。 (T) 6.C语言函数的返回值只能是数值,不能是地址。 (F) 7.X=(i=4,j=16,k=32); x的结果是32。 (T) 8 / 11 8.变量一旦被说明,则该变量被分配存储空间。 (T) 9.C语言程序通过编译、运行后,其结果都是正确的。 (F) 10.C语言中所有变量都不能存放地址。 (F) 四.阅读程序图 1. #include int a ,s ,n,count ; a=2;s=0;n=1;count = 1; While(count<=7) {n=n*a;s=s+n;++count;}(n=2的n 次方,等比数列求和) Prinft(\} 【】运行结果: S = 254 2.【程序】 Main(){ Int a[2][3] = { {1,2,3} ,{4,5,6}} int m,*ptr ; ptr=&a[0][0]; m=(*ptr)*((*ptr+2))*((*ptr+4)); printf(\ 【运行结果】15 3 . 【程序】 voidfan(int *a ,int *b ) {k=a;a=b; b=k;} main(){ int a= 3, b=6,*x=&a , *y=&b ; fun(x,y); printf(\ 【运行结果】 3 ,6 4【程序】 #include int a, b ,m ,n ; m=n=1 ; scanf(\ do{ if(a>0) {m=2*n ; b++ ;}} while(a==b) printf(\ 程序运行时请输入 4 2 【程序运行结果】 m = 2,n=1 5【程序】(拿x 的元素上y里去查,找不到给c ) #include int f( int a[] ,int b[] ,int n , int c[]){ 9 / 11 int i ,j,k =0 ,t ; for(i=0 ;i for( t =1 ; ,j = 0;j { t = 0 ; break ;} if(t) c[k++]=a[i] } return k ;} void main(){ int x[] = {7,2,3,6,5,4,1}, y[] ={5,10,7,9,8,6}, z[10] ,w ,j ; w=f(x,7,y,6,z); for(j=0;j 【程序运行结果】2341 五 . 程序填充题目 1.输出100到1000之间的个位数字之和能被15整除的所有数,输出时候没事每10个数占一行 main(){ int m, n , k,i=0; for(m=100;m<1000 ;m++) {k =0 ; n =m ; do{ k=k+_______【1】 n=n/10;}(先取低端的数) ____________【2】 if(k==0){ printf(\ i++; printf(\;}} 【1】n或 n-n/10*10或 n-10*(n/10) 【2】while(n>0)或while(0 2.功能:有n个整数 ,使其前面各数顺寻向后移动m个位置,最后m个数变成最前面的m个数 main(){ int number[20],m,n,i; printf(\ scanf( \ prinf(\ scanf(\ for(i=0;i scanf(\ scanf(\ 10 / 11 move(______________【3】number , n, m); for(i=0;i prinf(\ prinf(\ move(array ,n ,m) int n ,m ,array[20];{ int *p ,array_end ; array_end=*(______________)【4】; for(p=array+n-1;p>array;p--) *p=*(________)【5】 *array=array_end; m-- if(m>0) move(array,n,m);} 【3】number ,n ,m 【4】array+n- 1 【5】p-1 11 / 11