2021-2022学年云南省昆明市全国计算机等级考试C语言程序设计真题(含答案).docx
25页2021-2022学年云南省昆明市全国计算机等级考试C语言程序设计真题(含答案)学校:________ 班级:________ 姓名:________ 考号:________一、单选题(12题)1.以下叙述中错误的是( )A.对于double类型数组,不可以直接用数组名对数组进行整体输入或输出 B.数组名代表的是数组所占存储区的首地址,其值不可改变 C.当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息 D.可以通过赋初值的方式确定数组元素的个数 2. 有如下程序 #include<stdio.h> main() { FILE *fpl; fpl=fopen("f1.txt","w"); fprintf(fp1,"abc"); fclose(fp1); } 若文本文件f1.txt中原有内容为:good,则运行以上程序后文件f1.txt中的内容为A.goodabc B.abcd C.abc D.abcgood 3. 在位运算中,操作数每右移一位,其结果相当于 ( )A.操作数乘以2 B.操作数除以2 C.操作数除以16 D.操作数乘以16 4.有以下程序: 程序运行后的输出结果是( )。
A.7 B.10 C.8 D.9 5.有下列程序段:int n,t=1,S=0;scanf("%d",&n);do{s=s+t;t=t-2;while(t!=n);为使此程序段不陷入循环,从键盘输入的数据应该是( )A.任意正奇数 B.任意负偶数 C.任意正偶数 D.任意负奇数 6.广告系统为了做地理位置定向,将IPV4分割为627672个区间,并标识了地理位置信息,区间之间无重叠,用二分查找将IP地址映射到地理位置信息,请问在最坏的情况下,需要查找多少次?()A.17 B.18 C.19 D.20 7.有以下程序#include
A.741 B.963 C.852 D.875421 11.若有定义“int a; long b; double x, y;”,则以下选项中正确的表达式是()A.a=x<>y B.a% (int)(x -y) C.(a*y)%b D.y=x+y=x 12. 若有定义int a=5, b=7;,则表达式a%=(b%2)运算后,a的值为( )A.0 B.1 C.11 D.3 二、2.填空题(12题)13. 以下程序的输出结果是【 】include <stdio.h>void fun(){ static int a=0;a+=2;printf("%d",a);}main(){ int cc;for(cc=1;cc<4;cc++)fun();printf("\n");}14. 有以下程序:void f(int a[],int i,int j){int t;if(i<j){ t=a[i];a[i]=a[j];a[j]=t;f(a,i+1,j-1);}}main(){ int i,aa[5]={1,2,3,4,5};f(aa,0,4);for(i=0;i<5;i++) printf("%d,",aa[i]);printf("\n");}执行后的输出结果是【 】。
15. 下述函数通过递归方法将字符串倒置,使用时需要指定字符数组的首地址、起始下标和终止下标请填空:#include<stdio.h>void fun(char *s,int low,int high){ if(【 】)return;else{char t;fun(【 】);t=s[low];s[low]=s[high];s[high]=t;}}16. 二叉树的遍历可以分为三种:前序遍历、( )遍历和后序遍历17. 在面向对象方法中,类之间共享属性和方法的机制称为______18. 以下程序的输出结果是【 】main(){ char *p[]={"BOOL","OPK","H","SP"};int i;for(i=3, i>=0; i--,i--)printf("%c",*p[i]);printf("\n");}19. 数据库保护分为:安全性控制、______、并发性控制和数据的恢复20. 若有定义:int a[4][4]={{l,2,3,4},{0},{4,6,8,10},{1,3,5,7}},则初始化后,a[2][2]得到的初值是______21. 以下程序的功能是:通过函数func输入字符并统计输入字符的个数。
输入时用字符作为输入结束标志 #include<stdio.h> long( );/*函数说明语句*/ main() {long n; n=func();printf"n=%1d\n",n); } long func() {long m; for(m=0;getchar()!='';( )); return m: }22. fseek函数的正确调用形式是【 】23. 下面的程序实现字符串的复制void copy_string(from,to)【 】;{ for(;*from;from++,to++)*to=*from;【 】;}main(){ char *a="I am wang",*b="you are Li";printf ("%s\n%s\n",a,b);【 】;printf("%s\n%s\n\n",a,b);}24. 下列程序的字符串中各单词之间有一个空格,则程序的输出结果是【 】include <stdio.h>#include <string.h>main(){ char str1[]="How do you do", *p1=str1;strcpy(str1+strlen(str1)/2,"es she");printf("%s\n",p1);}三、3.程序设计题(10题)25. 下列程序定义了N×N的二维数组,并在主函数中自动赋值。
请编写函数fun(int a[][N],int n),该函数的功能是:使数字右上半三角元素中的值乘以m例如,若m的值为2,a数组中的值为a=1 92 7则返回主程序后a数组的值应为2 182 14注意:部分源程序给出如下.请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句试题程序:#include<conio.h>#include<stdio.h>#include<stdlib.h>#define N 5int fun(int a[] [N], int m){}main(){int a[N] [N],m, i, j;clrscr ();printf {"*****The array*****\n");for (i=O; i<N; i++)/*输出一个随机的5×5矩阵*/ { for(j=0; j<N; j++){a[i] [j]=rand()%20;printf("%4d", a[i] [j]);}printf ("\n");}dom=rand () %10;while (m>=3); /*产生一个上于3的随机数*/printf ("m=%4d\n", m);fun (a,m);printf ("THE RESULT\n");for (i=0; i<N; i++){for(j=0;j<N;j++)printf ("%4d",a[i] [j]);printf ("\n");}}26. 请编写一个函数fun(),它的功能是:求出1到m(含m)之内能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。
例如,若传给m的值为50,则程序输出:7 11 14 21 X 28 33 35 42 44 49注意:部分源程序给出如下请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句试题程序:#include<conio.h>#include<stdio.h>#define M 100void fun(int m, int *a, int *n){}main(){int aa[M],n,k;clrscr();fun(50,aa,&n);for(k=0;k<n; k++)if((k+1)%20==0) /*每行输出20个数*/{printf("%4d",aa[k]);printf("\n");}elseprintf("%4d",aa[k]);printf("\n");}27. 请编写函数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);}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{"。





