《C语言模拟题目及答案(6页).doc》由会员分享,可在线阅读,更多相关《C语言模拟题目及答案(6页).doc(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-C语言模拟题目及答案-第 6 页一选择题:1设float x,y;则以下不合法的赋值语句是_。 x*=y+8; x=y=0; +x; y=(x%2)/10; 2. 设int k=017,g=111; 执行语句printf(%d,%x,k,g); 的输出是_。 15,6f f,6f f,111 15,111 3. 对语句for(i=0; ; i+);可理解为_。 for(i=0;0;i+); for(i=0;!0;i+); for(i=0;34;i+); for(i=0;!5;i+); 4. 下面对数组的初始化,错误的是_。 char s5=abc; char s5=a,b,c; char s
2、5= ; char s5;s=abc; 5. 设有程序段:int k=10;while(k=0)k=k-1;则下面描述中正确的是_。 是无限循环 while循环执行10次 循环体语句一次也不执行 循环体语句只执行一次 6. 如果x为int型且为5,则执行if(x-=0;i-) ai=i+5; 后,a8的值为_。 4. 在C语言中是没有输入输出语句的,而是通过提供库函数_和printf来完成输入输出功能的。 5. 已知字母A的ASCII码值为65,ch1和ch2均为字符型变量,且ch1=A,ch2=B,则printf(%c,%c,ch1,ch2-ch1+A);语句输出结果是_。 6. 假定有以下
3、变量定义: int k=7, x=12; 在空白处填入运算符使表达式的值为3:(x%=k)_(k%=5) 。 7. 若i是整型变量,执行语句for(i=1;i5_x-5。 10. 请填空,完善如下语句:char a_=Hello;。 答案:1.3 2.120 3.13 4.scanf 5.A,B 6.- 7.*#*#*#*# 8.15 9.11 10.6三判断题:1.所有的变量在使用前都必须予以定义。 2. 设x和y均为int型变量,且x=1,y=2,则表达式1.0+x/y的值为1.5。 3. 在switch结构中,break语句可使流程立即跳出switch语句体。 4. 已定义int i;
4、则for(;i=1;)printf(*);中的循环体必执行无穷多次。 5.空语句是合法的C语句。 6. 以下程序段可以输出10个整数:for(i=0 ;i=9; printf(%dn,i+=2); 7.在main函数中定义的变量称为全局变量。 8. while语句的循环体中还可以包含for循环。 9. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是由实参传给形参,再由形参传回实参。 10. 先要定义一个二维数组cMN来存放字符串China、Tianjin、Education,则常量M和N的合理取值应为3和10。 答案:T F F T T F F T F T4. 读程序,写结
5、果。 1)指出程序运行结果。# include stdio.hmain() int x,a,b,c,d,e; char ch; x=100; a=40; b=30; c=20; d=10; e=0; ch=a; if (ad) else if (ch) if (e) x+=1; x+=x; if (x) x*=2; else x-=x; printf(%dn,x);答案:400 2). 整个程序运行结果是: #include stdio.hmain() char ch=a; int x=10; while (ch0); printf(n);答案:a,c,e,g,i,8,7,5,4,2,15.
6、改错:给定程序k:m.c中函数 fun 的功能是:把在字符串s中出现的每个字符, 紧随其后重复出现一次,放在一个新串t中,t中字符按原字符串中逆排列。例如:当s中的字符串为:ABCDE时, 则t中的字符串应为:EEDDCCBBAA。注意:只能改动*found*下一行,不要改动main函数,不得增行或删行,也不得更改程序的结构!/* m.c 答案*/#include #include void fun (char s, char t) int i, sl; sl=strlen(s);/*found*/ for(i=0;isl;i+) t2*i=ssl-i-1;/*found*/ t2*i+1=s
7、sl-i-1;/*found*/ t2*i=0; main() char s100, t100; printf(nPlease enter string s:); scanf(%s, s); fun(s, t); printf(The result is: %sn, t);6. 编程:在k:有程序文件p1.c,程序功能是计算并输出1000以内所有能被47整除的正整数之和。其中函数calu的功能是:计算1000以内所有能被47整除的正整数之和,结果通过return返回。请完成calu的函数体。注意:主程序及其他函数都不许修改!调试完成后,至少要运行一次才会保留评分依据!#include stdi
8、o.hint calu()int i,s=0;for(i=1;i1000;i+)if(i%47=0)s+=i;return s;/*Caution: you can only change codes in function above*/main() printf(result: %dn,calu(); int s8; FILE *fp1, *fp2; int i; if (fp1=fopen(k:pin1.dat,r)=NULL) printf(Open file error,Please contact your teacher); exit(0); if (fp2=fopen(k:yo
9、u.dat,w)=NULL) printf(!Create file error,Please tell your teacher at once!); exit(0); for (i=0;i8;i+) fscanf(fp1,%d,&si); fprintf(fp2,%dn,si-calu(); fclose(fp2); fclose(fp1);7. 在k:有程序文件p2.c,程序功能是按显示出的a字符串中的10个字母,照着输入各字母到b数组,亦即“练习英文打字”。其中函数count的功能是:与a数组中各元素对照,统计出b数组中对应字母共有多少是正确的,赋给r,多少是错误的,赋给e,再算出正确
10、率,赋给rr。请完成count的函数体。注意:主程序及其他函数都不许修改!调试完成后,至少要运行一次才会保留评分依据!在k:有程序文件p2.c,程序功能是:输入一串1至7之间的简谱字符串,由已有的a数组中的对应字符,转变成音名字符串,规则是1234567中的各个字符依次对应着CDEFGAB中的各个字符,例如输入555676533322到x数组,在y数组中成为GGGABAGEEEDD。其中函数tra的功能是:由x数组中的各简谱字符,对应a中元素,向y数组中写入音名字符串。请完成tra的函数体。提示:1的ASCII码值为49。注意:主程序及其他函数都不许修改!调试完成后,至少要运行一次才会保留评分
11、依据!/* p2.c答案*/#include stdio.hchar a8=CDEFGAB;char x80,y80;void tra()int i;for(i=0;xi!=0;i+)yi=axi-49;yi=0;/*Caution: you can only change codes in function above*/main() int i; FILE *fp1, *fp2; printf(n Input:); scanf(%s,x); tra(); printf(Result:%sn,y); if (fp1=fopen(k:pin2.dat,r)=NULL) printf(Open file error,Please contact your teacher); exit(0); if (fp2=fopen(k:my.dat,w)=NULL) printf(!Create file error,Please tell your teacher at once!); exit(0); fscanf(fp1,%s,x); tra(); for(i=0;i9;i+) fprintf(fp2,%cn,yi); fclose(fp2); fclose(fp1);
限制150内