A、8 B、1 C、4 D、64
54. 以“只读”方式打开文本文件a:\\aa.dat,下列语句中哪一个是正确的( )。 A、fp=fopen(”a:\\aa.dat”,”ab”); B、fp=fopen(”a:\\aa.dat”,”a”); C、fp=fopen(”a:\\aa.dat”,”wb”); D、fp=fopen(”a:\\aa.dat”,”r”); 55. 以“追加”方式打开文本文件a:\\aa.dat,下列语句中哪一个是正确的( )。 A、fp=fopen(”a:\\aa.dat”,”ab”); B、fp=fopen(”a:\\aa.dat”,”a”); C、fp=fopen(”a:\\aa.dat”,”r+”); D、fp=fopen(”a:\\aa.dat”,”w”); 56. 为读写建立一个新的文本文件a:\\aa.dat,下列语句中哪一个是正确的( )。 A、fp=fopen(”a:\\aa.dat”,”ab”); B、fp=fopen(”a:\\aa.dat”,”w+”); C、fp=fopen(”a:\\aa.dat”,”wb”); D、fp=fopen(”a:\\aa.dat”,”rb+”);
2 填空题
1. 设float x=2.5,y=4.7; int a=7;,表达式 x+a%3*(int)(x+y)%2/4 的值为 。 2. 设 int x=17,y=5; 执行语句 x+=--x%--y 后x的值为 。 3. 设 int x=17,y=5; 执行语句 x%=x++/--y 后x的值为 。
4. 设 int a=7,b=6,c=5;,表达式 (a+b)>(c*c)&&b==c||c>b 的值为 。 5.设 int a=3,b=5,c=7;,表达式a>c||c>b!=0&&c==b+a 的值为 。 6.已知三角形边长a、b、c和s=(a+b+c)/2,计算其面积的算术表达式为 。
7. 已知方程ax+bx+c=0系数a、b、c且存在两个实根,计算其中一个实根的算术表达 式为 。
8. p为本金,r为5年期存款年利率,计算存款p元5年到期时本金、利息总和的算术 表达式为 。
9.将数学式 (x+1)e 写作算术表达式为 。 10.ch是字符变量,判断ch为大写英文字母的逻辑表达式为 。 11. 判断int类型变量n是否为两位整数的逻辑表达式为 。
12. 判断变量a、b的值均不为0的逻辑表达式为 。 13. 判断变量a、b是否绝对值相等而符号相反的逻辑表达式为 。
14. 判断变量a、b中必有且只有一个为0的逻辑表达式为 。
15. m是值为两位数的整型变量,判断其个位数是奇数而十位数是偶数的逻辑表达式为 。
16. 求解赋值表达式 a=5+(c=6)后表达式值、a、c的值依次为 。
5
2x
2
17. 求解赋值表达式 a=(b=10)%(c=6),表达式值、a、b、c的值依次为 。 18. 求解逗号表达式 x=a=3,6*a后,表达式值、x、a的值依次为 。 19. 求解逗号表达式 (a=15,a*4),a+5,表达式值、a的值依次为 。 20. 求变量a、b中最大值的条件表达式为 。
21. 若 a=13、b=25、c=-17,条件表达式 ((y=(a=?a?&&s<=?z?)?s-32:s; 字符变量s的值为 。 23. 整型变量x的值为25,语句“printf(”%o”,x);”的输出结果为 。 24. 整型变量m的值为27,语句 printf(”m=%x”,m);的输出结果为 。 25. 语句printf(”s%s”,”mall”); 的输出结果为 。
26. 若int k=10, 循环语句while (k=0) k=k-1; 执行_________次。
27.若int k=2, 循环语句while (k!=0) { printf(\执行_____次。 28. 若int i=10,s=0;,执行语句while(s+=i--,--i);后s、i值分别为 。 29. 程序段 int s,i; for(i=1;i<=100;s+=i,i++); 能否计算1~100的和? 原因是 。
30. 若int类型变量字长为2,程序段 int jc=1; for(int i=2;i<10;i++)jc*=i; 能否 计算10的阶乘? 原因是 。 31. 定义a为共有10个元素的静态存储int类型数组的语句为 。
32. 定义a为长度为10的字符串、同时为字符串赋初值”continue”的语句为 。
33. 定义a为共有5个元素的一维整型数组、同时定义p为指向a数组首地址的指针变 量的语句为 。
34. 定义a为4行5列的二维整型数组、同时定义p为指向a数组首地址的指针变量的 语句为 。 35. 如定义语句为“char a[]=”windows ”,b[]=”95”;”,
语句“printf(”%s”,strcat(a,b));”的输出结果为 。 36. 定义语句为 char a[15],b[]=”windows 95”;,则语句 printf(”%s”,strcpy(a,b)); 的输出结果为 。
37. 定义语句为 char a[]=”Box”,b[]=”Boss”;,语句 printf(”%d”,strcmp(a,b));输 出 。
38. 定义语句为“char a[10]=”student”;”,语句“printf(”%d”,strlen(a));”的输出 结果为 。
39. 定义语句为 char a[]=”WINDOWS”;,语句 printf(”%s”,strlwr(a));输出 。 40. 定义语句为 char a[]=”hangzhou”,*p=a;,语句 for(int i=0; *p!=?\\0?; p++,i++); 执行后i的值为 。
41. 对宏定义语句“#define f(x,y) printf(x,y)”的引用 f(”%d\\n”,m);
6
置换展开后为 。
42. 宏定义语句 #define f(x,y) fopen(x,y) 的引用 f(”a.txt”,”rw”); 置换展开后为 。
43. 宏定义语句 #define f(c) c>=?A?&&c<=?Z? 的引用 f(x[i]) 置换展开后为 。
44.表达式 3&5、3|5、3||5 的值分别为 、 、 。
45.设 int x=707,表达式 x^x、x|x、~x^x 的值分别为 、 、 。
46.设 int x=0707,表达式 ~x&&x、!x&&x、x>>3&~0的值分别为 、 、 。 47. 函数的参数为int类型时,虚参与实参结合的传递方式为 。 48. 函数的参数为floatl类型时,虚参与实参结合的传递方式为 。 49. 函数的参数为char*类型时,虚参与实参结合的传递方式为 。 50. 函数的实参为常量时,虚参与实参结合的传递方式为 。 51.对下列递归函数,函数调用f(3)的返回值是 。 int f(int n) { return((n==0)?1:f(n-1)+2);}
52.函数f定义如下,调用f(\的返回值为 。 int f(char *s) { int k=0; while(*s) k+=*s++-'0'; return k;}
53. 函数change定义如下,a=10、b=5,执行 change(a,b)后a、b的值分别为 。 void change(int a,int b) { int t=0; t=a; a=b; b=t;}
54. 开辟一个存储n个int数据的内存区、并将内存区首地址送入p(指向int类型的指 针变量)的语句为 。 55.释放由p所指向的内存区的语句为 。
56.fp为文件位置指针,将fp移到离当前位置25个字节处的语句为 。
3 写输出结果题
阅读下列程序,将程序运行时的输出结果填写在答案栏内。
1. #include
{ char ch; int k=0;
for(ch=?A?;ch
} 输出结果:
2. #include
{ int k=0; char c='A'; do {
switch (c++) {
7
case 'A': k++; break; case 'B': k--;
case 'C': k+=2; break; case 'D': k=k%2; break; case 'E': k=k*10; break; default: k=k/3;
} k++;
} while(c<'G');
printf(\
} 输出结果:
3. #include
{ int a[6]={12,4,17,25,27,16},b[6]={27,13,4,25,23,16},i,j; for(i=0;i<6;i++) {
for(j=0;j<6;j++) if(a[i]==b[j])break; if(j<6) printf(\ }
printf(\
} 输出结果:
4. #include
{ int a[8]={1,0,1,0,1,0,1,0},i;
for(i=2;i<8;i++) a[i]+=a[i-1]+a[i-2]; for(i=0;i<8;i++) printf(\ printf(\
} 输出结果:
5. #include
{ int s=1,t=1,a,n; scanf(\ for(int i=1;i t=t*10+1; s=s+t; 输入数据:2,4 } s*=a; printf(\输出结果: } 6. #include #define PR(x,y) printf(\ 8 void main( ) { int x=03,y=02,z=01; 输出结果: ___________ PR(\ PR(\ PR(\ } ___________ 7. #include { int a[5]={2,4,6,9,12},b[6]={2,3,4,6,8,9}; for(int i=0;i<5;i++) for(int j=0;j<6;j++) if(*(a+i)==*(b+j)) printf(\ printf(“\\n”); } 输出结果: 8. #include { char str1[]=\ for(int i=0;i<4;i++) { printf(\ str1[i]=? ?; str1[strlen(str1)-1]='\\0'; } } 9. #include void main() { char a[5][8]; 输出结果: for(int i=0;i<5;i++) for(int j=0;j<8;j++) if(i==0||i==4) a[i][j]='-'; else a[i][j]=' '; for(i=1;i<4;i++) { a[i][0]='|'; a[i][5]='|'; } for(i=0;i<5;i++) a[i][6]='\\0'; for(i=0;i<5;i++) printf(\ } 10. #include 9