}
printf(\ }
A)v1=4,v2=2,v3=1,v4=1 B)v1=4,v2=9,v3=3,v4=1 C)v1=5,v2=8,v3=6,v4=1 D)v1=8,v2=8,v3=8,v4=8 (29)下面程序的输出是__D____。 main( ) { int k=11;
printf(\ }
A)k=11,k=12,k=11 B)k=11,k=13,k=13 C)k=11,k=013,k=0xb D)k=11,k=13,k=B (30)下面程序段中 c 的二进制值是__B____。 char a=3,b=6,c; c=a^b<<1;
A)00001011 B)00001111 C)00011110 D)00011100 (31)以下叙述中正确的是__C____。 A)C 语言比其他语言高级
B)C 语言可以不用编译就能被计算机识别执行
C)C 语言以接近英语国家的自然语言和数学语言作为语言的表达形式 D)C 语言出现的最晚,具有其他语言的一切优点 (32)下列可用于 C 语言用户标识符的一组是__B____。
A)void define WORD B)a3_b3 _123 Car C)For -abc IFCase D)2a DO sizeof (33)请选出正确的程序段__C____。
A)int *p B)int *s,k; scanf(\ *s=100; …… …… C)int *s,k; D)int *s,k; char *p,c; char *p,e; s=&k; s=&k; p=&c; p=&c; *p='a'; s=p; …… *s=1; …… 二、填空题
(1)下面程序的输出是 【____12______】 。 main( )
{int arr[10],i,k=0; for(i=0;i<10;i++) arr[i]=i; for(i=1;i<4;i++) k+=arr[i]+i; printf(\
(2)若a=10,b=20,则表达式!(a
int fa(int x) {return x*x;} int fb(int x) {return x*x*x;}
int f(int(*f1)(),int(*f2)(),int x)
{return f2(x)-f1(x);} main()
{int i;i=f(fa,fb,2);printf(\
程序运行后,输出结果是 【______4_______】 。
(4)若想通过以下输入语句使a=5.0,b=4,c=3,则输入数据的形式应该是 【__5,4,c=3___】 int b,c; float a;
scanf(\
(5)下列程序的输出结果是 【___5 6____】 。 int t(int x,int y,int cp,int dp) { cp=x * x+y*y; dp=x*x-y*y; }
main( )
{ int a=4,b=3,c=5,d=6; t(a,b,c,d);
。 printf(\ %d\\n\ }
(6)下面程序的输出结果是 【___GGGH_____】 。 char b[]=\ main() {
char b[30];
strcpy(&b[0],\ strcpy(&b[1],\ strcpy(&b[2],\ printf(\ }
(7)下述函数用于统计一行字符中的单词个数,单词之间用空格分隔。 word_num(char str[]) {int i,num=0,word=0;
for(i=0;str[i]!= 【__’\\0’____】 ;i++)
if( 【__str[i]____】 ==' ')word=0; else if(word==0) { word=1;
【_num++__】 ; }
return(num); }
(8)有一个已排好序的数组,今输入一个数,要求按原来的顺序规律将它插入到数组中。 算法是:假设排序顺序是从小到大,对输入的数,检查它在数组中哪个数之后,然后 将比这个数大的数顺序后移一个位置,在空出的位置上将该数插入。请在程序中的空 白处填上一条语句或一个表达式。 #define N 100 main()
{ float a[N+1],x; int i,p;
for(i=0;i scanf(\ scanf(\ for(i=0,p=N;i for(i=N-1; 【___i>=p_____】 ;i--) a[i+1]=a[i]; a[p]=x; for(i=0; 【____i<=N_____】 ;i++) { printf(\ if(i%5==0) printf(\ } } 一、选择题 (1)下列语句中符合 C 语言语法的赋值语句是__D____。 A)a=7+b+c=a+7 B)a=a+7 C)a=7+b,b++,a+7; D)a=7+b,c=a+7; (2)下面程序 main( ) { int y=9; for(;y>0;y--){ if(y%3==0) { printf(\ continue; } } } 的输出是__B__。 A)741 B)852 C)963 D)875421 (3)下列四个叙述中,错误的是___B___。 A)C 语言中的关键字必须小写 B)C 语言中的标识符必须全部由字母组成 C)C 语言不提供输入输出语句 D)C 语言中的注释行可以出现在程序的任何位置 (4)下面程序 main( ) { int a=-1,b=4,k; k=(a++<=0)&&(!(b--<=0) ); printf(\ } 的输出是__C____。 A)0 0 3 B)0 1 2 C)1 0 3 D)1 1 2 (5)以下叙述中正确的是__C____。 A)预处理是指完成宏替换和文件包含中指定文件的调用 B)预处理也是C 语句 C)C 源程序中,凡是行首以#标识的控制行都是预处理指令 D)预处理就是完成 C 编译程序对 C 源程序的第一遍扫描,为编译的词法分析和语法分析作准备 (6)下面的程序片段 y=-1; if (x!=0) if(x>0) y=1; else y=0; 所表示的数学函数关系是__C____。 -1 (x<0) 1 (x<0) A) y= 0 (x=0) B) y= -1 (x=0) 1 (x>0) 0 (x>0) 0 (x<0) -1 (x<0) C) y= -1 (x=0) D) y= 1 (x=0) 1 (x>0) 0 (x>0) (7)下面的程序的运行结果是___D____。 main( ) { int x=3,y=0,z=0; if(x=y+z)printf(\ else printf(\ } A)有语法错误不能通过编译 B)输出* * * * C)可以通过编译, 但是不能通过连接, 因而不能运行 D)输出#### (8)在 C 语言中,合法的长整型常数是_A____。 A)0L B)4962710 C)04312765 D)0xa34b7fe (9)下面函数 int fun1(char*x) { char *y=x; while(*y++); C语言程序设计模拟题(3) return(y-x-1); } 的功能是__A____。 A)求字符串的长度 B)比较两个字符串的大小 C)将字符串 x 复制到字符串 y D)将字符串 x 连接到字符串 y 后面 (10)设 int i=2,j=1,k=3,则表达式 i&&(i+j)&k|i+j 的值是___C___。 A)0 B)2 C)1 D)3 (11)已知字母 A 的 ASCII 码为十进制的 65,下面程序 main( ) { char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf(\ } 的输出是__A____。 A)67,D B)B,C C)C,D D)不确定的值 (12)以下程序的输出结果是_B_____。 #include { int a,b,d=241; a=d/100%9; b=(-1)&&(-1); printf(\ } A)6,1 B)2,1 C)6,0 D)2,0 (13)下列选项中非法的表达式是__D____。 A)0<=x<100 B)i=j==0 C)(char)(65+3) D)x+1=x+1 (14)以下程序的输出结果是__B____。 #include printf(\ } A)不确定的(因变量无定义) B)0 C)-1 D)1 (15)在下面的语句中,赋值语句错误的是__C____。 A)a=(b=(c=2,d=3)); B)i++; C)a=a/b=2; D)a=a { int k=4,m=1,p; p=func(k,m); printf(\ p=func(k,m); printf(\ } 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 (17)以下程序调用 findmax 函数求数组中值最大的元素在数组中的下标,请选择填空: #include findmax(int *s,int t,int *k) { int p ; for(p=0,*k=p;p main( ) { int a[10],i,k; for(i=0;i<10;i++) scanf(\ findmax(a,10,&k); printf(\ } A)k=p B)*k=p-s C)k=p-s D)*k=p (18)在执行以下程序时,为了使输出结果为 t=4,给 a 和 b 输入的值应该满足的条件是 __C____。 main() { int s,t,a,b; scanf(\ s=1;t=1; if(a>0)s=s+1; if(a>b)t=s+t; else if(a==b)t=5; else t=2*s; printf(\ } A)a>b B)ab (19)以下函数调用语句中含有__B____个实参。 func((exp1,exp2),(exp3,exp4,exp5) ); A)1 B)2 C)4 D)5 (20)执行以下程序后,输出的结果是__D___。 main() { int y=10; do{y--;}while(--y); printf(\ } A)-1 B)1 C)8 D)0 (21)在 C 语言中,要求运算数必须是整型的运算符是___A___。 A)% B)/ C)< D)! (22)C 语言提供的合法的数据类型关键字是__B___。 A)Double B)float C)integer D)Char (23)设有以下定义: int a[3][3]={1,2,3,4,5,6,7,8,9}; int (*ptr)[3]=a,*p=a[0]; 则下列能够正确表示数组元素 a[1][2]的表达式是__D____。 A)*((*ptr+1)[2]) B)*(*(p+5)) C)(*ptr+1)+2 D)*(*(a+1)+2) (24)若有以下说明: int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则值为 6 的表达式是__C____。 A)*p+6 B)*(p+6) C)*p+=5 D)p+5 (25)下列程序的输出结果是___C___。 fun() { static int x=5; if(x++>5)printf(\ else printf(\ } main() { fun();fun(); } A)67 B)69 C)68 D)78 (26)下面程序的输出是__A____。 main( ) { int m=0xa,n=2; m+=n; printf(\ } A)C B)c C)99 D)2 (27)以下程序的输出结果是__A____。 # include {char *a=\ fun(a);puts(a); } fun(char *s)