
2021-2022学年湖北省随州市全国计算机等级考试C语言程序设计测试卷一(含答案).docx
27页2021-2022学年湖北省随州市全国计算机等级考试C语言程序设计测试卷一(含答案)学校:________ 班级:________ 姓名:________ 考号:________一、单选题(12题)1.以下关于简单程序设计的步骤和顺序的说法中正确的是( )A.确定算法后,整理并写出文档,最后进行编码和上机调试 B.首先确定数据结构,然后确定算法,再编码,并上机调试,最后整理文档 C.先编码和上机调试,在编码过程中确定算法和数据结构,最后整理文档 D.先写好文档,再根据文档进行编码和上机调试,最后确定算法和数据结构 2.3.设有以下函数“void fun(int n, char * s){…}”,则下列对函数指针的定义和赋值均正确的是()A.void (*pf)(int,char); pf=&fun; B.void * pf( ); pf=fun; C.void * pf( ); * pf=fun; D.void (*pf)(int, char *); pf=fun; 4.5.有下列程序:main{int i,j,x=0;for(i=0,i<2;i++){x++;for(j=0;j<=3;j++){if(j%2)continue;x++:}x++:}printf("x=%d\n",x);}程序执行后的输出结果是( )。
A.x=4 B.x=8 C.x=6 D.x=12 6.广义表(a,b,c,d)的表尾是()A.a B.(a) C.(b,c,d) D.((b,c,c)) 7. 有以下程序:#include <stdlo.h>main( ){ FILE * fp; int i,k,n; fp = fopen( "data. dat" ,"w +" ) for(i = 1 ;i<6;i ++ ) { fprintf(fp."% d",i); if(i%3 ==0)fprintf(fp," \n"); } rewind(fp); fscanf(fp." % d% d" ,&k, &n) ;printf(" % d%d \n" ,k,n); fclose(fp);A.0 0 B.123 45 C.1 4 D.1 8.在长度为n的顺序存储的线性表中,删除第i个元素(1≤i≤n)时,需要从前向后依次前移____个元素A.n-i B.n-i+1 C.n-i-1 D.i 9.C语言中,要求参加运算的数必须是整数的运算符是()A./ B.! C.% D.== 10.11.有以下程序:#include <stdio.h>main(){int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;for(i=0; i<3; i++)for(j=i; j<=i; j ++) t+=b[i][b[j][i]];printf(“%d\n”,t);}程序的运行结果是()。
A.3 B.4 C.1 D.9 12.有以下程序:#include <stdio.h>void fun (int n){if( n/2) fun(n/2);printf(“%d”, n%2);}main(){fun(10); printf(“\n”); }程序运行后的输出结果是()A.0101 B.1000 C.1100 D.1010 二、2.填空题(12题)13. 以下程序运行后的输出结果是【 】 define S(x) 4*x*x+1main(){ int i=6,j=8;printf("%d\n",S(i+j));}14. 下列程序的输出结果是【 】include <stdio.h>int fun(int x, int y){ static int m 0,i=2;i+=m+1;m=i+x+y;return m;}main(){ int j=4,m=1,k;k=fun(j,m); printf("%d,",k);k=fun(j,m); printf("%d\n",k);}15. 设x和y均为int型变量,且x=1,y=2,则表达式2.0+y/x的值为【 】16. 有以下程序:float f1(float n){ return n*n; }float f2(float n){ return 2*n; }main(){ float(*p1)(float),(*p2)(float),(*t)(float),y1,y2;p1=f1;p2=f2;y1=p2(p1(2.0));t=P1;p1=p2;p2=t;y2=p2(p1(2.0));printf("%3.0f,%3.0f\n",y1,y2);}程序运行后的输出结果是【 】。
17. 以下程序输出的结果是______mazn(){ int a=5,b=4,c=3,d;d=(a>b>C) ;printf("%d\n",D) ;}18. x和y都是double型变量,x的初值为4.0,y的初值为2.0,则表达式pow(y, fabs(x))的值为______19. 在面向对象方法中,【 】描述的是具有相似属性与操作的一组对象20. 下面程序的运行结果是【 】include <stdio.h>#define N 10#define s(x) x*x#define f(x) (x*x)main(){ int i1,i2;i1=1000/s(N); i2=1000/f(N);printf("%d %d\n",i1,i2);}21. 以下程序的定义语句中,x[1]的初值是【 】,程序运行后输出的内容是【 】 #include
23.在面向对象程序设计中,从外面看只能看到对象有外部特征,而不知道也无需知道数据的具体结构以及实现操作的算法,这称为对象的______24. 下列程序的功能是把从终端读入的文本(用@作为文本结束标志)输出到一个名为 bi.dat的新文件中include "stdio.h"FILE *fp;{ char ch;if((fp=fopen("bi.dat","w"))==NULL)exit(0);while(______)fputc(ch,fp);______;}三、3.程序设计题(10题)25. 下列程序定义了NXN的二维数组,并在主函数中赋值请编写函数fun(),函数的功能是求出数组周边元素的平方和并作为函数值返回给主函数中的S例如:若a数组中的值为a=0 1 2 7 91 11 21 5 52 21 6 11 19 7 9 10 25 4 1 4 1 则返回主程序后s的值应为310注意:部分源程序给出如下请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句试题程序:#include<stdio.h>#include<conio.h>#include<stdlib.h>#define N 5int fun (int w[][N]){}main(){ int a[N)[N]={0,1,2,7,9,1,1l,2l,5,5,2, 21,6,11,1,9,7,9,10,2,5,4,1,4,1};int i,j;int S;clrscr( );printf("*****The array***+*\n");for (i=0; i<N; i++){for(j=0;j<N;i++){printf(“%4d”,a[i][j]);}printf("\n");}s=fun(a);printf(“*****THE RESULT*****\n”);printf("The sum is:%d\n",s);}26. 请编写一个函数fun,它的功能是:根据以下公式求π的值(要求满足精度0.0005,即某项小于0.0005时停止迭代):程序运行后,如果输入精度0.0005,则程序输出为3.140578。
注意:部分源程序存在文件PROGl.C文件中请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句27. 请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)例如,若输入字符串“-1234”,则函数把它转换为整数值-1234注意:部分源程序存在文件PROGl.C文件中请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句28. 假定输入的字符串中只包含字母和*号请编写函数 fun(),它的功能是:使字符串中前部的*号不得多余n个;若多余n个,则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除例如,字符串中的内容为****A*BC*DEF*G*******,若 n的值为2,删除后,字符串中的内容则应当是 **A*BC*DEF*G*******;若n的值为4,则字符串中的内容仍为****A*BC*DEF*G******n的值在主函数中输入在编写函数时,不得使用C语言提供的字符串函数注意:部分源程序给出如下请勿改动主函数main 和其他函数中的任何内容,仅在函数fun 的花括号中填入所编写的若干语句。
试题程序:#include <stdio.h>#include <conio.h>void fun (char Aa, int n){}main (){ char s[81];int n;printf ("Enter a string : \n") ;gets (s);printf ("Enter n : "); scanf ("%d", &n);fun( s,n );printf("The string after deleted :\n");puts (s);}29. 请编写一个函数void fun(cbara [], charb [], int n),其功能是:删除一个字符申中指定下标的字符其中,a指向原字符串,删除后的字符串存放在b所指的数组中,n中存放指定的下标例如,输入一个字符串world,然后输入3,则调用该函数后的结果为word注意:部分源程序给出如下请勿改动主函数main 和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句试题程序:# include <stdio.h># include <conio.h>。












