2022年二级C模拟题 .pdf
第三套1 一、选择题1 关于 C语言数据类型的叙述,正确的是() 。A)枚举类型不是基本类型B)数组不是构造类型C)变量必须先定义后使用D) 不允许使用空类型2以下()是正确的常量。A).E-5 B)1E5.1 C) a12D)32766L 3语句 a=(3/4)+3%2 ;运行后, a 的值为() 。A)0 B)1 C)2 D)3 4. 下面叙述正确的是() 。A)强制类型转换运算的优先级高于算术运算B)若 a 和 b 是整型变量, (a+b)+ 是合法的C) A *B是不合法的D)” A”+”B”是合法的5已知 char a ;使用 scanf()函数输入一个字符给变量a,不正确的函数调用是() 。A)scanf( ”%d ” ,&a); B)scanf( ”%lf ”,&a); C)scanf( ”%c ”,&a); D)scanf( ”%u ”,&a); 6. 若已定义: int a=-36,b=-30,c;则语句 c=ab;运行后c 的值为() 。A)1 B).t. C)0 D).f. 7. 已知 int a= R;则正确的表达式是( ). A)a%10 B)a=int(3e2) C )2*a=a+ D )a=a+a=a+3 8. 对于整型变量x, 下述 if语句()与赋值语句:x=x%2=0?1:0; 不等价A)if (x%2!=0) x=0; else x=1; B )if(x%2) x=1 else x=0; C)if(x%2=0) x=1; else x=0; D )if(x%2=1) x=0; else x=1; 9. 以下程序段运行后,循环体中的”count+=2; ”语句运行的次数为() 。int i,j,count=0; for(i=1;i=4;i+) for(j=1;jnext=p-head;free(p); B)head-next=p; p-next=head-next; free(p); C)free(p);head-next=p;p-next=head-next; D)free(p); head-next=p-next; 19设有如下定义:typedef int *INTEGER; INTEGER p,*q; 则()是正确的叙述。A)p 是 int型变量B)q 是基类型为int的指针变量C)p 是基类型为int的指针变量D)程序中可用INTEGER 代替 int 类型名data next data next data NULL 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 7 页 - - - - - - - - - 第三套3 20以下程序的可执行文件名是file.exe main(argc,argv) int argc; char *argv; int i; for(i=2;iargc;i+) printf(”%s%c ”,argvi,(iargc-1)? : n ); 在 DOS命令行输入: file My C Language and Programming,其输出结果是() 。A)C Language and Programming B )My C Language and Programming C)MyCLanguageandProgramming D )file My C Language and Programming 二、改错题改错题:共2 小题,每题10 分,说明如下:(1)修改程序在每对“/*/”之间存在的错误;(2)不得删改程序中所有的“/*/”注释和其它代码;(3)源程序均在考生文件夹中,务必以原文件名保存程序;(4)按 Alt+Tab键,切换考试程序与Turbo C ;按 Alt+Enter键,切换 Turbo C 窗口大小。1程序 cmody031.c 的功能是:从键盘上输入两个整数,及一个运算符(+、- 、*、/ 或% ) ,进行相应的运算后输出相应的结果。如输入: 1+2 将输出: 1+2=3 #include #include void main() int m,n,result,flag=0; /*/ char ch, /*/ printf(”Input an expression:”); scanf(”%d%c%d”,&m,&ch,&n); /*/ switch ch /*/ case + :result=m+n;break; case - :result=m-n;break; case * :result=m*n;break; case % :result=m%n;break; case / :result=m/n;break; default: printf(”Error!n”);flag=1; if (!flag) printf(”%d %c %d=%dn ”,m,ch,n,result); getch(); 2程序cmody032.c 其功能是将输入的字符串转换成密文,方法为:字母a转换成 f 、 b转换成 e、 e转换成 a、 f 转换成 b,其他字符不变。例如:原文为 table left 100,则密文为 tfela labt 100。#include 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 7 页 - - - - - - - - - 第三套4 #include void main() char s20=”table left 100”,t20; /*/ char tab4,2=a , f , b , e, e, a, f , b;/*/ int i,j=0; strcpy(t,s); while(tj) for(i=0;i=3;i+) if(tj=tabi0) /*/ tj=tabij;/*/ break; j+; printf(”nThe scource string:%sn” ,s); printf(”nThe target string:%sn”,t); getch(); 三、填空题填空题:共3 小题,每题6 分,说明如下:(1)编写程序,补充在每对“/*/”之间的空白处,以完成题目的要求;(2)不得删改程序中所有的“/*/”注释和其它代码;(3)源程序均在考生文件中;务必以原文件名保存程序;(4)按 Alt+Tab键,切换考试程序与Turbo C ;按 Alt+Enter键,切换 Turbo C 窗口大小。1补充程序Ccon031.c ,使其用牛顿迭代法求方程3224360 xxx在 1.5 附近的根。#include #include /*/ /*/ float x,x0,f,f1; x=1.5; do x0=x; f=(2*x0-4)*x0+3)*x0-6; f1=(6*x0-8)*x0+3; x=x0-f/f1; /*/ /*/(fabs(x-x0)=1e-6); printf(”the root is :%.2f n”,x); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 7 页 - - - - - - - - - 第三套5 2. 补充程序Ccon032.c , 使其实现字符串加密,加密的原则是将每个字符的ASCII 码的低四位二进制取反。如输入: exam,则输出 :jwnb 。#include main() /*/ /*/ str20; int i; float x; printf(”Please input a string:n”); scanf (”%s ”,/*/ /*/); i=0; while(stri) stri= /*/ /*/ i+; printf(”n Target string :%sn”,str); getch(); 3. 补充程序Ccon033.c ,其中 main 函数通过调用average 函数计算数组元素的平均值。main() int a5=20,30,45,64,23; float m; /*/ /*/ m=average(a,5); printf(”Average=%fn ”,m); getch(); float average(int pa,int n) int k; float avg=0.0; for(k=0;kn;k+) avg=avg+/*/ /*/; avg=avg/n; return avg; 四、编程题编程题:共2 小题,每题8 分,说明如下:(1)在一对“ /*/”之间编写程序,以完成题目的要求;(2)不得删改程序中所有的“/*/”注释和其它代码;(3)源程序均在考生文件中;务必以原文件名保存程序;(4)按 Alt+Tab键,切换考试程序与Turbo C ;按 Alt+Enter键,切换 Turbo C 窗口大小。1打开考生文件夹中的cprog031.c ,完成其中的函数fun1 ,使其计算:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 7 页 - - - - - - - - - 第三套6 0.95112.55sin7.852xexfunxxxxx如:输入: 4.65 输出 fun1(4.65)=105.48 输入: 5 输出 fun1(5.00)=12.50 输入: 6.12 输出 fun1(6.12)=-0.65 #include #include double fun1(float x) /*/ /*/ void main() float x; double y; clrscr(); printf (”Please input a number: n”); scanf(”%f”,&x); y=fun1(x); printf (”fun1(%.2f)=%.2fn”,x,y); getch(); 2. 打开考生文件夹中的cprog032.c , 完成其中的函数fun(),使程序实现统计101-200 之间的所有素数总个数。#include #include void main() int fun(); int num; num=fun(); printf (” nThe total of prime is :%d” ,num); getch(); int fun() /*/ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 7 页 - - - - - - - - - 第三套7 /*/ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 7 页 - - - - - - - - -