《2023年二级C语言程序设计.docx》由会员分享,可在线阅读,更多相关《2023年二级C语言程序设计.docx(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、二级 C语言程序设计 (模仿)(本试卷考试时间 120 分钟)一、单选题 ( 本大题 10 道小题 ,每小题 1.5 分,共 15 分),从下面题目给出A、B、C、D四个可供选取答案中选取一种对的答案。1.下面四个选项中,均是不合法顾客自定义标记符选项是( )。 A.b-a,for,intB.P-0,do,aC.float,1a0,_AD.-123,temp,INT2.设有double n;从键盘上输入整数给变量n,对的语句是( )。 A.scanf( n );B.scanf( n );C.scanf( %f,n );D.scanf( %lf,&n );3.设a为整型变量,不能对的表达数学关系
2、:10a15 C语言表达式是( )。 A.10a10 & a15D.!(a=15)4.设有定义 int a=1,b=2,c=3;如下语句中执行效果与其他三个不同是( ) A.if(ab) c=a,a=b,b=c;B.if(ab) c=a,a=b,b=c;C.if(ab) c=a;a=b;b=c;D.if(ab) c=a;a=b;b=c;5.如下语句中,循环次数不为10次语句是( )。 A.for(i=1;i10;i+);B.i=1;doi+;while(i0) -i;D.for(i=10;i=1;i-;6.如下一维数组定义中,对的是( )。 A.int a5 = 1,2,3,4,5 ;B.in
3、t a5 = ( 1,2,3,4,5 );C.int a1 to 5;D.int a;7.如下选项中对的语句组是( )。 A.char s;s=BOOK!;B.char *s;s=BOOK!;C.char s10;s=BOOK!;D.char *s;s=BOOK!;8.若有定义语句:double x5=1.0,2.0,3.0,4.0,5.0,*p=x;则错误引用x 数组元素是( )。 A.*pB.x5C.*(p+1)D.*x9.下面构造体定义语句中,错误是( )。 A.struct ord int x;int y;int z;;struct ord a;B.struct ord int x;i
4、nt y;int z; struct ord a;C.struct ord int x;int y;int z; a;D.struct int x;int y;int z; a;10.设有如下程序,若文本文献filea.txt中原有内容为:hello,则运营以上程序后,文献filea.txt中内容变为( )。 #include main( ) FILE *f; f=fopen(filea.txt,w); fprintf(f,abc); fclose(f); A.helloabcB.abcloC.abcD.abchello二、程序填空题 ( 本大题 2 道小题 ,每空 2.5 分,共 20 分)
5、。1. 如下程序功能是:移动一维数组中内容,若数组中有n个整数,规定把下标从m到n-1(mn-1)数组元素平移到数组前面。例如,一维数组中原始内容为1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,m值为7。移动后,一维数组中内容应为8,9,10,11,12,13,14,15,1,2,3,4,5,6,7。#include #define N 80void fun(int *w,int m,int n) int i,j,t; for(i=m; (1) ;i+) /*数组各元素依次向后平移一种位置*/t= (2) ; for(j=n-2;j=0;j-) wj+1= (3) ;
6、 w0=t; main() int aN=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15; int i,m,n=15; printf(The original data:n); for(i=0;in;i+) printf(%4d,ai); printf(nEnter m:); scanf(%d,&m); fun( (4) ); printf(nThe result:n); for(i=0;in;i+) printf(%4d,ai); printf(n); 2. 如下程序功能是:将字符串中下标为奇数字符或ASCII码为偶数字符放入t所指数组中(规定第一种字符放在第0位中)
7、。 例如,字符串中数据为:A2MN8XY,则输出应当是:2N8X。#include #include #define N 80void fun(char *s,char t) int i, (1) ; for(i=0;istrlen(s);i+) if( i%2 | (2) ) tj+=si; tj= (3) ; main() char sN,tN; printf(nPlease enter string s :);gets( (4) ); fun(s,t); printf(nThe result is :%sn,t); 三、操作题(一)程序调试题(3小题,第1、2小题各3处错,第3小题4处错
8、,每改正1处得3分,共30分)1. 程序调试题1调试规定:下列程序涉及 ,请按题中功能规定,调试并修改该程序(在所修改语句后加 字样注释),使其运营能得到对的成果。将成果(涉及 文献和 文献)保存到目录 中。功能阐明:求两个正整数最大公约数最惯用办法是辗转相除法。该办法是以两数中较大数除以较小数,得到余数与本来较小数构成新一对数,再以较大数除以较小数,如此进行下去,直到余数为0为止,则较小数就是最大公约数。程序功能是输入两个正整数,输出它们最大公约数。例如,若输入两个正整数是21和49,则输出最大公约数是:7 。带错误原程序(见C:KSD_3_1.C):#include int main()i
9、nt a,b,c;printf(请输入两个正整数:);scanf(%d%d,&a,&b);if (ab) c=a; a=b; b=c; c=a%b; while ( c=0 ) a=b; b=c;c=ab; printf(最大公约数是:%dn,a);return 0;2. 程序调试题2调试规定:下列程序涉及 ,请按题中功能规定,调试并修改该程序(在所修改语句后加 字样注释),使其运营能得到对的成果。将成果(涉及 文献和 文献)保存到目录 中。功能阐明:输入一种以回车符结束字符串(少于30个字符),过滤掉所有非数字字符后转换成相应十进制整数输出(不考虑整数溢出状况)。例如输入:jdk-7u25-
10、win7,则输出:n=7257 。阐明:字符串jdk-7u25-win7过滤掉所有非数字字符后变成十进制字符串7257,转换成十进制整数是7257 。带错误原程序(见C:KSD_3_2.C):#include int main()char str30;int i,n;printf(请输入一种字符串:);gets(str);n = 1;for (i=0;stri!=0;i+)if ( 0 = stri = 9 )n = n*10 + stri - 0;printf(n=%dn,n);return 0;3. 程序调试题3调试规定:下列程序涉及 ,请按题中功能规定,调试并修改该程序(在所修改语句后加
11、 字样注释),使其运营能得到对的成果。将成果(涉及 文献和 文献)保存到目录 中。功能阐明:入夏标志着春夏季节完毕转换,气候学上入夏原则是必要要连续5天日平均气温达成22或以上,则这连续5天中第一天为入夏日,程序功能是判断5月份与否入夏并输出关于信息。若入夏,则输出在哪一天入夏,否则输出5月没有入夏。阐明:如下程序数组t中存储了某都市5月份一种月日平均气温,数组t中下标为0元素闲置而没有运用,针对程序中给出5月份一种月日平均气温,入夏日为5月16日。带错误原程序(见C:KSD_3_3.C):#include void fun(int a,int n) int i,c; c=0; for (i=
12、1;i 22 ) c+; if ( c=5 ) return i-5;else continue; c=0; return 0;int main() int t32=0,20,21,22,22,19,18,18,19,22,23, 22,21,20,21,20,24,22,25,24,23, 21,23,22,21,22,25,26,30,28,27,28; int d; d=fun(t,31); if ( d=0 ) printf(5月没有入夏n); else printf(5月%d日开始入夏n,d);return 0;(二)编程题(2小题,共35分,其中第1小题15分,第2小题20分)1编
13、程题1编程规定:请按题中功能规定,编写程序并能得到对的成果。将成果(涉及 文献和 文献)保存到目录 中。程序功能:输入整数n(设100n999),以类似读数拼音格式输出该数,拼音中百、十分别使用B、S表达,格式规定参见示例。n为100倍数时不输出十位数与个位数,n为10倍数时不输出个位数,十位数为0而个位数不为0时省略S。运营示例1: 123 1B2S3运营示例2: 908 9B08运营示例3: 560 5B6S2编程题2编程规定:请按题中功能规定,编写程序并能得到对的成果。将成果(涉及 文献和 文献)保存到目录 中。程序功能:按示例格式完毕如下规定。(1)连续输入整数直至-1,整数保存在数组中,设整数个数不超过20个。(2)判断数组中与否存在0 0 161 x y z 255样式数字子串。(3)假如存在,输出x、y和z值,假如不存在输出NO DATA。运营示例1: 0 0 161 36 55 164 255 -1 DATA:36 55 164运营示例2: 0 0 161 0 0 161 164 55 36 255 0 -1 DATA:164 55 36运营示例3: 0 78 0 0 161 55 164 36 250 255 -1 NO DATA