C语言练习材料(2014)及选择题解答 联系客服

发布时间 : 星期一 文章C语言练习材料(2014)及选择题解答更新完毕开始阅读9aa5c23bdd3383c4ba4cd259

C语言补充材料(2014.6)

a[i]=a[i]+32; for(i=0; i<5; i++)

printf(”<”, a[i]); A) A B C D E B)A b C d E C)a b c d e D)a B c D e

53、以下程序段执行后sum的值是( )。 int i, sum=0;

int a[3][5]={11,12,13,14,15,16,17,18,19,20, 22,24,26,28,31}; for(i=0; i<3; i++) sum+=a[i][i+2];

A)58 B)63 C)61 D)60

54. 若已定义:

char sa[20]={“dictionary”}, sb[20]; 则( )语句是正确的。 A)sb[0]=sa[0] B) sb[ ]=sa[ ];

C)printf(“%d”, sa[ ]); D)scanf(“%s “, &sb[ ]);

55、以下程序段的运行结果是( )。 char

a[5][3]={??Y?,?o?,?u?,?a?,?r?,?e?,?\\0?,?w?,?e?,?l?,?c?,?o?,?m?,?e?};

printf(“%s”,&a[0][0]);

A)You B)You are C)You are welcome D)You are wel

四、函数

56. puts(char *str)函数的功能是向终端输出( )。

A) str指向的第一个字符 B) str指向的字符串 C) 一个整数变量的值 D) 一个实型变量的值

57. 以下语句中fun( )函数所含的实参个数有( )个。 fun((1,2,3),(4,5),(6, 7+8)); A)7 B)5 C)3 D)8

58. 以下程序段的运行结果是( )。

char a[ ]=“Teacher”;

char b[ ]=”Driver”; strcpy(a,b);

printf(”%s %c”, a, a[5]);

A)Teacher r B)Driver e C)Teacher e D) Driver r

59. 以下程序段的运行结果是( )。 char s[80]={“super”}; strcat(s, “market”); printf(“%d”, strlen(s));

A)9 B)12 C)10 D)11

60.以下程序段的运行结果是() int x=5 ;

char *s1 = “music”,*s2=s1; x=strcmp(s1,s2); printf(“%d\\n”,x);

A) -1 B) 5 C)0 D)1

61. 以下程序的运行结果是( )。 #include void fun(int i) { int a; a=++i;

printf(“%d ”, a); }

void main( ) { int a=3, b=6; fun(b);

printf(“%d ”, a); }

A)7 3 B)3 7 C)3 3 D)7 7

62. 以下程序的运行结果是 () #include void f (int a [ ] [ 3]) { int i ;

for (i=0;i<3;i++)

printf (“-”,a [i][0]); printf (“\\n”); }

void main () {

int a [3][3]={1,2,3,1,3,2,2,1,3};

f (a) ;

5

}

A 1 2 3 B 2 3 1 C 1 1 2 D 3 2 3

63. 以下程序的运行结果是( )。 #include fun(int x, int y) {return(x*y+10); }

void main( )

{ int a=11, b=2, c; c=fun(a,b);

printf(“c=%d\\n”, c); }

A)c=32 B)22 C)c=22 D)32

64. 以下程序的运行结果是( )。 #include fun(int x)

{ static int y=2; y=y+x; return(y); }

void main( ) { int i, s=0;

for(i=1;i<=2; i++)

s=s+fun(2); printf(”%d\\n”,s); }

A)10 B)6 C)4 D)8

65. 下列叙述错误的是( )。

A)宏定义中的符号常量(宏名)可以用小写字母表示

B)宏定义中的符号常量(宏名)只能用大写字母或数字字符

C)编译预处理命令行都必须以“#”开始 D)文件包含使用预处理命令“#include <文件名>”来实现

66. 下列叙述正确的是( )。 A) 可以使用命令define定义变量

B) 为区别语句结束符,编译预处理命令行必

须以逗号结束

C) 符号常量必须用大写字母表示 D) define是宏定义命令

67. 下列正确定义符号常量的命令是( )。 A)#define PR=3.3; B)#define PR 3.3 C)#define PR 3.3; D)#define PR=3.3

68. C源程序中, 预处理命令的位置可以在( )。

A) printf( )函数中 B) putchar( )函数中 C) scanf( )函数中 D) 文件首部

69. 下列叙述错误的是()

A) 预处理命令行都必须以“#“号开始。 B) 在预处理命令行 #define WT 5 中,符号变量(宏名)是WT

C) #include “math.h”属于预处理命令

D) 预处理命令只能位于C源程序文件的首部

五、指针

70. 若已定义:int *p1, *p2; 无意义的运算是( )。

A)p1-p2 B)p1>p2 C)p1+p2 D)p1

71. 若已定义:int a=3, *p; 执行语句p=&a; 后下列( )均能表示a的地址。 A)*p, &a B)*p, a C)p, a D)p, &a

72. 以下程序段的运行结果是( ) int a=5, b=2, c, *p1, *p2; p1=&a; p2=&b; if(*p1<*p2) c=*p1+2; else

c=*p2+4;

printf(“%d\\n”, c);

A)9 B)4 C)7 D)6

73. 以下程序段的运行结果是( ) int a=6, b=3, m,n,p,q;

6

