A、float d,*p=d; B、float d,*p=&d; C、float *p=&d,d; D、float d,p=d; 38. 对语句“int a[10],*p=a;”,下列表述中哪一个是正确的( )。
A、*p被赋初值为a数组的首地址 B、*p被赋初值为数组元素a[0]的地址 C、p被赋初值为数组元素a[1]的地址 D、p被赋初值为数组元素a[0]的地址 39. p1指向某个整型变量,要使指针p2也指向同一变量,哪一个语句是正确的( )。 A、p2=*&p1; B、p2=**p1; C、p2=&p1; D、p2=*p1; 40. 假如指针p已经指向变量x,则&*p相当于( )。
A、x B、*p C、&x D、**p 41. 假如指针p已经指向某个整型变量x,则(*p)++相当于( )。
A、p++ B、x++ C、*(p++) D、&x++ 42. 数组定义为“int a[4][5];”,引用“a+3”表示( )。
A、a数组第3列的首地址 B、a数组第0行第3列元素的值 C、a数组第3行的首地址 D、a数组第0列第3行元素的值 43. 数组定义为“int a[4][5];”,引用“a[1]+3”表示( )。
A、a数组第1行第3列元素的地址 B、a数组第1行第3列元素的值 C、a数组第4行的首地址 D、a数组第4列的首地址 44. 数组定义为“int a[4][5];”,引用“*(*a+1)+2”表示( )。 A、a[1][0]+2 B、a数组第1行第2列元素的地址 C、a[0][1]+2 D、a数组第1行第2列元素的值
45. 数组定义为“int a[4][5];”,下列哪一个引用是错误的( )。
A、*a B、*(*(a+2)+3) C、&a[2][3] D、++a 46. 共用体定义为“union data {char ch;int x;} a;”,下列哪一个是正确的( )。 A、a.ch=?x?;a=10; B、a=?x?,10; C、a.x=10;a.ch=?x?; D、a=?x?;
47. 共用体定义为“union data {char ch;int x;} a;”,下列哪一个是不正确的( )。 A、a={?x?,10}; B、a.x=10;a.x++; C、a.ch=?x?;a.ch++; D、a.x=10;a.ch=?x?; 48. 按位与运算:int a=7,b=12,c=a&b; 变量c的值是( )。 A、19 B、4 C、5 D、9 49. 按位或运算:int a=6,b=8,c=a|b; 变量c的值是( )。 A、2 B、14 C、48 D、-2 50. 按位异或运算:int a=14,b=15,c=a^b; 变量c的值是( )。 A、1 B、15 C、-1 D、29 51. 按位取反运算:int a=16,c=~a;,变量c的值是( )。 A、17 B、7 C、84 D、-17 52. 左移运算:int a=16,c=a<<2; 变量c的值是( )。 A、67 B、4 C、1 D、64 53. 右移运算:int a=16,c>>2; 变量c的值是( )。
5
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+”);
6
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的值依次为 。 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”); 的输出结果为 。
7
2x
2
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); 置换展开后为 。
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类型时,虚参与实参结合的传递方式为 。
8
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个字节处的语句为 。
9
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新幼儿教育C习题集 (2)全文阅读和word下载服务。
相关推荐: