
2022-2023学年山西省大同市全国计算机等级考试C语言程序设计测试卷一(含答案).docx
28页2022-2023学年山西省大同市全国计算机等级考试C语言程序设计测试卷一(含答案)学校:________ 班级:________ 姓名:________ 考号:________一、单选题(12题)1.当一个函数无返回值时,定义它的函数类型应是()A.void B.int C.任意 D.无 2. 按照“先进先出”组织数据的数据结构是( )A.队列 B.栈 C.双向链表 D.二叉树 3. 若有以下定义;char a;int b; float c;double d;则表达式“a*b+d-c”值的类型为( )A.float B.int C.char D.double 4. 有以下程序:main{ int num[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,12,},{13,14,15,16}},i,j;for(i=0;i<4;i++){ for(j=0;j
A.i-1 B.i C.i+1 D.4一i 5.若有定义int?x,y;并已正确给变量赋值, 则以下选项中与表达式(x- y)? (x+ +): (y+ +)中的条件表达式(x- y)等价的是( )A.(x- y<0|x-y>0) B.(x- y<0) C.(x-y>0) . D.(x-y==0) 6.有以下函数int fun(char*X,char*y){ int n=0; while((*x= = =*y)*x!=\O){x++; y++; n++;} return n;}函数的功能是( )A.查找X和y所指字符串中是否有\o B.统计x和Y所指字符串中最前面连续相同的字符个数 C.将Y所指字符串赋给X所指定存储空间 D.统计X和Y所指字符串中相同的字符个数 7.有以下程序:#include <stdio.h>main(){int s[12]=(1,2,3,4,4,3,2,1,1,1,2,3} ,c[5]={0},i;for(i=0; i<12; i++) c[s[i]] ++; for(i=1; i<5; i++) printf(“%d ”,c[i]);printf(“\n”);}程序的运行结果是()。
A.2 3 4 4 B.4 3 3 2 C.1 2 3 4 D.1 1 2 3 8.若有语句“typedef struct S { int g; char h; } T;”,则下列叙述中正确的是()A.可用S定义结构体变量 B.可用T定义结构体变量 C.S是struct类型的变量 D.T是struct S类型的变量 9.下面算法的时间复杂度为()A.O(1) B.O(n) C.O(n*n) D.O(n!) 10.程序运行后的输出结果是( )A.3 B.4 C.5 D.6 11. 下列表达式中,可以正确表示的关系是( )A.(x>=1)10(x<=0) B.x>1‖x=0 C.x>=1 ORx<=0 D.X>=1&&x<=0 12.计算机识别.存储和加工处理的对象被统称为_________A.数据 B.数据元素 C.数据结构 D.数据类型 二、2.填空题(12题)13. 下列程序段的输出结果是【 】main(){char b[]="Hello,you";b[5]=0;printf("%s\n",B);}14. 以下程序中给指针p分配三个double型动态内存单元,请填空 include<stdio.h>main (){ dOuble *p;p=(double*)malloc( );p[0]=1.5;p[1]=2.5;p[2]=3.5printf("%f%f%f\n",p[0],p[1],p[2]);}15. 设变量已正确定义为整型,则表达式n=i=2,++i,i++的值为【 】。
16. 在最坏情况下,冒泡排序的时间复杂度为【 】17. 以下程序运行后的输出结果是【 】main(){ int i,j,a[][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)for(j=i+1;j<3;j++)a[j][i]=0;for(i=0;i<3;i++){ for(j=0;j<3;j++)printf("%d",a[i][j]);printf("\n");}}18.下列程序运行时输入1234567<CR>,则输出结果是______include<stdio.h>main(){ int a=1,b;scanf("%2d%2d",&a,&b);printf("%d %d\n", a,b);}19. 下列程序输出的结果是______int m=17;int fun(int x,int y){ int m=3;return(x*Y-m);}main(){ int a=5,b=7;printf("%d\n",fun(a,B) /m);}20. 软件的可移植性是用来衡量软件【 】的重要尺度之一21. 以下程序的运行结果是:【 】include <stdio.h>#include <string.h>char *ss(char *s){ return s+strlen(s)/2; }main(){ char *p,*str="abcdefgh";p=ss(str);printf("%s\n",p);22. 下列程序的运行结果是______。
main(){ int s=0,i=1;while(s<=10){ s=s+i*i;i++;}printf("%d",--i);}23. 一个模块直接访问另一个模块的内容,称为【 】藕合24. 以下sstrcpy()函数实现字符串复制,即将t所指字符串复制到s所指向内存空间中,形成一个新的字符串svoid sstrcpy(char *s,char *t){ while(*s++=______); }main(){ char str1[100],str2[]="abcdefgh";sstrcpy(str1,str2);printf("%s\n",str1);}三、3.程序设计题(10题)25. 请编写函数fun(),其功能是:计算并输出下列多项式的值S=1+4/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+n)例如,着主函数从键盘给n输入50后,则输出为 S=1.960784注意:部分源程序给出如下请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句试题程序:#include <stdio.h>double fun(int n){}main (){int n;double s;printf ("\nInput n: ");scanf ("%d", &n);s=fun (n);printf ("\n\ns=%f\n\n", s);}26. 请编写函数fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。
二维数组中的值在主函数中赋予例如:二维数组中的值为:1 3 5 7 92 9 9 9 46 9 9 9 81 3 5 7 0则函数值为61注意:部分源程序存在文件PROGl.C文件中请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句27. 下列程序定义了NXN的二维数组,并在主函数中自动赋值请编写函数fun(int a[][N]),该函数的功能是使数组右上半三角元素中的值全部置成0例如a数组中的值为a=4 5 61 7 93 2 6,则返回主程序后a数组中的值应为0 0 01 0 03 2 0注意:部分源程序给出如下请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句试题程序:#include<conio.h>#include<stdio.h>#include<stdlib.h>#define N 5int fun(int a[ ][N]){ }main(){int a[N][N],i,j;clrscr( );printf("*****The array*****\n");for(i=0;i<N;i++)/*产生—个随机的5*5矩阵*/{for(j=0;j<N;j++){a[i][j]=rand( )%10;printf (“%4d”,a[i][j]);}printf(“\n”);}fun(a);printf(“THE RESULT\n”);for(i=0;i<N;i++){ for(j=0;i<N;j++)printf(“%4d”,a[i][j]);printf(“\n”);}}28. 请编写一个函数fun(),它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较K的字符串。
若两个字符串长度相等,则返回第1个字符串例如,输入beijing<CR>shanghai<CR>(<CR>为回车键),函数将返回shanghai注意:部分源程序给出如下请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句试题程序:#include<stdio.h>char *fun(char *s, char *t){}main(){char a[20],b[10],*p,*q;int i;printf ("Input 1th string: ");gets(a);printf{"Input 2th string: ");gets(b);printf("%s",fun(a,b));}29. 假定输入的字符串中只包含字母和*号请编写函数 fun(),它的功能是:除了尾部的,:号之外,将字符串中其他*号全部删除形参p已指向字符串中最后一个字母在编写函数时,不得使用C语言的字符串函数 例如,若字符串中的内容为****A*BC*DEF*G******,删除后,字符串中的内容应当是ABCDEFG******注意:部分源程序给出如下请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:#include<conio. h>#include<stdio. h>void fun(char *a, char *p){}main ( )char s[81],*t;printf ("Enter a s。
