编辑: 于世美 | 2019-07-01 |
一、填空题(表达式求值) (本大题共
10 小题,每小题
1 分,共10 分)设各语句的初始化 相同:int x=3,y=2,z=1;
1.
x=y==z x=【
0 】 2. x=!(z>y)&&!x||1 x=【
1 】 3. x=(y++*1/3) x=【
0 】 4. x=((x>y>z)?1:0) x=【
0 】 5. x*=2+3 x=【
15 】 6. x=(++z*y,y++,z%y) x=【
2 】 7. y=--z&&--x x=【
3 】 8. x=5||x!=y x=【
1 】 9. x=1.5+7%3*(int)(2.5+4.7)%2/4 x=【
1 】 10. x='a'-'A' x=【
32 】
二、读下列程序段,指出错误并改正(改错题) (本大题共
5 小题,每小题
4 分,共20 分) 说明:指出错误的表示形式为错误处加下划线:如int a[n][n];
改正形式为在错误语句之后加修改内容:如int a[4][4];
1. #include #define MAX(a,b) (a>=b?a:b) void main(){ //① a 数组无'\0',改为:char a[7]= "a1b2c3" int i;
// 或char a[7]={'a','1','b','2','c','3','\0'} char a[
6 ]={'a','1','b','2','c','3'};
//② 数组定义过小,不能存放串结束 char b[
6 ]="234def";
//符'\0'⑻至少应改为 a[7],b[7] for(i=0;
a[i]!='\0';
i++) printf("i=%d,max=%c\n",i, MAX(a[i],b[i]));
} 2.#include void main(){ int a=9;
//①函数应先定义后使用,否则事先声明,因此须加 double m;
//函数原型说明:double f1(double i,int j);
double f1(double i,int j);
//②形实参数的类型不匹配,应此须互换处理: m=f1(3.14, a);
// m=f1(a,3.14);
或printf("%f\n",m);
// double f1(double i,int j){ } double f1(int i,double j){ return(i*i+j*j);
} 3. #include void main(){ //字符指针数组不能直接存放字符串, int i;
//修改方案有 2: char *str[5];
//① char s[5][80];
然后每行的起始地址赋给 char s[5][80];
//指针数组的相应元素: for(i=0;
i