:题.选择一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;3>4;i++); for(i=0;!5;i++);4. 下面对数组的初始化,错误的是_____。
char s[5]=abc; chars[5]={'a','b','c'};char s[5]= ; char s[5];s=abc;5. 设有程序段:int k=10;while(k=0)k=k-1;则下面描述中正确的是______。
是无限循环 while循环执行10次循环体语句一次也不执行循环体语句只执行一次6. 如果x为int型且为5,则执行if(x--<5) printf(%d,x);elseprintf(%d,x++);后输出结果是______。
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 CB A DC B二.填空题:1.如果static int y=8;main(){ int y=3;printf(%d, y);}则输出结果是______。
2. 若int x=120,y=50; 执行printf(%d,(y,x));后输出结果是______。
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(%c,%c,ch1,ch2-ch1+'A');语句输出结果是_________。
6. 假定有以下变量定义: int k=7, x=12; 在空白处填入运算符使表达式的值为3:。
(x%=k)_____(k%=5)7. 若i是整型变量,执行语句for(i=1;i<=7;i++) {if(i%2) printf(*); elsecontinue;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[___]=Hello;。
答案: 1.3 2.120 3.13 4.scanf 5.A,B 6.- 7.*#*#*#*# 8.159.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(%d\n,i+=2));7.在main函数中定义的变量称为全局变量。
8. while语句的循环体中还可以包含for循环。
9. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是由实参传给形参,再由形参传回实参。
10. 先要定义一个二维数组c[M][N]来存放字符串?楨慮、呜慩橮湩、?畤慣楴湯,则。
10和3的合理取值应为N和M常量T F F T T F F T F T答案: 4. 读程序,写结果。
)指出程序运行结果。
1?湩汣摵?獜摴潩栮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 (a<b)x+=1;else if (c>d) ; else if (ch)if (e)x+=1; x+=x; if (x)x*=2; else x-=x; printf(%d\n,x);}400答案:: . 整个程序运行结果是)2椣据畬敤尠瑳楤?屨main().{ char ch='a'; int x=10; while (ch<'j') { printf(%c,,ch);ch+=2; } do { x--; if (x%3==0) continue; printf(%d,,x); }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 <stdio.h>#include <string.h>void fun (char s[], char t[]){int i, sl; sl=strlen(s);/***********found************/for(i=0;i<sl;i++) {t[2*i]=s[sl-i-1];/***********found***********/]=s[sl-i-1]; t[2*i+1 }/***********found***********/0'; \ t[2*i]='}main(){ char s[100], t[100]; printf(\Please enter string s:); scanf(%s, s); fun(s, t); printf(Theresult is: %s\n, t);}编程:6.在k:\有程序文件p1.c,程序功能是计算并输出1000以内所有能被47整除的正整数之和。
其中函数calu的功能是:计算1000以内所有能被47整除的正整数之和,结果通过return返回。
请完成calu的函数体。
注意:主程序及其他函数都不许修改!调试完成后,至少要运行一次才会保留评分依据!#include stdio.hint 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(esult: %d\n,calu());{ int s[8];FILE *fp1, *fp2;int i;if ((fp1=fopen(k:\pin1.dat,))==NULL){ printf(Open file error,Please contact your teacher);exit(0);};if ((fp2=fopen(k:\you.dat,w))==NULL){ printf(!Create file error,Please tell your teacher at once!);exit(0);};for (i=0;i<8;i++){ fscanf(fp1,%d,&s[i]);fprintf(fp2,%d\n,s[i]-calu());}fclose(fp2);fclose(fp1);}}7. 在k:\有程序文件p2.c,程序功能是按显示出的a字符串中的10个字母,照着输入各字母到b数组,亦即“练习英文打字”。
其中函数count的功能是:与a数组中各元素对照,统计出b数组中对应字母共有多少是正确的,赋给r,多少是错误的,赋给e,再算出正确率,赋给rr。
请完成count的函数体。
注意:主程序及其他函数都不许修改!调试完成后,至少要运行一次才会保留评分依据!其中函数tra的功能是:由x数组中的各简谱字符,对应a中元素,向y数组中写入音名字符串。
请完成tra的函数体。
提示:'1'的ASCII码值为49。
注意:主程序及其他函数都不许修改!调试完成后,至少要运行一次才会保留评分依据!/***** p2.c 答案*********/椣据畬敤尠瑳楤?屨char a[8]=CDEFGAB;char x[80],y[80];void tra(){int i;for(i=0;x[i]!='\0';i++)y[i]=a[x[i]-49];y[i]='\0';}/*Caution: you can only change codes in function above*/main(){ int i;FILE *fp1, *fp2;printf(\Input:);scanf(%s,x);tra();printf(Result:%s\n,y);if ((fp1=fopen(k:\pin2.dat,))==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;i<9;i++)fprintf(fp2,%c\n,y[i]);fclose(fp2);fclose(fp1);}。