江苏省五年一贯制专转本《C语言程序设计》模拟试卷四(晓庄)一、填空題(每题2分,共20分)1、若x和a均是int型变量,则计算表达式(1)后的x值为_______,计算表达式(2)后的x 值为__________。
(1) x=(a=4,6*2) (2) x=a=4,6*22、若x和n均是int型变量,且x和n的初值均为5,则计算表达式后x的值为________,n的值为________。
x+=n++3、若有定义:int x=3,y=2;float a=2.5,b=3.5;则下面表达式的值为_______。
(x+y)%2+(int)a/(int)b4、若有定义:int a=2,b=3;float x=3.5,y=2.5;则下面表达式的值为。
(float)(a+b)/2+(int)x%(int)y5、已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=‘a’+‘8’-‘3’的值为__________6、若a=3,b=4,c=5,则表达式a ||( b=c)&&b==c的值是。
7、以下程序段其输出结果是。
double a=513.789215;printf(“a=%8.6f, a=%-8.2f\n”,a,a);8、以下程序的执行结果是。
#include<stdio.h>main(){float f=31.41592;printf("%f,%e",f,f)}9、若a=1,b=2,c=3,d=4,则表达式a>b?a:c>d?c:d的值是。
10、当执行以下程序段后,i的值是,j的值是,k 的值是。
int a,b,c,d,i,j,k;a=10;b=c=d=5;i=j=k=0;for(;a>b;++b)i++;wihle(a>++c)j++;dok++;while(a>d++);二、单项选择题(每题2分,共40分)1、在C语言中,不正确的int类型的常数是()A) 32768 B) 0 C) 037 D) 0xAF2、语句:printf("%d",(a=2)&&(b= -2));的输出结果是()A) 无输出 B) 结果不确定 C) -1 D) 13、当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是()A) c=b=a;B) (a=c) ‖(b=c) ; C) (a=c) &&(b=c); C) a=c=b;4、在C语言中,如果下面的变量都是int类型,则输出的结果是 ( )sum=pad=5; pad=sum++ , ++pad, pad++;printf("%d\n",pad);A) 7 B) 6 C) 5 D) 45、语句while(!E);中的条件!E等价于( )A)E = = 0 B)E!=1 C) E!=0 D)~E6、以下函数调用语句中含有( )个实参。
func((exp1,exp2),(exp3,exp4,exp5));A) 1 B) 2 C) 4 D) 57、以下的for循环 ( )for(x=0,y=0; (y!=123)&&(x<4); x + + );A) 是无限循环 B)循环次数不定 C)执行4次 D)执行3次8、以下程序的输出结果是 ( ) 。
# 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 ) 129、以下程序的输出结果是( ) 。
# 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=%d10、下面的程序输出是()A) 1 B) 1和-2 C) 3和0 D) 是死循环main(){ int x=3;do {printf("%d\n",x-=2);}while(!(--x));}11、下面程序的输出是()A) 741 B) 852 C) 963 D) 875421main(){int y=9;for( ; y>0; y--){if(y%3==0){printf("%d", --y);continue;}}}12、以下程序的输出结果是 ( ) 。
# 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,013、以下for语句构成的循环执行了 ( ) 次。
# 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) 914、以下程序的输出结果是 ( ) 。
# 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,315、以下程序的输出结果是( ) 。
# 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,816、若有以下数组说明,则i=10;a[a[i]]元素数值是()。
int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};A)10 B)9 C)6 D)517、要求定义具有8个、int类型元素的一维数组,错误的定义语句是()A)int n= 8; B) #define N 3int a[n]; int a[2*N+2];C)int a[ ]={0,1,2,3,4,5,6,7};D)int a[1+7]={0};18、下列程序段的输出结果是()。
char c = 'b' ; int j = 0 ;switch (c){ case 'a' : j=4 ; break ;case 'b' : j=3 ;case 'c' : j=2 ; break ;case 'd' : j=1 ;}printf("%d",j);A) 32 B)2 C) 4321 D) 119、 C语言中形参的缺省存储类别是 ( ) 。
A)自动(auto) B)静态(static) C)寄存器(register) D)外部(extern)20、当调用函数时,实参是一个数组名,则向函数传送的是()。
A)数组的长度B)数组的首地址C)数组每一个元素的地址D)数组每个元素中的值20、若已定义:int a[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1] 地址的表达式是()A) p+1 B) a+1 C) a++ D) ++p20、设有以下语句,则( )不是对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))三、程序填空(每题4分,共12分)1、判断n是否是素数,若是,则返加1,否则返回0int prim(int n){ int m;for (m=2;m<=n/2;m++)ifreturn 0;;}2、以下程序的功能是将字符串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; )if( ){t=a[i]; a[i]=a[j]; a[j]=t;j++;}puts(a);printf(“\n”);}3、下列程序用于将从键盘输入的整数逆序输出main( ){ int n1,n2;scanf("%d",&n2);while( ){ n1=n2%10;n2= ;printf("%d",n1);}}四、写出以下程序运行结果(每题3分,共12分)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);}2、阅读下列程序,写出程序输出结果。
main( ){int s=0,i;for(i=1;;i++){if(s>50)break;if(i%2==0) s+=i;}printf(″i=%d,s=%d\n″,i,s);}3、阅读下列程序,写出程序输出结果。