C语言补充材料(2014.6)

p=&a; q=&b;

m=(*p)/(*q)+8; n=(*p)+(*q)*8;

printf(“m=%d, n=%d\\n”, m,n); A)m=8, n=80 B)m=10, n=30 C)m=10, n=8 D)m=8, n=30

74. 以下程序段的运行结果是( )。 int a[ ]={1,2,3,4,5,6,7,8,9,10}, i; int *p; p=a;

for(i=0; i<10; i++, i++) printf(“”=”, *(p+i)); printf(“\\n”); }

A)2 4 6 8 10 B)6 7 8 9 10 C)1 2 3 4 5 D)1 3 5 7 9

75. 以下程序段的运行结果是( )。 int a=1, b=2, sum, *p, *q; p=&a; q=&b;

sum=*p+*q; a=*q;

printf(“%d, %d\\n”, a, sum);

A)2, 4 B)1, 4 C)2, 3 D)1, 3

76、以下程序段的运行结果是( )。 int a[6]={1,2,3,4,5,6}; int *p; p=a;

*(p+3)+=3;

printf(”=, =\\n”,*p, *(p+3)); A)1,4 B)4, 4 C)1,7 D)7,7

77. 若已定义:

char a[ ]=”student”,*p=a;

能正确指向存放字符?u?单元的表达式是( )。

A)p+s B)*(p+2) C)*(a+s) D)a+2

78. 以下程序段的运行结果是( )。 char a[ ]=”WELL”, *p; for(p=a; p

A)WELLWE B)WE C)WELLWEL D)WELLELL

79. 若已定义: int a[2][3]={1,2,3,4,5,6}, *p; 执行语句p=&a[0][0]; 后, *(p+4)表示的值是( )。

A)3 B)6 C)4 D)5

80. 以下程序段的运行结果是( )。 int a=2, b=5, *p; p=&a; b=a;

printf(“%d, %d\\n”, b, *p);

A)2,5 B)2,2, C)5, 2 D)5,5

81. 以下程序段执行后,正确的是( )。 char a[ ]=”University”; char *p; p=a;

A) strlen(p)与strlen(a)表示的值相等 B) a[3]与*p表示的内容相同 C) *(p+3)与a[0]表示的内容相同 D) a与p+3表示的地址一致

82. 以下程序的运行结果是( ) # include void fun ( int x,int *p) { *p=x+10; } void main () { int a,b,c ; fun (5,&a); fun (a,&b); fun (b,&c);

printf (“a=%d,b=%d,c=%d\\n”,a,b,c);} A) a=15,b=15,c=15 B ) a=g,b=15,c=25

C) a=5,b=5,c=5 D) a=15,b=25,c=35

六、结构体、联合体、位运算

83. 若有以下类型说明,叙述错误的是()。 typedef struct

7

{ int num; char name[10]; float score; } PLAYER, *p

A)p是指向结构体类型PLAYER的指针类型名

B)num是结构体类型PLAYER的成员 C)PLAYER是一个结构类型名 D)p是一个结构类型名

84. 一个结构变量占用的内存容量是由( )决定。

A) 占内存容量最小的成员所需容量 B) 各成员所需容量之和

C) 最后一个成员所需内存容量 D) 第一个成员所需内存容量

85. 以下程序段执行后, 能正确引用”Li Ming”的是( )。 struct salesperson {char name[1]; int amount; }sm[3]={{“Ma Li”, 163}, {“Li Ming”,155},{“Jack”, 172}}; struct salesperson *p p=sm;

A)*(p+1).name B)p->name C)*p.name D)(p+1)->name

86. 若已定义 ;

struct sportsman { int num ; int height ; } ;

struct sportsman grp [3]={{101,185},{102,183},{103,186}};

struct sportsman *p= grp ; 则表达式值为183的是()。 A) (p++)->height B) *(++p)-> height

C) (++p)-> height D) *(p++)->height

87. 若已定义 struct worker { int num;

char sex;

float height; }w1;

下列叙述错误的是( )。

A) num、sex和height都是结构变量w1的

成员

B) worker是结构类型名 C) w1是结构类型名

D) w1是用户定义的结构变量名

88. 下列叙述错误的是( )。

A) 联合变量所占内存容量等于其中占内存

容量最大的成员所占的容量

B) 一个联合变量中各成员的首地址相同 C) 联合变量可以出现在结构类型定义中 D) 联合变量可以作为函数的形参

89. 下列叙述正确的是 ()

A) 一个联合变量中真正起作用的是其中占内存容量最大的成员

B) 联合变量在定义的同时可进行初始化 C) 引用联合变量就是引用该变量所有成员的值之和

D) 一个联合变量在某一时刻只能由其中的某一个成员起作用

90. 若已定义: struct person {int num;

char name[8]; int age, grade; }p1;

Turbo C环境中,结构变量p1在内存中占用了( )字节。

A)16 B)14 C)12 D)10

91. 若已定义:int a=8, b=7, c; 语句c=a|b; 执行后c的值为( )。

A) 7 B)8 C)0 D)15

92.在无符号数的位运算中,操作数右移一位相当于将该操作数()。

A) 除以2 B) 乘以2 C) 乘以4 D) 除以4

93. 若已定义:enum duty{a,b=10, c, d=15,e};

8