2021-2022学年河北省保定市全国计算机等级考试C语言程序设计测试卷(含答案)
学校:________ 班级:________ 姓名:________ 考号:________
一、单选题(12题)
1. 下面程序的运行结果是 ( ) # include<stdio.h> # include<string.h> main( ) { char * a="AbcdEf",* b="aBcD" a + +;b + +; printf("%d\n",strcmp(a,b)); }
A.0 B.负数 C.正数 D.无确定值
2.若一组记录的排序码为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为()
A.38,40,46,56,79,84
B.40,38,46,79,56,84
C.40,38,46,56,79,84
D.40,38,46,84,56,79
3.下面结构中最适于表示稀疏无向图的是()。
A.邻接矩阵 B.逆邻接表 C.邻接多重表 D.十字链表
4.在C语言程序中,main函数的位置()
A.必须作为第一个函数 B.必须作为最后一个函数 C.可以任意 D.必须放在它所调用的函数之后
5.有以下程序
#include<stdio.h>
int f(int x,int y)
{return()y-x)*x);}
main()
{int a=3,b=4,c=5,d;
字符串函数putsd=f(f(a,b),f(a,c));
printf(“%d\n”,d);
}
程序运行后的输出结果是
A.10 B.9 C.8 D.7
6.若有定义;int w[3][5];,则以下不能正确表示该数组元素的表达式是( )。
A.*(*w+3) B.*(w+1)[4] C.*(*(w+1)) D.*(&w[0][0]+1)
7.若有定义语句“char *s1=“OK”, *s2=“ok”;”,以下选项中,能够输出“ OK”的语句是()。
A.if(strcmp(s1,s2)!=0) puts(s2);
B.if(strcmp(s1,s2)!=0) puts(s1);
C.if(strcmp(s1,s2)==1) puts(s1);
D.if(strcmp(s1,s2)==0) puts(s1);
8.
9. 下面程序的运行结果是( )。 #include<stdio.h> main() { int y=10; do{y--;}while(--y); printf("%d\n",y--); }
A.-1 B.1 C.8 D.0
10. 设已包含头文件<string.h>, 下列程序段的运行结果是( )。 char s1[]={"ACDEF"}; char s2[]="ABC"; strcpy(s1,s2); printf("%d",strlen(s1));
A.3 B.4 C.6 D.5
11.有以下定义:
struct person { char name[10] ; int age; };
struct person class[10]={“Johu”,17,“Paul”,19,“Mary”,18,“Adam”,16,};
能输出字母M的语句是()。
A.printf(“%c \n”, class[2]. name[0]);
B.printf(“%c \n”, class[3]. name[0]);
C.printf(“%c \n”, class[3]. name[1]);
D.printf(“%c \n”, class[2]. name[1]);
12.对于int*pa[5];的描述,()是正确的。
A.pa是一个指向数组的指针,所指向的数组是5个int型元素
B.pa是一个指向某数组中第5个元素的指针,该元素是int型变量
C.pa是一个具有5个元素的指针数组,每个元素是一个int型指针
D.pa[5]表示某数组的第5个元素的值
二、2.填空题(12题)
13. 以下程序段的输出结果是【 】。
int a=1234;
printf("%2d\n",a);
14. 若想通过以下输入语句使a=5.0,b=4,c=3,则输入数据的形式应该是【 】。
int b,c; float a;
scanf("%f,%d,c=%d",&a,&b,&c)
15. 以下程序输出矩阵中值为。的元素的行下标和列下标。行下标和列下标分别放在同一下标的r和c数组元素中。程序通过调用随机函数给矩阵赋值。
#define N 5
#include <stdlib.h>
main()
{ int a[N][N],i,j,c[N*N],r[N*N],n;
for(i=0,i<N;i++)
for(j=0;j<N;j++)a[i][j]=rand()%5;
n=gindex( 【 】 );
printf("\n\nThe result:\nn=%d\n",n);
for(i=0;i<n;i++)printf("%4d%4d\n",r[i],c[i]);
}
int gindex(int(*p)[N],int *c,int *r)
{ int i,j,k;
【 】 ;
for(i=0;i<N,i++)
for(j=0;j<N;j++)
if( 【 】 ==0)
{ r[k]=i;c[k]=j; 【 】 ; }
return 【 】 ;
}
16. 以下程序段的输出结果是【 】。
main()
{int a=2,b=2,c=4;
a*=16+(b++)-(++C);
printf("%d",a);
}
17. 函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
其构成规律是,第0列元素和主对角线元素均为1,其余元素为其左上方和正上方元素之和,数据的个数每行递增1。请将程序补充完整。
#defint N 6
void YangHui(int*[N][N])
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论