c语言程序设计的练习(编辑修改稿)内容摘要:

类型。 79.下列标识中,( B )不是局部变量。 A) register B) 外部static 类 C) auto类 D) 函数形参 80.有一个 int 变量,在程序中使用频率很高,最好把它定义为( A )。 A) register B) auto C) extern D) static 81.下列标识中,( C)是文件级作用域的。 A) 函数形参 B) 语句标号 C) 外部静态标识符 D) 自动类标示符 82.下面这段程序中哪个不是常量( B) define PI void main() {int sum。 sum = 10 + 15。 printf(sum=%d\n,sum)。 printf(result is 25\n)。 } 82.下面哪个是错误的表达式( D) A. a+b=5 B. i=i++ C. a=5,b=6,c=7 D. +% 83.下面说明语句哪个是非法的( C) A. int abcd[0x80]。 B. int aaa[5]={3,4,5}。 C. char 9ab[10]。 D. E. float key[]={,1,0}。 84.已知 a 为整型变量,那么与表达式 a!=0 真假值情况不相同的表达式是哪个( D) A. a0||a0 C. !a==0 D. !a 85.有一个函数原型这样表示: abc(float x,float y)。 则该函数的返回类型为( C) A. void B. double C. int D. float 86. 下面哪一项是不正确的字符串赋值或赋初值的方式( C) A. char *str。 str=string。 B. char str[7]={39。 s39。 ,39。 t39。 ,39。 r39。 ,39。 i39。 ,39。 n39。 ,39。 g39。 }。 C. char str1[10]。 str1=string。 D. char str1[]=string,str2[]=12345678。 87. 下面的程序中哪一行有错误( D) include main() { float array[5]={}。 /*第 A 行 */ int i。 for(i=0。 i5。 i++) scanf(%f,amp。 array[i])。 for(i=1。 i5。 i++) array[0]=array[0]+array[i]。 /*第 B 行 */ printf(%f\n,array[0])。 /*第 C 行 */ } A) 第 A 行 B) 第 B行 B) 第 C 行 D)没有 88.下面代码中哪个是结构体变量名( D) struct student { int num。 char name。 int score。 }。 struct student st[3]。 A) struct B) num、 name 和 score C ) student D)st[3] 89.下面哪个是正确的引用下面的结构体数组变量成员( B) struct book { int num。 char name。 int price。 }。 struct book b[3]。 A) B)b[2].num C ) D) 第二部分:判断题 1. ( 对 )任何字符常量与一个任意大小的整数进行加减都是有意义的。 2. ( 对 )运算符的优先级和结合性可以确定表达式的计算顺序。 3. ( 错 )某个变量的类型 高是指该变量被存放在内存中的高地址处。 4. ( 对 )移位运算符在移位操作中,无论左移还是右移,所移出的空位一律补 0。 5.( 错 ) C 语言是一种面向机器的语言。 6.( 对 )在 C 语言中无论什么语句后面都必须加上“;”号。 7.( 错 ) Y=X2+1 是 C 语言合法的表达式。 8.( 对 )在编写 C 语言的子函数中允许使用多条 return 语句。 9.( 对 ) C 语言允许局部变量与全局变量同名。 10.( 对 ) IF 是 C 语言的保留字,又称关键字。 11.( 对 ) dowhile 语句是先执行循环体,再判断条件,当条件满足时继续执行循环体。 12.( 错 ) C 语言的数组元素下标允许是任何类型的表达式。 13.( 对 ) C 语言中不能将一个结构变量作为一个整体进行输入 /输出。 14.( 对 ) C 语言中一个指针变量只能指向相同类型的变量的地址。 15. (对 )内部静态变量和自动类变量作用域相同,但是生存期不同。 16. ( 对 )程序中,语句之间必须要用分号“;”分隔。 17. ( 对 )程序中所用的变量必须先定义后使用。 18. ( 对 )程序中 ,A和 a 是两个不同的变量。 19. ( 错 ) b 是同类型变量,执行语句 a=b 后 b 中的值将放入 a 中, b 中的值将丢失。 20.( 对 )中的局部变量与全局变量同名时,局部变量优先,全局变量暂时不起作用。 21. ( 对 )的执行总是从主函数开始,主函数执行完时,则程序执行结束。 22. ( 对 ) while 语句的循环体至少执行一次。 23. ( 对 )说明 :int a[3][4]。 则 a[1+1][0]是对 a 数组元素的正确引用。 24. ( 错 ) ar a[]={0,1,2,3,4,5,6}不是正确的数组说明语句。 25. ( 对 )说明: int a[3][4]={0},则只有元素 a[0][0]可得到初值 0。 26. (对 ) 序是由函数构成的,每一个函数完成相对独立的功 能。 27. (错 ) 语言中,字母的大小写不被区分。 28. (错 ) 型数据和整数之间是不可以通用的。 29. (错 ) 表达式c=b=a=3是错误的。 30. (错 ) ntinuc 语句用在循环体中,可使整个循环不结束。 31. (对 ) turn 后面括号里的表达式的值即是此函数的值。 32. (对 ) 就是地址,因此一个变量的指针就是该变量的地址。 33. (对 ) ets 函数可以接收一个含有空格的字符串。 34. (对 ) 行逻辑运算时,非0整型值表示 “ 真 ”。 35. (对 ) 运算符 “。 : ” 的优先级高于赋值运算符。 36. (对 )预处理命令是在进行 编译时首先执行的,然后再进行正常编译。 37. (错 )宏定义命令是以分号结束的。 38. (错 )条件语句不能作为多分支语句。 39. (错 )开关语句中的 default 关键字,只能放在该语句的末尾。 不能放在开头和中间。 40. (错 )while 语句的循环体至少执行一次。 41. (对 )dowhile 循环可以写成 while循环。 42. (对 )当循环体为空语句时,说明该循环不做任何工作只起到延时作用。 43. (对 )break 可以出现在各种循环体内。 44. (错 )continue 只能出现在循环体中。 45. (错 )只有 for 循环体内可以使用空语句。 其他循环体内部可以使用。 46. (对 )计算函数参数顺序引起的二义性,完全是由不同编译系统确定。 47. (错 )for 循环中,循环变量的作用域是该循环的循环体。 48.( 错 )在 C 语言中,函数可以嵌套定义。 49.( 对 )程序中的注释部分可有可无,通常可以省略。 50.( 错 )在函数中,只能有一条 return 语句。 51.( 错 ) C 程序中,会检查数组下标是否越界。 52.( 对 )在 C 程序中, ABC 和 abc 是两个不同的变量。 53.( 错 )在 C 语言中,函数中的变量可以赋初值,每调用一次该函数,就赋一次 初值。 54.( 对 ) C 语言中不能对数组名进行加减和赋值运算。 55. (对 ) C 语言中结构体可以嵌套定义 第三部分: 程序填空 1.若已定义 a 和 b 是 double 型的数据,则表达式 a=2,b=5, c=a*b2 执行后 c 的值是。 2.若有定义 char a[8]。 则 a 数组元素下标的上限是 __7__,下限是 ___0___。 3. C 语言的数组名是一个 ____地址 ___常量,不能对它进行加、减和赋值运算。 4 .设有条件 float x1=,x2= ,则执行语句printf(“x(%d)=%.2fx(%f)=%.2f\n”,1,x1,2,x2)后, x1 的值为 _____ x1=, x2 的值为 ___ x2=。 5.下列语句的输出结果是 ____31 37 1F 31____。 char a=31。 printf(“%d,%o,%x,%u\n”, a,a,a,a)。 6.以下程序将 M*N 的二维数组 x 转秩后存入 N*M 的二维数组 y 中,请填空: define M 2 define N 3 main( ) { int i,j,x[M][N]={1,2,3,4,5,6},y[N][M]。 for(i=0。 iM。 i++) { for(j=0。 jN。 j++) printf(“%3d”,x[i][j])。 printf(“\n”)。 } for(i=0。 iM。 i++) for(j=0。 j=__ N __。 j++) y__[j][i] __=x__[i][j]__。 for(i=0。 iN。 i++) { for(j=0。 j__ M __。 j++) printf(“%3d”,y[i][j])。 printf(“\n”)。 } } 7. 以下程序的功能是:从读入的整数数据中,统计大于 0的整数个数和小于 0 的整数个数。 用输入 0 来结束输入,程序中用变量 i 统计大于 0 的整数个数,用变量 j 统计小于 0 的整数个数。 请填空: main( ) {_ int _ n,i,j。 i=j=0。 scanf(“%d”,amp。 n)。 while(_n!=0_) { if(n0) i=_ i+1_。 if(n0) j=_ j+1_。 ___ scanf(“ %d” ,amp。 n)___。 }。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。