《高级语言程序设计试题一》 、单项选择题(每题1分,共20分) 1、设inta=2,b=2;则++a+b的结果是() B、3 2、运算符&&代表() A、按位与 B、逻辑与C、取地址D、逻辑或 3、为了避免嵌套的if-else语句的二义性,c语言规定else总是与()组成配对关系 A、缩排位置相同的if B、在其之前未配对的if C、在其之前未配对的最近的ifD、同一行上的if 4、下列do- while循环的循环次数为() 已知:inti=5 do{ printf("%dIn”,i i while(il=0) A、0 B、1 C、5 无限 5、已知: int a b;用语句 scanf(“%d%d”&a&b):输入a,b的值时,不能作为 输入数据分隔符的是() A B、空格 C、回车 D、[TAB] 6、调用函数 [strlen(“ abcd \Oef\0g”)的返回值是() A、9 B、7 C、6 D、4 7、当一个函数无返回值时,函数的类型应定义为() A、void B、任意 无 8、在一个被调用函数中,关于 return语句使用的描述,错误的是() A、被调用函数中可以不用 return语句 B、被调用函数中可以使用多个 return语句 C、被调用函数中,如果有返回值,就一定要有 return语句 D、被调用函数中,一个reum语句可返回多个值给调用函数 9.设a=1.b=2,c=3,d=4,则表达式:a>1)的值是 B、2
《高级语言程序设计试题一》 一、单项选择题(每题 1 分,共 20 分) 1、设 int a=2,b=2; 则++a+b 的结果是( ) A、2 B、3 C、4 D、5 2、运算符&&代表( ) A、按位与 B、逻辑与 C、取地址 D、逻辑或 3、为了避免嵌套的 if-else 语句的二义性,c 语言规定 else 总是与( )组成配对关系。 A、缩排位置相同的 if B、在其之前未配对的 if C、在其之前未配对的最近的 if D、 同一行上的 if 4、下列 do-while 循环的循环次数为( ) 已知: int i=5; do { printf(“%d\n”,i--); i--; } while (i!=0); A、0 B、1 C、5 D、无限 5、已知: int a,b;用语句scanf(“%d%d”,&a,&b);输入a,b的值时,不能作为 输入数据分隔符的是( ) A、 , B、空格 C、回车 D、[TAB] 6、调用函数strlen(“abcd\0ef\0g”)的返回值是( ) A、9 B、7 C、6 D、4 7、当一个函数无返回值时,函数的类型应定义为( ) A、void B、任意 C、int D、无 8、在一个被调用函数中,关于return语句使用的描述,错误的是( ) A、被调用函数中可以不用return语句 B、被调用函数中可以使用多个return语句 C、被调用函数中,如果有返回值,就一定要有return语句 D、被调用函数中,一个return语句可返回多个值给调用函数 9.设a=1,b=2,c=3,d=4,则表达式:a>1)的值是 A、0 B、2 C、4 D、8
14、有一个int型变量,在程序中频繁使用,最好定义它为() auto C、 extern 已知:int*p,a;则语句“p=&a,”中的运算符“&”的含义是() A、位与运算B、逻辑与运算C、取指针内容D、取变量地址 16.以下程序运行后,a的值是 D、运行时出错,a无定值 i int a, k=4, m=6, pl=&k, *p2=&m printf( 17.若已定义intb{8*p=b,则对数组元素b4]地址的非法引用为 A、p+4 B、&b+4 C、&bOH+4D、b+4 18.若有以下说明,则对初值中整数2的引用方式是 struct xxx char ch int I double x;}ar[3][3F={{‘a’,3,45},{“b’,2,7.98},(‘c’,3,1,93}; A、aro[lchB、 arr0][l]iC、 arr[OJo]i D、aro[2Ji 19、已知:char*a2]=(“abcd”,“ABCD”};则以下说法正确的是() A、aa数组元素的值分别是“abcd”和“ABCD B、a是指针变量,它指向含有两个数组元素的字符型一维数组 C、a数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址 D、aa数组的两个元素中各自存放了字符a'和A的地址 0、当顺利执行了文件关闭操作时, fclose函数的返回值是() B、TRUE 二、多项选择题(下列各题中,有一个或多个正确答案,多选或少选均不得分。每题2分, 共10分) 1、以下标识符中不合法的是() A、pab B、a#b 2、已知: char a[20],b[20];则以下正确的输入语句是() A、gets(a,b); B、 scanf(%s%os”a,b) C、 scanf(%s%s”,&a,&b) D、gets(a),gets(b); E、 getchar(ab) 3、已知: double 'p[6]:它的含义是() A、p是指针数组 B、p是数组指针 C、p是含有6个元素的一维数组,数组中每个元素都是指向 double型变量的指针 D、p是 double型数组 E、p是一个指向数组的指针 4、已知:inti,x[3][4]:则能将x[l的值赋给变量i的语句是() A、i=*(*(x+1)+1)B、i=x[1[1]C、=*(*(x+1)D、i=*(x[]+1)E、i=x[+1 5、设有以下说明语句 struct stu
14、有一个 int 型变量,在程序中频繁使用,最好定义它为( ) A、register B、auto C、extern D、static 15、已知:int *p, a;则语句“p=&a; ”中的运算符“&”的含义是( ) A、位与运算 B、逻辑与运算 C、取指针内容 D、取变量地址 16.以下程序运行后,a的值是 A、4 B、1 C、0 D、运行时出错,a无定值 main() { int a,k=4,m=6,*p1=&k,*p2=&m; a=p1==&m; printf(“%d”,a); } 17.若已定义int b[8],*p=b;则对数组元素b[4]地址的非法引用为 A、p+4 B、&b+4 C、&b[0]+4 D、 b+4 18.若有以下说明,则对初值中整数2的引用方式是 struct xxx{ char ch; int i; double x;} arr[3][3]={{‘a’,3,45},{‘b’,2,7.98},{‘c’,3,1.93}}; A、arr[0][1].ch B、 arr[0][1].i C、arr[0][0].i D、arr[0][2].i 19、已知:char *aa[2]={“abcd”, “ABCD”};则以下说法正确的是( ) A、aa 数组元素的值分别是“abcd”和“ABCD” B、aa 是指针变量,它指向含有两个数组元素的字符型一维数组 C、aa 数组的两个元素分别存放的是含有 4 个字符的一维字符数组的首地址 D、aa 数组的两个元素中各自存放了字符’a’和’A’的地址 20、当顺利执行了文件关闭操作时,fclose 函数的返回值是( ) A、-1 B、TRUE C、0 D、1 二、多项选择题(下列各题中,有一个或多个正确答案,多选或少选均不得分。每题 2 分, 共 10 分) 1、 以下标识符中不合法的是( ) A、pab B、a#b C、int D、2_and E、abc 2、已知:char a[20], b[20];则以下正确的输入语句是( ) A、gets(a, b); B、scanf(“%s%s”,a, b); C、scanf(“%s%s”, &a, &b); D、gets (a), gets(b); E、getchar(a,b); 3、已知:double *p[6];它的含义是( ) A、 p 是指针数组 B、p 是数组指针 C、p 是含有 6 个元素的一维数组,数组中每个元素都是指向 double 型变量的指针 D、 p 是 double 型数组 E、p 是一个指向数组的指针 4、已知:int i, x[3][4];则能将 x[1][1]的值赋给变量 i 的语句是( ) A、i=*(*(x+1)+1) B、i=x[1][1] C、i=*(*(x+1)) D、i=*(x[1]+1) E、i=x[1]+1 5、设有以下说明语句: struct stu { int a;
float b A stutype 则下面叙述中正确的是() A、 struct是结构类型的关键字 B、 struct stu是用户定义的结构类型 C、 stutype是用户定义的结构类型变量名D、a和b都是结构成员名 E、 stutype是结构体类型名 判断对错题(每题1分,共5分) 1、C语言程序的基本结构单位是语句。 2、c语言变量名的第一个字符必须是字母、数字、下划线中的任意一种 3、 sizeof( double是一种函数调用。 4、 break语句不能用于循环语句和 switch语句外的任何其它语句。 5、intm=7;am]是正确的数组定义 四、阅读下面的程序,写出程序的执行结果(每题3分,共15分) i int x,y, Z; x=;y=3 z++x+(++y); 2、 maino nta[10={1,2,3,-45.6,7,-89,10},s=0 for(inti=0;i<10;1++) break. printf("%d"s); 3、main( f int a=24, b=16, r while(b) i r=a%b; f char s[10="abcdef" printf("%c p++) printf("%c "*p--)
float b; } stutype; 则下面叙述中正确的是( ) A、struct 是结构类型的关键字 B、struct stu 是用户定义的结构类型 C、stutype 是用户定义的结构类型变量名 D、a 和 b 都是结构成员名 E、stutype 是结构体类型名 三、判断对错题(每题 1 分,共 5 分) 1、C语言程序的基本结构单位是语句。 2、c语言变量名的第一个字符必须是字母、数字、下划线中的任意一种。 3、sizeof(double)是一种函数调用。 4、break语句不能用于循环语句和switch语句外的任何其它语句。 5、int m=7;a[m];是正确的数组定义。 四、阅读下面的程序,写出程序的执行结果(每题 3 分,共 15 分) 1、main() { int x,y,z; x=1;y=3; z=++x+(++y); printf("%d",z); } 2、main() { int a[10]={1,2,3,-4,5,6,7,-8,9,10},s=0; for(int i=0;i<10;i++) { if (a[i]<0) break; s+=a[i]; } printf("%d",s); } 3、main() { int a=24,b=16,r; while (b) { r=a%b; a=b; b=r; } printf("%d",a); } 4、main() { char s[10]="abcdef"; char *p=s; printf("%c ",*p++); p++; p++; printf("%c ",*p--);
printf("%c"*--p i int x,y, z printf("%d, %d, "x,y); printf(%od, %dn",y, z) 五、填空题(每空2分,共20分) 1.以下程序不借助任何变量把a、b中的值进行交换。请填空。 #include i int a, b printf(“ input a, b”) scanf(“%d%d”,&a&b) )b=a( printf( a=%od b=%d n", a,b) 2有以下定义和语句,则 Sizeof(a)的值是( ),而 I sizeof( a share)的 值是( struct date int day int mouth Int union int share 1 float share ishare 3.函数fun的功能是:使一个字符串按逆序存放。请填空。 void fun( char strD i char m; int ij for( F0,strlen(str); K<( )i++j-) r[]; strF( s-1]=m;} printf(“%sin”,str) 4.设ik均为nt型变量,则执行完下面的for循环后,k的值是( k=i+ J 5.条件“20<X<30或x<-100的C语言表达式是( 6.以下程序的输出结果是( #define MAX(x,y)(xP(y)? (x): (y) mainO {inta=5,b=2,c=3,d=3,t; t=MAX(a+b, c+d)*10
printf("%c ",*--p); } 5、main() { int x,y,z; x=y=z=3; y=x++-1; printf("%d,%d,",x,y); y=z--+1; printf("%d,%d\n", y,z); } 五、填空题(每空 2 分,共 20 分) 1.以下程序不借助任何变量把a、b中的值进行交换。请填空。 #include main() { int a,b; printf(“input a,b”); scanf(“%d%d”,&a,&b); a+=( );b=a-( );a-=( ); printf(“a=%d b=%d\n”,a,b); } 2.有以下定义和语句,则sizeof(a)的值是( ),而sizeof(a.share)的 值是( )。 struct date { int day; int mouth; int year; union { int share1; float share2; }share; }a; 3. 函数fun的功能是:使一个字符串按逆序存放。请填空。 void fun(char str[]) { char m; int i,j; for( i=0,j=strlen(str);i(y)?(x):(y) main() { int a=5,b=2,c=3,d=3,t; t=MAX(a+b,c+d)*10;
printf( %d In”,t) 六、编写程序题(共30分) 1、编程打印如下形式的九九表(4分) 234 2、编写一个函数,计算N!(5分) 3、求二维数组叫[34]中各元素的平均值。各元素的值在main(中输入。(6分) 4、设计一个函数,对10个字符串数按由小到大顺序排序。字符串的输入和输出 都在man函数中进行。(7分) 5、编写函数fun,它的功能是:计算并输出下列级数的和。部分程序已给出。 (8分) S=1/1*2+1/2*3+……+1/n(n+1) 例如,当n=10时,函数值为0909091。 部分程序如下: double fun(int n) maI i printf(%fn,, fun(10)))
printf(“%d\n”,t); } 六、编写程序题(共 30 分) 1、 编程打印如下形式的九九表 (4 分) 1 2 4 3 6 9 4 ………… 16 . . . . 9 18 …………. 81 2、 编写一个函数,计算 N! (5 分) 3、 求二维数组 a[3][4]中各元素的平均值。各元素的值在 main()中输入。 (6 分) 4、 设计一个函数,对 10 个字符串数按由小到大顺序排序。字符串的输入和输出 都在 main 函数中进行。(7 分) 5、编写函数 fun,它的功能是:计算并输出下列级数的和。部分程序已给出。 (8 分) s=1/1*2+1/2*3+……+1/n(n+1) 例如,当 n=10 时,函数值为 0.909091。 部分程序如下: #include #include double fun(int n) { } main() { printf(“%f\n”,fun(10)); }