C语言模拟题目及答案

2020-05-09 14:27

一.选择题:

1.设float x,y;则以下不合法的赋值语句是______。 x*=y+8; x=y=0; ++x; y=(x%2)/10; 2. 设int k=017,g=111; 执行语句printf(\的输出是_____。 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;3>4;i++); for(i=0;!5;i++); 4. 下面对数组的初始化,错误的是_____。 char s[5]=\char s[5]=\5. 设有程序段:int k=10;while(k=0)k=k-1;则下面描述中正确的是______。 是无限循环 while循环执行10次 循环体语句一次也不执行 循环体语句只执行一次 6. 如果x为int型且为5,则执行if(x--<5) printf(\

后输出结果是______。 3 4 5 6 7. 有如下函数调用语句func(rec1, rec2+rec3, (rec4, rec5));,该函数调用语句中,含

有的实参个数是____。 3 4 5 有语法错 8. 在C语言的if语句中,可用作条件判断的表达式为_____。 算术表达式 逻辑表达式 关系表达式 任意表达式 9. 若给定条件表达式(n)?(c++):(c--),则与表达式中(n)等价的表达式是_____。 n==0 n==1 n!=0 n!=1 10. 一个函数返回值的类型取决于_____。 调用该函数的主调函数的类型 定义函数时指定或缺省的函数类型 调用函数时临时决定 return语句中表达式的类型

答案:D A B D C B A D C B

二.填空题:

1.如果static int y=8;main(){ int y=3;printf(\则输出结果是______。 2. 若int x=120,y=50; 执行printf(\后输出结果是______。 3. 若int i, a[10]; 则执行语句 for(i=9;i>=0;i--) a[i]=i+5; 后,a[8]的值为

__________。 4. 在C语言中是没有输入输出语句的,而是通过提供库函数______和printf来完成输入输

出功能的。 5. 已知字母'A'的ASCII码值为65,ch1和ch2均为字符型变量,且ch1='A',ch2='B',则

printf(\语句输出结果是_________。 6. 假定有以下变量定义: int k=7, x=12; 在空白处填入运算符使表达式的值为3:

(x%=k)_____(k%=5) 。 7. 若i是整型变量,执行语句for(i=1;i<=7;i++) {if(i%2) printf(\

continue;printf(\后,输出结果是______。 8. 程序中定义宏#define w 3和#define L w+w,若定义int val;且命令val=L*L, 则变量

val的值为____。 9. 表示“整数x的绝对值大于5”时,值为“真”的C语言表达式是(利用逻辑运算符)

x>5____x<-5。 10. 请填空,完善如下语句:char a[___]=\。

答案:

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; 则for(;i=1;)printf(\中的循环体必执行无穷多次。 5.空语句是合法的C语句。 6. 以下程序段可以输出10个整数:for(i=0 ;i<=9; printf(\7.在main函数中定义的变量称为全局变量。 8. while语句的循环体中还可以包含for循环。 9. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是由实参传给

形参,再由形参传回实参。 10. 先要定义一个二维数组c[M][N]来存放字符串\、\、\,则

常量M和N的合理取值应为3和10。

答案:T F F T T F F T F T

4. 读程序,写结果。 1)指出程序运行结果。 # include \main() {

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(\}

答案:400

2). 整个程序运行结果是: #include \main() {

char ch='a'; int x=10;

while (ch<'j') {

printf(\ ch+=2; } do { x--;

if (x%3==0) continue; printf(\ }

while (x>0); printf(\}

答案:a,c,e,g,i,8,7,5,4,2,1

5. 改错:

给定程序k:\\m.c中函数 fun 的功能是:把在字符串s中出现的每个字符, 紧随其后重复出现一次,放在一个新串t中,t中字符按原字符串中逆排列。 例如:当s中的字符串为:\时, 则t中的字符串应为:\。 注意:只能改动*found*下一行,不要改动main函数,不得增行或删行,也不得更改程序的结构!

/***** m.c 答案***/ #include #include

void fun (char s[], char t[]) {

int i, sl; sl=strlen(s);

/***********found************/ for(i=0;i

t[2*i]=s[sl-i-1];

/***********found***********/ t[2*i+1]=s[sl-i-1]; }

/***********found***********/

t[2*i]='\\0'; }

main()

{ char s[100], t[100];

printf(\ fun(s, t);

printf(\}

6. 编程:

在k:\\有程序文件p1.c,程序功能是计算并输出1000以内所有能被47整除的正整数之和。

其中函数calu的功能是:计算1000以内所有能被47整除的正整数之和,结果通过return返回。请完成calu的函数体。

注意:主程序及其他函数都不许修改!调试完成后,至少要运行一次才会保留评分依据!

#include \

int calu() {

int i,s=0;

for(i=1;i<1000;i++)

if(iG==0)s+=i; return s;

}

/*Caution: you can only change codes in function above*/

main() {

printf(\

{ int s[8];

FILE *fp1, *fp2; int i;

if ((fp1=fopen(\

{ printf(\ exit(0); };

if ((fp2=fopen(\

{ printf(\ exit(0); };

for (i=0;i<8;i++)

{ fscanf(fp1,\

fprintf(fp2,\ }

fclose(fp2); fclose(fp1); } }

7. 在k:\\有程序文件p2.c,程序功能是按显示出的a字符串中的10个字母,照着输入各字母到b数组,亦即“练习英文打字”。

其中函数count的功能是:与a数组中各元素对照,统计出b数组中对应字母共有多少是正确的,赋给r,多少是错误的,赋给e,再算出正确率,赋给rr。请完成count的函数体。

注意:主程序及其他函数都不许修改!调试完成后,至少要运行一次才会保留评分依据!

在k:\\有程序文件p2.c,程序功能是:输入一串1至7之间的简谱字符串,由已有的a数组中的对应字符,转变成音名字符串,规则是\中的各个字


C语言模拟题目及答案.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:[南开大学]18秋学期(1709、1803、1809)《行政法与行政诉讼法》在

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: