《《C语言程序设计》综合练习试卷》由会员分享,可在线阅读,更多相关《《C语言程序设计》综合练习试卷(10页珍藏版)》请在金锄头文库上搜索。
1、C语言程序设计综合练习试卷(四)一、判断题(正确的括弧内画T,否则写F,110)1, 在C程序中,语句之间必须要用分号“;”分隔。( )2, 在C程序中所用的变量必须先定义后使用。( )3, 若a和b是同类型变量,在执行了赋值语句a=b;后b中的值将放入a中,b中的值将丢失。( )4. 在C程序中,APH和aph是两个不同的变量。( )5, break语句只能用在循环语句中。( )6, C源程序的基本单位是函数。 ( )7, 定义:int a35,i,j;(且0=i3,0=j=x)&(y=y)AND(y=z) C) (x=y=z) D) (x=y)&(y=z)4, 若定义x和y为double类
2、型,则表达式:x=2,y=x+5/2的值是_ A) 4 B) 4.5 C) 4.0 D) 3.05, 设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=ab)&(n=cd)后m,n的值为 ( )A) 0 1 B) 2 2 C) 1 3 D) 2 46, 若二维数组a有m列,则在aij前的元素个数为( )A) j *m +i B)i *m +j C) i*m+j-1 D)i*m+j+17, 下面程序段的运行结果是( )char a7= ”abcdef”;char b4= ”ABC”;strcpy (a , b);printf (“ %c ”,a5 );A) B) 0 C)
3、e D) f 8, 下面程序的功能是将字符串s中所有的字符c删除。请选择填空。# include main ( )char s80;int i, j;gets(s); for (i=j=0 ; si!=0; i+)if (si!=c) _; sj=0;put(s);A) sj+= si B) s+j= si C) si= sj ; D) sj= si 9, 下面判断正确的是 ( )A) char *a =china”; 等价于char *a;*a =”china”;B)char str 10= “china”;等价于char str10; str = “china”;C) char *s=”c
4、hina”;等价于char *s; s =”china”;D)char c4=”abc”,d4=”abc”;等价于char c4 = ”abc”;d=c;10,下面程序段的运行结果是 ( ) char *p = ”abcdefgh ” ;p+=3;printf (“%d n ”, strlen (strcpy ( p , ”ABCD” ) ) );A) 8 B) 12 C) 4 D) 711,为了判断两个字符串s1和s2是否相等,应当使用 ( )A)if (s1= =s2 ) B)if (s1 = s2 )C)if ( strcpy (s1, s2 ) ) D)if ( strcmp ( s1
5、, s2) = = 0 )12, 根据下面的定义,能打印出字母M的语句是 ( )strct person char name9;int age ;struct person class10= “John”,17,“Paul”,19,“Mary”,18,“adam”,16;A) printf (“%c n” , class3.name );B) printf (“%c n” , class3.name1 );C) printf (“%c n” , class2.name1 );D) printf (“%c n” , class2.name0 );13, 语句 int (*ptr)(); 的含义是
6、 ( )A) ptr 是指向一维数组的指针变量 B ) ptr是指向 int 型数据的指针变量C) ptr是指向函数的指针,该函数返回一个 int 型数据 D) ptr是一个函数名,该函数的返回值是指向int 型数据的指针14, 在c语言中下面描述正确的是 ( )A)函数的定义可以嵌套,但函数的调用不可以嵌套B)函数的定义不可以嵌套,但函数的调用可以嵌套C)函数的定义和函数的调用均可以嵌套D)函数的定义和函数的调用均不可以嵌套15, 若k为整型,以下while循环_次。 int k=10; while (k=0) k=k-1;A) 10次 B) 无限循环 C) 一次不执行 D) 执行一次三、程
7、序结果填空:(55)1) 下面程序的运行结果是:#include main( ) char *p , s =”ABCDEFG”;for ( p= s ; *p!=0 ; ) printf (“%s n ” ,p );p+;if(*p!=0) p+;else break;答案 : _2) 下面程序段的运行结果是:char a =”12345”,*p;int s=0;for(p = a;*p!=0; p+) s=10*s+*p-0; printf (“%d n ” , s );答案:_3) 下面程序的运行结果是:main( )int a66, i, j ;for( i=1; i6; i+)for(
8、 j =1; j6 ; j+)aij=(i / j)*(j / i );for( i=1; i6; i+) for(j=1;j6;j+)printf (“%2d ”, ai j);printf (“n”);答案:_4) 下面程序的运行结果是:main( )int a=1,b=2,c=3;+a;c+= + b;int b=4,c;c=b*3;a+ = c;printf (“first :%d , %d , %d n ”,a , b , c );printf (“second :%d , %d n ” , a , b );答案:_5) 下面程序的运行结果是:main() int a6=1,4,12
9、3,12,-45,0; int i, j , t; for(j=0;j5;j+) for( i=0; ia i+1) t= a i; ai= ai+1;ai+1= t;printf (n); for(i=0;i6;i+) printf (% d , ai); 答案:_四、填空:(54)1,下面程序的功能是将已按升序排好序的两个字符串a和b中的字符按升序归并到字符串c中,请把程序填写完整。#includemain ( )char a = “ acegikm ”;char b = ” bdfhjlnpq ”;char c80,*p;int i=0,j=0,k=0;while (ai ! = ” 0
10、 ” & bj ! = 0 )if (ai bj) (1)else (2)k+;ck=0;if (3) p = b + j;else (4);strcat (c ,p );put(c);(1):_(2):_(3):_(4):_2,函数是在二维数组中产生如下形式的扬辉三角形11 11 2 11 3 3 1#define N 11void yahui(int aN) int I,j; for (I=1;IN;I+) aI1=1; (1)=1;for ( (2); IN; I+) for (j=2; (3) ;j+)aIj=(4) +aI-1j;(1):_(2):_(3):_(4):_3某人有5张2分的邮票和5张3分的邮票