admin 管理员组

文章数量: 1184232


2024年4月22日发(作者:matlab函数句柄)

选择题

1C语言中使用的字符常量,其起止标记符是(单引号)。

2语言中使用的字符串常量,其起止标记符是(双引号)。

3在C语言中,一条简单语句的结束符是(分号)。

4在C语言中,每条复合语句的开始标记字符为({)。

5不符合C语言规定的复合语句是({y=10})。

6 C语言中的选择类语句有两条,它们是(if和switch)。

7在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为(main)。

8 C语言程序中的基本功能模块为(函数)。

9 一个函数定义所包含的两个部分是(函数头和函数)。

10 一个程序文件开始使用的每条预处理命令,其首字符必须是(#)。

11在一个程序文件中,若要使用#include命令包含一个系统头文件,则此头文件所使用的

起 止定界符为一对(尖括号)。

12在C语言程序中,单行或行尾注释使用的标记符为(//)。

13在C语言程序中,多行注释使用的结束标记符为(*/).

14用于输出表达式值的标准输出函数是(printf())。

15在printf()函数调用的格式字符串中,每个格式符的先导字符为(

)。

16在printf()函数调用的格式字符串中,若使用格式符为“

d”,则对应输出的数据类

型为 (int)。

17在printf()函数调用的格式字符串中,若使用格式符为“

f”,则对应输出的数据类型

为 (float)。

18在printf()函数调用的格式字符串中,若使用格式符为“

5d”,则规定对应输出的数

据占 用的字符位置个数为(5)。

19程序运行中需要从键盘上输入多于一个数据时,若不特别规定分隔符,则输入的各数据

之间所使用的分隔符为(逗号或回车)。

20用于从键盘上为变量输入值的标准输入函数是(scanf())。

21在scanf()函数调用的格式字符串中,每个格式符的先导字符为(%)。

22在scanf()函数调用的格式字符串中,若使用格式字符串为“

d,%d”,则规定输入的

两个 数据之间的分隔符为(@ )。

23C语言源程序文件的扩展名为(c)。

24每个C语言程序文件的编译错误的类型有(2种)。

25每个C程序文件在编译时可能出现有警告性错误,其对应的标识符号为(warning )。

26. C语言中的循环类语句有3条,它们是(for,while,do)。

27. C语言中的跳转类语句有四条,它们是goto,return和(break,continue)。

28. 当不需要函数返回任何值时,则所使用的返回类型为(void)。

29. 在一个函数定义中,函数头包括的3个部分依次为函数类型、函数名和(参数表)。

30. 在一个程序文件的开始,若需要使用一个包含命令包含一个头文件时,则命令标识符

为 (#include)。

31. 在#include预处理命令中,不可以包含(目标文件)。

32. 在printf()函数调用的格式字符串中,若使用格式符为’

6.2f”,则规定对应输出的

数据 占用的字符位置个数为(6)。

33. 在printf()函数调用的格式字符串中,若使用格式符为’

6.2f”,则规定对应输出的

数据 中,其小数部分占用的字符位置个数为(2)。

34. 在printf()函数调用的格式字符串中,若使用格式符为’

6.2f”,则规定对应输出的

数据 中,其整数部分占用的字符位置个数为(3)。

35. 在scanf()函数调用的格式字符串中,若使用格式符为“

f”,则对应输入的数据类

型为 (float)。

36. 在scanf()函数调用的格式字符串中,若使用格式符为宓Lf”,则对应输入的数据类

型为 (double)o

37. 每个C程序文件在编译时可能出现有严重性错误,其对应的标识符号为(error)。

38. 在VC++环境下,为运行一个程序而建立的工作区文件的扩展名为(dsp)。

39. char类型的长度为(1)。

40. 常数120的数据类型为(整型)。

41. 一个无符号字符类型的值域范围是(0到255)o

42数值常量0x62的表示方式为(十六进制)。

43在C语言中,表示换行符的转义字符为(n)。

44字符串"It's'"中包含的字符个数为(5 )o

45执行“printf("%c",'B'+2);”语句后得到的输出结果为(D)。

46要定义a和b为两个整型变量,则使用的定义语句为(int a,b )。

47运算符优先级最高的是(++)。

48下列数值中最小值是(35%3)o

49已知x的初值为15,则下列各表达式中的最小值为(x/=2)。

50若x=5,y=10,则计算y*=++x表达式后,y的值为(60)。

51设x和y均为逻辑值,则x && y为真的条件是(它们均为真)。

52 x<=10的相反表达式为(x>10)。

53 函数 pow(4,3)的值为(64.0)。

54假定x=4.6,则函数floor(x)的值为(4.0)。

55正弦函数sin48在C语言的表示为(sin(48*3.14159/180))。

56 int类型的长度为(4)。

57常数-4.25的数据类型为(双精度型)。

58 一个有符号字符类型的值域范围是(-128到+127)o

59字符串"Its40n"的长度为(5)。

60实数340.25对应的规格化浮点数为(3.4025e2)。

61要利用const保留字定义整型常量ABC的值为10,则对应的定义语句为(const int

ABC=10)。

62要利用#define命令定义ABC常量的值为100,则对应的命令格式为(#define ABC==10)。

63下列数值中最大值是(28%8)o

64在下面运算符中,优先级最高的是(!)。

65设有语句序列为“int a=12; a+=a*a;”,则执行结束后,a的值为(156)。

66在C语言中,用于比较大小的关系运算符的总数为(6)。

67 x>0 && y<=5 的相反表达式为(x<=0 || y>5)。

68假定x是一个逻辑量,则(x && !x)和(x || !x)的值分别为(0和1)。

69假定x=4.6,则函数ceil(x)的值为(5.0)。

70 表达式 floor(2.3457*100+0.5)/100的值为(2.35)。

71若x的值为5,则执行“if(x>10) x++; else x--;”语句后,x的值为(4)。

72若x的值为-10,则执行“if(x) x++; else x--;”语句后,x的值为(-9 )。

73在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被

改写成语句(if)。

74每个C语言程序文件的编译错误的类型有()。2.在switch语句中,每个保留字case后 面

的表达式必须是()。常量

75当处理问题时的循环次数是确定的,则采用的最合适的循环方式为(for)。

76若需要定义一个符号常量,并且使C语言能够进行类型检查,则应在定义语句的开始使

用保留字(const)。

77已知'A'~'Z'的ASCII码为65~90,当执行“int x='C'+5;”语句后x的值为(72)。

78每次先进行循环条件的判断,然后再执行循环体的语句为(for和while)。

79若n的值为5, s的值为0,则执行“while(n>0) s+=n--;”语句后,s的值为(15)。

80流程控制类语句包括的3类语句为(选择、循环、跳转)。

81若i的值为0,则执行“do i++; while(i*i<10);”语句的过程中,循环体被执行的次数为

4)。

82若要结束所在函数的执行过程,返回到调用该函数所在位置,则使用的语句为return)。

83要结束所在循环语句中循环体的一次执行,则在其中使用的语句为(continue)。

84若x的值为15,则执行“if(x>10) x++; else x--;”语句后,x的值为(16)。

85若x的值为-10,则执行“if(!x)x++; else x--;”语句后,x的值为(-11)。

86 若 x 的值为 10,则执行 “switch(x%3){case 0: x++; case 1:x++; case 2: x++;}” 语句后,

x 的值 为(12)。

87 若 x 的值为 10,则执行 “switch(x%3){case 0: x++; break; case 1:x++; default: x++;}"语

句后, x的值为(12)。

88若n的值为10,则执行“for(i=1;i

数 为(1)。

89 若 n 的值为 10,则执行 “for(i=0;; i++) if(i>n/3) break;”语句后,i 的值为(4)。

90若n的值为10,则执行“for(i=1;i

数 为(n-1)。

91若n的值为10,则执行“for(i=0;i

语句 的执行总次数为(n(n+1)/2)。

92若n的值为10,则执行“while(n-->0)s+=n;”语句的过程中,循环体被执行的次数为

10)。

93若n的值为5, s的值为0,则执行“while(n-->0) s+=n;”语句后,s的值为(10)。

94在下列的语句中,必须以分号作为结束的语句是(do)。

95若n的值为5, s的值为0,则执行“do s+=n--; while(n>0);”语句后,s的值为(15)。

96要结束任一种循环语句或switch语句的执行,则在其中使用的语句为(break)。

97在一个数组中,数组元素a[i]前面的元素个数为(i)。

98假定一维数组的定义为“chara[8];”,则该数组所占用的存储空间的字节数为(8)。

99假定有一个定义语句为“int a[10]={3,4,2,8,6};”,则元素a[3]的值为(8)。

100在下面字符数组的定义语句中,有语法错误的是(char a[10]='5')。

101假定有一个定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[2][1 ]的值为(0)。

102假定二维数组的定义语句为'int* a[3][5];”,则该数组所占用的存储空间的字节数为

(60)。

103使用“typedef int Integer;”语句把标识符Integer定义为一个(整数类型)。

104使用“typedef int ABC[10];”语句把标识符ABC定义为(整型数组类型)。

105利用一维字符数组存储一个字符串时,在其末尾自动存储的一个字符是(0 )。

106 一个二维字符数组a[M][N]能够存储的字符串个数至多为(M)。

107若需要把一个字符串赋给字符数组,则选用的函数是(strcpy )。

108假定有一个元素类型为int的数组a[10],它所占用的存储空间的字节数为(40)。

109假定一维数组的定义为“char* a[8];”,则该数组所占用的存储空间的字节数为(32)。

110假定有一个定义语句为“int a[10]={3,4,2,8,6};”,则元素a[5]的值为(0)。

111在下面的一维数组定义语句中,有语法错误的是(int a[])。

112假定二维数组的定义语句为“int a[3][5];”,则该数组所含元素的个数为(15 )。

113假定有一个定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[1][2]的值为(6)。

114对于一个长度为n的字符串,保存它至少需要占用的存储字节数为(n+1)。

115对于一个二维字符数组a[M][N],存储每个字符串的长度至多为(N-1)。

116若需要比较两个字符串的大小,则选用的函数是(strcmp)。

117 一个指针类型的简单变量占用内存中的字节数为(4)。

118在定义指针变量的语句中,在指针变量名的前面标记的字符为(*)。

119假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址大

(1 个字节)。

120假定变量m定义为“int m=7;”,则下面定义语句格式正确的是(int *p=&m)。

121假定一个数据对象为int*类型,则指向该对象的指针类型为(int**)。

122假定p是一个指向数据对象的指针,则通过p表示该数据对象为(*p)。

123若p指向x,则与x的等价表示为(*x)。

124假定a为一个数组名,则下面表达式中错误的是(*a++)。

125已知“int a[10], x, *pa=a;”,若要把数组a[3]元素的值赋给x,则不正确的语句为

(x=*pa+3)。

126已知“ chara[3][5];”,则元素a[2][3 ]的地址比该数组的首地址大(13个字节)。

127 一个二维数组元素为a[i][j],它的指针访问方式不正确的是(*a[i]+j)。

128对于每个进行动态存储分配的函数,其返回值类型为(void*)。

129已知“int *p=calloc(24,sizeof(int));”,则p所指向的动态内存空间中,能够存储整

型元素 的个数为(24)。

130 一个指针指向一个数据对象,它保存着该数据对象的地址,若数据对象为DataType类

型,则该指针的类型为(DataType*)。

131NULL是一个符号常量,通常作为空指针值,它的取值为(0)。

132 一个整型指针p转换为字符指针,则采用的强制转换表达式为((char*)p)。

133若要定义整型指针p并初始指向x,则所使用的定义语句为(int *p=&x)。

134假定p所指对象的值为25, p+1所指对象的值为42,则表达式*p++的值为(25)。

135假定p是一个指针变量,则该变量的地址表示为(&p)。

136已知“char*s="Hello world!";”,要使变量p指向s所指向的同一个字符串,则p应定义

为(char*p=s)。

137假定a为一个数组名,则下面表达式中错误的是(*a++)。

138 已知 “charb[10]=” 12345”

*p=b;”,U*(p+2)的值为('3')。

139已知“int a[6][5];”,则元素a[2]

的地址比该数组的首地址大(56个字节)。

140要使p指向二维整型数组a[10][20],p应定义为(int(*p)[20]=a)。

141执行“int *p=malloc(sizeof(double)*2);”语句后得到的动态存储空间的字节数为(16)。

142利用动态存储分配创建具有10个字节的一维数组空间的正确语句是 (char*p=malloc

(10))。

143下面正确的函数原型语句是(int Function(void a))

144函数调用func(2+x,4*y,5)中所含实参的个数为(3)。

145在程序的一个文件中定义的函数,若要在另一个文件中调用,则必须在这另一个文件中

给出该函数的(原型语句)。

146假定一个函数的原型为int ff(int x),一个整型变量为a,则下面函数调用表达式不正

确的 是(ff(*a))。

147若用数组名作为函数调用的实参,传递给形参的是(数组的首地址)。

148假定一个函数原型为int f1(int a[][N],int n),与数组参数等价的表示为(int (*a)[N])。

149在C语言中,用户定义的标识符分为4种作用域,下列选项中不属于这4种作用域的是

(语句)。

150函数定义参数表中的每个形参变量,其作用域范围为所在的整个(函数)。

151在函数外定义的变量,若不带有作用域关键字,则它具有(全局作用域)。

152在函数体中把出现调用自身函数的情况称为(直接递归调用)。

153在函数定义的参数表中,也可以使用函数参数,假定一个函数参数原型为intff(int),

则 等价的函数指针说明为(int (*ff)(int))。

154在下面的函数声明语句中存在着语法错误的是(AA(int a; int b))。

155如果一个函数定义仅允许为所在的程序文件调用,则应在该函数定义的最前面添加的关

键字为(static)。

156假定一个函数定义为“extern char* f1(char* x){return x;}”,表示该函数作用域的关键

字 为(extern)。

157假定一个函数的原型语句为“int ff(int* x);”,一个整型数组为a[10],则下面函数调

用表 达式不正确的是(ff(a[0]))。

158假定一个函数原型语句为“int f1(int a[],int n);”,与数组参数等价的表示为(int* a)。

159假定一个函数的参数说明为const int a,则在函数体中不能进行的操作是(a=10)。

160在函数体中定义的变量具有(局部作用域)。

161在函数外定义的变量,若带有作用域关键字static,则它具有(文件作用域)。

162在函数体中定义一个静态变量时,选用的存储属性关键字为(static)。

163假定一个函数原型为“void ff(int a[],int n)”,则对应的函数指针类型为 (void(*ff)

(int*a,int))。

164在结构类型的定义中,使用的关键字是(struct)。

165在结构类型的定义中,不同数据成员的定义项之间采用的分隔符是(分号)。

166假定一个结构类型的定义为“struct B{int a[5]; char* b;};”,则该类型的长度为(24)。

167假定有结构定义为“struct Book{char title[20]; double price;}bk;”,则不正确的语句定义

为 (struct Book c=&bk;)。

168假定有结构定义为“struct Book{char title[20]; double price;};”,则不正确的语句定义为

(struct Book *x=calloc(sizeof(struct Book));)。

169假定要访问一个结构变量x中的数据成员a,则表示方法为(x.a)。

170假定要访问一个结构指针p所指对象中的b指针成员所指的对象,则表示方法为

x:a)。

171假定一个链表中结点的结构类型为“struct AA{int data, struct AA *next;};”,则next数据

成员的类型为(struct AA*)。

172假定一个链表的表头指针为f,结点中包含有data和next域,则向该链表的表头插入一

个地址为p的结点时,应执行的操作为p->next=f和(f=p)。

173在联合类型的定义中,使用的关键字是(union)。

174每种类型的定义都对应有一个C语言保留字(关键字),如联合类型的定义使用的关键

字为union,结构类型的定义使用的关键字为struct。

8)

175在结构类型的定义中,对于类型标识符后的定义体,使用的起止标记符是一对(圆括

号)。

176假定一个结构类型的定义为“struct A{int a,b; double c;};”,则该类型的长度为(16 )。

177假定一个结构类型的定义为“struct D{int a; D* next;};”,则该类型的长度为(8)。

178假定有结构定义“struct Book{char title[20]; double price;};”,则不正确的语句定义为

(struct Book b=("C++ Programming",27.0))。

179 假定有结构定义“struct Book{char title[20]; double price;};”,则正确的语句定义为

struct Book *x=calloc(6,sizeof(struct Book));)。

180假定要访问一个结构指针变量x中的数据成员a,则表示方法为(x->a)。

181与结构成员访问表达式p->name等价的表达式为((*p).name)。

182在一个链表中,每个结点必然存在着一个指向自身结点类型的指针域,用来保存下一个

结点的(地址)。

183假定一个链表的表头指针为f,结点中包含有data和next域,则向该链表的表头插入一

个地址为p的结点时,应执行的操作为(p->next=f和f=p)。

184假定一个联合类型的定义为“union D{int a; D* next;};”,则该类型的长度为(4)。

185标准输入设备键盘的文件流标识符是(stdin)。

186表示文件结束符的符号常量为(EOF)。

187在C语言程序中,进行数据的输入和输出操作时,需要包含的系统头文件是(stdio.h)。

188在C语言中,打开一个数据文件的系统函数为(fopen())。

189在C语言中,为只读操作打开一个文本文件的方式为("r")。

190在C语言中,为追加写操作打开一个二进制文件的方式为("ab")。

191在一个文本文件中保存一个实数2.4所占用的字节数为(3)。

192向一个文本文件中写入一个字符串的系统函数为(fputs())。

193若一个文本文件的长度为n-1,当以"a"方式打开时,其写文件指针初始指向的字节位置

编号为(n)。

194从一个文本文件中读取一个字符的系统函数为(fgetc())。

195若一个文本文件的长度为n-1,当以"r"方式打开时,其读文件指针初始指向的字节位置

编号为(0)。

196从一个二进制文件中读取数据的系统函数为(fread())。

197向一个二进制文件中写入数据的系统函数为fwrite(),它的参数有(4)。

198标准输出设备显示器的文件流标识符是(stdout)。

199表示文件结束符的符号常量EOF的值为(-1)。

200假定一个磁盘数据文件占用n个字节的存储空间,则按字节进行编址的范围是(0~

(n-1) )。

201在C语言中,为只写操作打开一个文本文件的方式为("w")。

202在C语言中,文本文件的打开方式共有(6)。

203在C语言中,为读和写操作打开一个二进制文件,若文件不存在则自动建立空文件的打

开方式为("wb+")。

204从一个文本文件中读取以换行符结束的一个字符串的系统函数为(fgets())。

205向一个文本文件中写入一个字符的系统函数为(fputc())。

206向一个二进制文件中写入数据的系统函数为(fwrite())。

207从一个二进制文件中读取数据的系统函数为fread(),它的参数有(4个)。

判断题:

1:在C语言字符集中,包含有全部26个英文大写字母和对应的小写字母。(对)

2在C语言字符集中,一个大写英文字母和它的小写英文字母被视为不同的字符(对)

3在C语言程序中,ABC和abc被作为同一标识符使用(错)

4在C语言中,保留字是有专门含义和作用的,不能作为一般标识符使用(对)

5在C语言中,作为标识符的第一个字符只能是英文字母或下划线,不能是数字字符。(对)

6在一个函数定义中,函数体的格式是一条复合语句。对

7一个函数必须返回一个值,不允许定义不返回任何值的函数。错

8若要在程序文件中使用数学函数,则需要引入的系统头文件为math.h。对

9若要在程序文件中使用标准输入和输出函数,则需要引入的系统头文件为对

10在一行中出现多条语句时,注释语句只能为最后一条语句。对

11在利用printf()函数向屏幕输出数据时,需要在参数表的开始位置使用相应的格式字符

串。 对

12在“printf("%d - %d = %d",x,y,x-y);”语句所使用的格式字符串中,包含有3个格式符。对

13在执行“printf("s=%sn","abc");”语句时,输出结果为s=abc。对

14在“printf("s=%cn","abc");”语句中,格式符的使用同后面的输出数据相适合。错

15在执行“printf("%d - %d = %d",x,y,x-y);”语句时,其输出的前两个数据值之间将采用逗号

分开。错

16在利用scanf()函数从键盘输入数据时,需要在参数表的开始位置使用相应的格式字符

串。 对

17在“scanf("%d %d",&x,&y);”语句所使用的格式字符串中,包含有2个格式符。对

18在执行“scanf("%d %d",&x,&y);”语句时,需要从键盘上输入2个整数。对

19 一个C语言程序只能够包含一个程序源文件。错

20 一个C语言程序只能够包含一个用户头文件。错

21在C语言程序上机操作的过程中,编译程序的操作步骤之后是连接操作。对

22在程序文件中添加注释内容是为了增强程序的可读性。对

23. 在C语言中,作为标识符的第一个字符可以是英文字母、数字或下划线字符。错

24. 在C语言中,标识符中的非首字符可以是英文字母、数字或下划线字符。对

25. 当需要在程序文件中引入用户定义的头文件时,使用的不是#include命令。错

26. 使用#include命令只能包含头文件,不能包含其他任何文件。错

27. 注释语句的内容只会出现在源程序文件中,不会出现在编译后而生成的目标代码文件

中。 对

28. 一条注释语句的最后必须使用分号结束。错

29. 源程序文件被编译成目标文件后,其目标文件中也存在有对应的注释内容。错

30. 源程序文件被编译成目标文件后,源程序文件中的注释语句仍然存在。对

31. 在一条注释语句中,除了注释内容外,不需要使用任何特定的标记符。错

32. 多行注释语句的开始和结束标记符可以互换使用。错

33. 在执行“printf("%5d",x);”语句时,其输出的x的值所占用的显示宽度将大于等于5个

字符位置。对

34. 在执行“printf("%6d",x);”语句时,其输出的x的值所占用的显示宽度将小于6个字符

位置。错

35. 在执行“printf("%8.2f",x);”语句时,其输出的x的值所占用的显示宽度将大于等于8个

字符位置。错

36. 在“scanf("%d %d",&x,&y);”语句中,x和y变量均为整数类型。对

37. 在“scanf("%s",x);”语句中,x变量不是字符指针类型。错

38. 在“scanf("%d-%d=%d",&x,&y,&z);” 语句中,有语法错误。错

39. 在C语言程序上机操作的过程中,连接程序的操作步骤之前是编译程序。对

40. 在C语言程序上机操作的过程中,需要对每个用户头文件进行单独的编译操作。错

41. 在C语言程序上机操作的过程中,不能够对用户头文件进行单独的编译操作。对

42. 广义整数类型包括短整型、标准整型和长整型3种。错

43. 短整型、标准整型和长整型的长度分别为2、4和8。错

44常数3.26是双精度浮点数。错

45常数3.26f是单精度浮点数。错

46浮点数包括单精度浮点数和双精度浮点数两种。对

47常数3.26是双精度浮点数。叙述不正确

48表达式(float)2外的值为6。错

49表达式x=x+y表示成复合赋值表达式为x=+y。错

50增量表达式++y表示成赋值表达式为y=y+1。对

51表达式sizeof(25)的值等于4。对

52逻辑表达式(x>3 && x<10)的相反表达式为(x<=3 || x>=10)。对

53在C语言中,求一个实数的绝对值的数学函数为fabs(x)。对

54已知x=-25,则abs(x)的值为25。对

55在C语言中,正弦、余弦或正切函数的参数的度量单位是度。错

56常数3.26e4是双精度浮点数。对

57浮点数只有单精度表示,没有双精度表示。错

58定点数包括单精度定点数和双精度定点数两种。对

59定义符号常量只有一种方法,就是采用预处理命令#define的方法。错

60使用const语句定义一个符号常量时,则必须对它同时进行初始化。对

61在一条变量定义语句中,定义的变量和赋给它的初值之间只能使用等号(=)。对

62假定x=5,则表达式2+x++的值为7。对

63表达式(int)14.6%5的值为0。错

64表达式x=x+1表示成增量表达式为x++。错

65假定x=5,则执行“a=(x?10:20);”语句后a的值为10。对

66逻辑表达式(a>b || b==5)的相反表达式为(a>b && b==5)。错

67在C语言中,求一个整数的绝对值的数学函数为abs(x)。对

68在C语言中,退出程序运行的系统函数为exit()。对

69在if语句中,可以带有else子句,也可以省略它。对

70在if语句中,每个else关键字与它前面同层次并且最接近的if关键字相配套。对

71在一条变量定义语句中可以同时定义多个变量。对

72在一条变量定义语句中,当同时定义多个变量时,各变量之间只能使用逗号分开。对

73在一条变量定义语句中,定义的变量和赋给它的初值之间不需要使用等号(=)。错

74当循环次数确定时,while循环语句能够转换为for循环语句。对

75 while循环语句中的循环体至少被执行一次。错

76 do-while循环语句中的循环体至少被执行一次。对

77 do-while循环语句是以分号结束的语句。对

78 break语句只能使用在循环语句中。错

79 return语句只有保留字,没有其他成分。错

80 continue语句只有保留字,没有语句体。对

81在if语句中,必须带有else子句,不能省略它。错

82在for循环语句的头部,for后面括号内共有3个表达式位置。对

83 for循环语句不能够被转换为while循环语句。错

84 while循环语句中的循环体可能不会被执行。对

85 while循环语句的循环体,只能是复合语句,不能是简单语句。错

86 do-while循环语句中的循环体可能不会被执行。错

87 do-while循环语句的循环体,只能是复合语句,不能是简单语句。错

88 do-while循环语句是以循环体结尾的。错

89 break语句可以使用在switch语句中。对

90 return语句中可以带有返回表达式。对

91 continue只能使用在任一种循环语句的循环体中。对

92对于一维数组元素,数组名后使用一对中括号。对

93二维数组元素带有一个下标。错

94在一维数组的定义语句中,可以给数组中每个元素赋初值。对

95假定一维数组的定义为“double a[M];”,则每个数组元素的下标取值范围在1~M之间。

96假定二维数组的定义语句为“int* a[3][5];”,则该数组所占用的存储空间的字节数为

()。

97假定二维数组的定义语句为“double a[M][N];”,则每个数组元素的列下标取值范围在

0~N-1之间。对

98执行“typedef int intType;”语句后,在使用int定义整型变量的地方都可以使用整数类型

标识符intType来定义整型变量。对

99使用“typedef char BB[10][50];”语句定义标识符BB为含有10行50列共500个元素的二

维字符数组。错

100在C语言中,在定义一个字符数组时,不能利用一个字符串进行初始化。错

101对于一个长度为n的字符串,存储它的字符数组的长度至少为n。错

102有一个语句为“char s2[4]="abcd";”,s2数组长度是合适的。错

103 一维数组元素带有两个下标。错

104对于二维数组元素,数组名后使用两对中括号。对

105在一维数组的定义语句中,给数组赋初值的部分是用一对花括号括起来的数据表。对

106在一维数组的定义语句中,数组名前为元素类型关键字。对

107在二维数组的定义语句中,数组名后带有两对圆括号。错

108假定二维数组的定义语句为“double a[M][N];”,则每个数组元素的列下标取值范围在

1~N之间。错

109使用“typedef char BB[10];”语句定义标识符BB为含有10个元素的一维字符数组。错

110使用“typedef char BB[10][50];”语句定义标识符BB为含有10行50列共500个元素的 二

维字符数组类型。对

111 一个二维字符数组a[10][20]中存储每个字符串的最大长度为19。对

112 一个指针指向一个数据对象时,指针值是这个对象的首字节地址。对

113假定一个数据对象为x,则x的地址表示为*x。错

114在定义指针变量的语句中,最前面的类型关键字仍然允许是指针类型。对

115在定义指针变量的语句“int *p,**pp;”中,p和pp具有相同的指针类型。错

116假定p所指对象的值为25, p+1所指对象的值为42,则表达式*++p的值为42。对

117假定p所指对象的值为25, p-1所指对象的值为42,则执行*p--运算后,p所指对象的 值

为42。错

118在一个函数定义中,函数体的格式是一条复合语句。1.假定a是一个一维数组,则表达

式*(a+i)所对应的元素为a[i]。对

119在一个函数定义中,函数体的格式是一条复合语句。1.假定a是一个一维数组,则表达

式*(a+i)所对应的元素为a[i]。对

120假定a是一个一维数组,则进行a++运算是允许的。错

121已知“int a[3][5]; int(*p)[5]=a;”,则进行p++运算是允许的。对

122在程序文件中要进行动态存储分配和释放,则需要引入的系统头文件是stdio.h。错

113进行动态存储分配的malloc()函数带有一个参数。对

114在定义指针变量的语句中,对指针变量不允许赋初值。错

115在定义指针变量的语句"int *p,pp;”中,p和pp具有相同的数据类型。错

116在语句"typedef int* inPointer;”中,把标识符inPointer定义为int*类型。对

117假定a是一个一维数组,则a+i的值与&a[i]的值相等。对

118已知“int a[10], *p=a;”,则进行*p++运算是不允许的。错

119假定a是一个二维数组,则表达式*(a[j]+i)所对应的元素为a[i][j]。错

120假定a是一个二维数组,则数组名a的值和a[0]的值相等。对

121进行动态存储分配的calloc()函数带有一个参数。错

122用于释放动态存储空间的函数为free,调研它需要带有一个参数。对

123假定a是一个指针数组,则a+i所指对象的地址比a地址大4*i个字节。对

124在一个函数定义中,参数表中的参数类型可以为void类型。错

125在一个函数定义中,参数表中的参数定义之间是采用分号分开的。错

126在一个函数定义中,函数体是一条复合语句。对

127函数被调用执行中,形参变量的初值由调用该函数时对应的实参值给定。对

128函数调用参数表中的每个实参只能是常量或变量。错

129于全局或文件作用域变量,若没有对它进行初始化,则默认的初值为1。错

130对于全局或文件作用域变量,其定义位置只能在程序文件中所有函数定义之外。对

131对于不加static标识的局部变量,若没有对它进行初始化,则它的初值是0。错

132在函数定义中,存在着调用自身函数的函数调用表达式,则称此函数为递归函数。对

133在递归函数的每次递归调用中,对于参数表中的每个形参,得到的值都相同。错

134在C语言程序中,对于递归函数和非递归函数,其函数头部有区别标志。错

135函数定义格式中的参数表被称为实参表。错

136函数定义格式中的参数表被称为形参表。对

137函数调用参数表中的每个实参可以是表达式。对

138对于标识为static属性的变量,若没有对它进行初始化,则默认的初值为0。对

139在函数体中定义一个变量时,若不选用任何存储属性关键字进行标识,则它为静态变

量。

错140在C语言程序中,主函数也可以成为递归函数。错

141在C语言程序中,除主函数外的任何用户定义的函数都可以是递归函数。对

142在C语言中,一个结构类型的长度等于所含的所有数据成员类型的长度之和。对

143在结构类型的定义中,结构类型的作用域范围,与它的定义位置无关。错

144在结构类型的定义中,其中的数据成员可以是本身类型的直接对象。错

145使用结构类型时,只需要使用类型标识符,不需要使用关键字struct。错

146在结构成员访问运算符中,点运算符(.)为双目运算符。对

147在结构成员访问运算符中,点运算符和箭头运算符的左边均为结构变量。错

148在一个链表中,表尾结点指针域的值为空(NULL)。对

149访问一个链表时,必须从表头指针出发,依次访问每个结点。对

150在同一个联合类型的定义中,各数据成员名必须不同。对

151在结构类型的定义中,其中的数据成员可以是本身类型的直接对象。错

152在同一个结构类型的定义中,各数据成员名必须不同。对

153在结构类型的定义中,其中的数据成员可以是本身类型的指针对象。对

154在结构类型的定义中,不允许出现结构类型不完整的超前定义。错

155.定义结构类型的同时能够定义它的变量。对

156定义结构类型的变量时,能够用同类型的其他变量进行初始化,不能用数据表进行初始

化。错

157使用结构类型时,必须一起使用关键字struct和类型标识符。对

158在一个链表中,表头结点和表尾结点均无后继结点。错

159在一个链表中,若表头指针的值非空,则表头和表尾结点必然不是同一个结点。错

160在C语言中,一个结构类型的长度等于所含的所有数据成员类型长度的最大值。错

161.C语言中的标准输入和输出设备文件都属于字符文件。对

162在一个磁盘数据文件的文件名中,文件主名是必须的,扩展名可任选使用。对

163.C语言系统中提供一个用来描述文件属性的类型标识符为FILE,它与系统头文件stdio.h

无关。错

164在数据文件打开方式字符串中,字符加号(+)具有确定的含义,代表既允许读也允许写

的 打开方式。对

165在C语言中,打开一个数据文件的系统函数为fopen(),它带有一个字符串参数,用来给

定待操作的文件名。错

166每次只能向文本文件中写入一个字符,不能一次写入一个字符串。错

167向文本文件中输出数据时,需要调用系统函数fputc()或fputs()。对

168从文本文件中输入数据时,需要调用系统函数fputs()或fgets()。错

169若对一个文本文件以"r"方式打开时,则称该文本文件为输出文件。错

170对二进制文件进行读和写操作将使用不同的系统函数。对

171在C语言中,系统函数fseek()用来移动数据文件中的文件位置指针,它仅带有一个文件

流参数。错

172 一个磁盘数据文件的文件名由文件主名和扩展名所组成,其中间用圆点分开。对

173当向字符文件输出一个换行符时,实际将输出的是回车符或换行符。错

174C语言系统中提供一个用来描述文件属性的类型标识符为FILE。对

175在数据文件打开方式字符串中,字符r、w和a具有确定的含义,分别代表读、写和追

加方式。对

176在数据文件打开方式字符串中,字符加号(+)只用于打开二进制文件的方式中,不能用

于 打开文本文件的方式中。错

177每次只能从文本文件中读取一个字符,不能一次读取一行字符串。错

178从文本文件中输入数据时,需要调用系统函数fgetc()或fgets()。对

179向文本文件中输出数据时,需要调用系统函数fputc()或fgetc()。错

180对二进制文件进行读和写操作将使用同一个系统函数。错

181在C语言中,系统函数fseek()用来移动数据文件中的文件位置指针。对

1. #include

void main()

{

int x,y;

x=5; y=6;

printf("x+y=%d, ",x+y);

printf("x*y=%dn",x*y);

}运行结果:x+y=11, x*y=30

2. #include

int cube(int);

void main(void)

{

printf("cube(3)=%dn",cube (3));

printf("cube(5)=%dn",cube (5));

printf("cube(8)=%dn",cube (8));

}

int cube(int x) { return x*x*x;}

运行结果:cube(3)=27 cube(5)=125 cube(8)=512

3. #include

double AVE(double x, double y, double z);

void main()

{

double a,b,c;

double averageValue;

a=2;b=3;c=4;

averageValue=AVE(a,b,c);

printf("averageValue: %lfn",averageValue);

averageValue=AVE(a+1,b+2,c+5);

printf("averageValue: %Lfn",averageValue);

}

假定AVE函数的定义在abc.c程序文件中

double AVE(double x, double y, double z)

{

return (x+y+z)/3;

} 运行结果:averageValue: 3.000000 averageValue: 5.666667

4. #include

#include "example.h"

void main()

{

int a,b,c;

printf("请输入任意三个整数:”)

scanf( "

d %d %d”

&a,&b,&c);

printf("求和:

dn",Sum(a,b,c));

printf("乘积:

dn",Product(a,b,c));

}

其中example.h文件的内容如下:

int Sum(int, int, int);

int Product(int, int, int);

这两个函数的定义模块被保存在另一个程序文件中,它将被编译后连接到主文件后产

生 出可执行文件。该程序文件的内容如下:

int Sum(int a,int b, int c)

{

return a+b+c;

}

int Product(int a,int b, int c)

{

return a*b*c;

} 运行结果:请输入任意三个整数:2 3 4 求和:9乘积:24

5. #include

#include

#include

const int N=10;

void main()

{

int i,x,y,z,c=0;

srand(time(0));

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

{

x=rand()%90+10;

y=rand()%90+10;

printf("%d + %d = ",x,y);

scanf("%d",&z);

if(x+y==z) c++;

}

printf("最后得分:%dn",c*10);

} 运行结果:x+y=11, x*y=30

5.打印出a~f中每个大小写字母所对应的ASCII码。

#include

void main(void)

{

char c1='A', d1='a', c2='F', ch;

for(ch=c1; ch<=c2; ch++, d1++)

{

printf("%c: %d, ",ch,ch);

printf("%c: %dn",d1,d1);

}

}

运行结果:A: 65, a: 97 B: 66, b: 98 C: 67, c: 99 D: 68, d: 100 巳 69, e: 101 F: 70, f: 102

6. #include

void main()

{

int x,y,z,c=0;

printf("输入两个整数:")

scanf("%d %d",&x,&y);

printf("%d + %d = ",x,y); scanf("%d",&z); if(x+y==z) c++;

printf("%d - %d = ",x,y); scanf("%d",&z); if(x-y==z) c++;

printf("%d * %d = ",x,y); scanf("%d",&z); if(x*y==z) c++;

printf("%d / %d = ",x,y); scanf("%d",&z); if(x/y==z) c++;

printf("%d %% %d = ",x,y); scanf("%d",&z); if(x%y==z) c++;

printf("共 5 道题,答对

d 道题n",c);

} 运行结果:输入两个整数:15 8

15 + 8 = 23 15 - 8 = 7 15 * 8 = 120 15 / 8 = 1 15 % 8 = 7 共 5 道题,答对 5 道题

7. #include

void main() {

int a=25,b=18;

if(a>b) printf("%sn","a>b");

if(a==b) printf("%sn","a==b");

if(a

} 输出结果:a>b

8. #includestdio.h>

#include

void main() {

int a=18,b=4,c=0;

if(a/b) {c+=a/b; c+=a%b;}

if(a%b) {a=a/b; b=a%b;} printf("%d",a+b+c);

} 输出结果:a>b

9. #include

void main() {

int x=5,y=0;

switch(2*x-3) {

case 4: y+=x; break;

case 7: y+=2*x+1; break;

case 10: y+=3*x; break;

}

printf("y=%dn",y);

} 输出结果:y=11

10. #include

void main() {

int x=9,y=0;

switch(x%3) {

case 0: y+=x;

case 1: y+=2*x+1;

case 2: y+=3*x; break;

default: y+=x-1;

}

printf("y=%dn",y);

} 输出结果:y=55 。

11. #include

void main() {

int n=10,y=0;

while(n>5) y+=n--;

printf("y=%dn",y);

} 输出结果:y=40

12. #include

void main() {

int i=1,p=1,s=1;

while(s<40) {i++; p=p*i; s=s+p;}

printf("s=%dn",s);

} 输出结果:s=153

13. #include

void main() {

int x=16,s=0;

do {s+=x; x-=3;} while(x>0);

printf("s=%dn",s);

} 输出结果:s=51

14. 此程序的功能是从键盘上输入两个正整数 ,输出结果为它们的平方和

#include

void main() {

int x,y;

do scanf("%d %d",&x,&y); while(x<=0 || y<=0);

printf("%dn",x*x+y*y);

}

15. #include

void main() {

int i,s=0;

for(i=1; i<10; i++) {

s+=i*(i+1);

if(s>40) break;

}

printf("s=%dn",s);

} 输出结果:s=70

16. #include

void main() {

int i=0,s=0;

do {

i+=2;

if(i%3==0) continue;

s+=i*(i+1);

} while(s<60);

printf("s=%dn",s);

} 输出结果:S=98

17. #include

void main() {

int a=5,b=8,c=6,d=15,x,y;

if(a>=b) x=a; else x=b;

if(c>=d) y=c; else y=d;

if(x>=y) printf("%dn",x);

else printf("%dn",y);

} 答案:15

18. #include

void main() {

int x=5,y=8,z=12;

if(x>y && x>z) printf("%dn”,x);

else if(y>x && y>z) printf("%dn",y);

else printf("%dn",z);

} 答案是:12

19. #include

void main() {

int a=5,b=8,c;

if(3*a>2*b) c=2*a+3*b;

else if(a==b) c=a*a+b*b;

else c=a*b+3;

printf("c=%dn",c);

} 答案是:c=43

20. #include

void main() {

int x=5,y=0;

switch(2*x-3) (

case 4: y+=x;

case 7:y+=2*x+1;

case 10: y+=3*x;

}

printf("y=%dn",y);

}答案是:y=26

21. #include

void main() {

char ch;

int a,b,c;

scanf("%c",&ch);

scanf("%d %d",&a,&b); switch(ch) {

case '+': c=a+b; break;

case '-': c=a-b; break;

case '*': c=a*b; break;

case '/': c=a/b; break; default: printf("Error!n");

}

printf("%d%c%d=%dn",a,ch,b,c);

}答案是:3 5=15

22. #include void main() {

int i,s=0;

for(i=16; i>0; i-=2)

if(i%3==0 || i%4==0) s+=i; printf("s=%dn",s);

} 答案是:s=46

23. #include

void main() {

int i,x,y,s=0;

scanf("%d %d",&x,&y);

if(x>y) {i=x; x=y; y=i;} for(i=x; i<=y; i++)

if(i%2==1) s+=i*i; printf("s=%dn",s);

}答案是:奇数

24. #include const int N=100;

void main() { int a,b;

for(a=2; a<=N; a++) {

for(b=2; b*b<=a; b++)

if(a%b==0) break;

if(b*b>a) printf("%d ",a);

}

} 答案是:素数(质数)

25. #include

void main() {

int i=0, s=0;

while(s<50) {i+=2; s+=i*i;} printf("s=%dn",s);

} 答案是:s=56

26. #include

void main() {

int x,p=2;

scanf("%d",&x);

while(x>=p)

if(x%p==0) {printf("%d=%d*%dn",x,p,x/p); break;} else p++;

} 答案是:35=5 7

27. #include

void main() {

int x,y,a,p=1;

scanf("%d %d",&x,&y);

if(x

if(x%y==0) {printf("%dn", y); return;}

a=2;

while(y>=a)

if(x%a==0 && y%a==0) {x=x/a; y=y/a; p*=a;} else a++;

printf("%dn",p);

} 答案是:公约数

28. #include

void main() {

int x=36,y=48,z;

do {z=x%y; x=y; y=z;} while(y>0);

printf("x=%dn",x);

}答案是:x=12

29. #include

void main() {

int x,i=0,s=0;

scanf("%d",&x);

do {i+=2; s+=i*i;}while(s

printf("n=%dn",i-2);

} 答案是:最大

30. #include

void main() {

int x=37,k=2;

do {if(x%k==0) break; k++;} while(k*k<=x);

if(k*k>x) printf("Yes!n");

else printf("No!n");

} 答案是:Yes!

31. #include

void main()

{

int c1=0, c2=0, c3=0;

int i,j,k;

for(i=0; i<5; i++) {

for(j=i; j<5; j++) c1++;

for(k=5; k>=i; k--) c2++;

c3++;

}

printf("%d %d %dn",c1,c2,c3);

}运行结果:15 20 5

32. #include

int cube(int);

void main(void)

{

int i;

for(i=10; i<=16; i++) {

int j=2, k=i;

printf("%d:",i);

do {

while(k%j==0) {printf("%d ",j); k/=j;}

j++;

} while(k>=j);

printf("n");

}

} 运行结果:10:2 5 11:11 12:2 2 3 13:13 14:2 7 15:3 5 16:2 2 2 2

33. #include

double AVE(double x, double y, double z);

void main()

{

int x,y;

int i=2,p=1;

printf("请输入两个正整数x和y:");

scanf("%d %d",&x,&y);

do {

while(x%i==0 && y%i==0) {

p*=i;

x/=i;

y/=i;

}

i++

}while(x>=i && y>=i);

printf("x和y的最小公倍数为

dn",p*x*y);

} 运行结果:请输入两个正整数x和y: 120 75 //假定输入的两个正整数为120和75

x和y的最小公倍数为600

34. #include

void main() {

int a[8]={3,8,6,5,9,2,8,5};

int i,s=0;

for(i=0;i<8;i++) s+=a[i];

printf("s=%dn",s);

} 答案是:s=46

35. #include

void main() {

int a[8]={12,15,20,8,25,30,28,36};

int i,c[3]={0};

for(i=0; i<8; i++) {

if(a[i]%2==0) c[0]++;

if(a[i]%3==0) c[1]++;

if(a[i]%4==0) c[2]++;

}

printf("%d %d %dn",c[0],c[1],c[2]);

} 答案是:6 4 5

36. #include

void main() {

int a[3][3]={{13,18,16},{15,19,12},{8,15,22}};

int i,j,x=a[0][0];

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

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

if(a[i][j]

printf("x=%dn",x);

}答案是:x=8

37 .#include

void main() {

int a[3][3]={{12,18,10},{8,6,14},{5,10,19}};

int i,j,s[3]={0};

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

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

s[a[i][j]%3]+=a[i][j];

for(i=0; i<3; i++) printf("%d ",s[i]);

}答案是:36 39 27

38. #include<

#include

void main() {

int c1,c2;

char a[20]="String1234n”;

char b[10]="str";

c1=strlen(a);

strcat(b, "2450");

int c2=strlen(b);

printf("%d %dn",c1,c2);

} 答案是:11 6

39. #include

#include

void main() {

char a[20],b[20];

scanf("%s %s",a,b);

if(strcmp(a,b)>=0) printf("%s %sn",a,b); else printf("%s %sn",b,a);

} 答案是:456 123

40. #include

void main() {

int a[8]={10,8,6,15,9,21,8,16};

int i,x=a[0];

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

if(a[i]>x) x=a[i];

printf("x=%dn",x);

}答案:x=21

41. #include

void main() {

int a[8]={12,15,20,8,5,9,16,10};

int i,s[3]={0};

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

s[a[i]%3]+=a[i];

printf("%d %d %dn",s[0],s[1],s[2]);

}答案是:36 26 33

42. #include

void main() {

int a[3][3]={{3,8,6},{5,9,2},{8,5,12}};

int i,j,b[3]={0};

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

for(j=0;j<3;j++) b[j]+=a[i][j];

for(j=0; j<3; j++) printf("%d ",b[j]);

}答案是:16 22 20

43. #include

void main() {

int a[3 ]

={{60,75,83,52},{76,94,88,35},{80,74,46,90}};

int i,j,x=a[0][0],y=-1;

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

for(j=0; j<4; j++)

if(a[i][j]>x) {y=x; x=a[i][j];} else if(a[i][j]>y) y=a[i][j];

printf("%d %dn",x,y);

} 答案是:94 90

44. #include

#include

void main() {

char a[10],b[10],c[10];

int c1,c2,c3;

scanf("%s %s %s",a,b,c);

c1=strlen(a); c2=strlen(b); c3=strlen(c);

if(c1>c2 && c1>c3) printf("%s ",a);

else if(c2>c1 && c2>c3) printf("%s ",b);

else printf("%s ",c);

} 答案是:xucong

45. #include

void main() {

char a[]="abcdbfbgacd";

int i=0,i1=0,i2=0,i3=0;

for(i=0; a[i]!='0'; i++) {

switch(a[i]) {

case 'a': i1++; break;

case 'b': i2++; break;

case 'c': i3++; break;

}

}

printf("%d %d %d %dn",i1,i2,i3,i);

} 答案是:2 11

46. #include

void main() {

char a[]="356";

int i,c[7]={0};

for(i=0; a[i]!='0'; i++)

c[a[i]-48]++; //48 为数字字符 0 的 ASCII 码 for(i=1; i<7; i++) printf("%d ",c[i]);

} 答案是:4

47 #include

#define N 10

#define M 4

void main() {

int a[N]={76,83,54,62,40,75,90,92,77,84};

int b[M]={60,76,90,101};

int c[M]={0};

int i,j;

for(i=0; i

j=0;

while(a[i]>=b[j]) j++;

c[j]++;

}

for(i=0; i

printf("n");

} 运行结果:2 2 4 2

48. #include

#include

void main() {

char a[5][10]={"student","worker","soldier","peasant","cadre"};

char s1[10], s2[10];

int i;

strcpy(s1,a[0]); strcpy(s2,a[0]);

for(i=1; i<5; i++) {

if(strcmp(a[i], s1)>0) strcpy(s1,a[i]);

if(strcmp(a[i], s2)<0) strcpy(s2,a[i]);

}

printf("%s %sn",s1,s2);

} 运行结果:worker cadre

49. #include

#include

void main() {

int *p=malloc(sizeof(int));

*p=20;

*p+=30;

printf("%dn",*p);

}输出结果:50

50. #include

#include

void main() {

int *p=calloc(6,sizeof(int));

int *t;

*p=1;

for(t=p+1; t

printf("%dn",*(p+5));

}输出结果

16

51. #include

void main() {

int a[8];

int s1=0,s2=0,*p;

printf(-请输入8个整数:")

for(p=a; p

for(p=a; p

if(*p%2) s1+=*p;

else s2+=*p;

}

printf("%d %dn",s1,s2);

}答案是:偶数

52. #include

void main() {

char a[5][10]={"12345”,"asde45”,"wer45t”,"zxc12","89uy78"};

char *p;

int i,c=0,k=0;

for(i=0; i<5; i++) {

p=&a[i][0];

while(*p!='0') {

if(*p>='0' && *p<='9') k++;

c++; p++;

}

}

printf("%d %dn",k,c);

}答案是:15 28

53. #include

#include

void main() {

int i,n,*a;

do scanf("%d",&n); while(n<2);

a=calloc(n,sizeof(int));

for(i=0; i

if(i%2) a[i]=2*n+i; else a[i]=2*n-i;

for(i=0; i

}答案是:13 6

54. #include

#include

void main() {

int i=0,j,n=10,*a;

a=calloc(10,sizeof(int));

while(i

a[i]=rand()%30+10; 〃每次得到一个随机整数

for(j=0; j

if(a[i]==a[j]) break;

if(i==j) i++

}

for(i=0; i

}答案是:相同(相等)

55. #include

#include

void main()

{

char*a[5]={"computer","telephone","fridge", "typewriter","television"};

char *p=a[0];

int i;

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

if(strcmp(a[i],p)==1) {printf("%s ",p); p=a[i];} printf("%sn",p);

} 运行结果:computer telephone typewriter

56. #include

#include

const int NN=8;

void main()

{

int i,*p;

int *x=malloc(sizeof(int));

int *a=calloc(NN,sizeof(int));

*x=25;

for(i=0; i

p=a+NN-1;

do {

if(*p>=*x) printf("%d ",*p--);

else break;

} while(1);

printf("n");

free(x);

free(a);

} 运行结果:50 37 26

57. #include

#include

void main()

{

int m,n;

int i,j,s=0;

int **b;

printf(-从键盘上输入待处理矩阵数据的行、列数:")

scanf("%d %d",&m,&n);

b=calloc(m,sizeof(int*));

for(i=0; i

printf("从键盘上输A%d行*%d列整数:n",m,n);

for(i=0; i

for(i=0; i

printf("s=%dn",s);

for(i=0; i

free(b);

} 运行结果:从键盘上输入待处理矩阵数据的行、列数:

从键盘上输入2行*3列整数

23 45 60 10 20 35 s=193

58. 当使用xk4(2,4)调用此函数时

int xk4(int x, int n) { //n为大于等于0的整数

int i,p=1,s=1;

for(i=1;i<=n;i++) {

p*=x;

s+=i*p;

}

return s;

} 答案是:99

59. double xk7() {

double x,y=0;

int n=0;

printf("请输入一批实数,直到-1.0为止!n");

do {

scanf("%Lf",&x);

if(x==-1.0) break;

n++; y+=x;

2 3

}while(1);

if(n==0) return y; else return y/n;

}答案是:平均值

60. void xk10(int x) {

char a[10];

int i=0,rem;

do {

rem=x%16; x=x/16;

if(rem<10) a[i]=48+rem; //'0'字符的 ASCII 码为 48

else a[i]=55+rem; //'A'字符的 ASCII 码为 65 i++;

} while(x!=0);

while(i>0) printf("%c”,a[--i]);

}答案是:十六

61. #include

int wr9(int *a, int n) {

int i,s=0;

for(i=0;i

return s;

}

void main() {

int a[]={5,10,8,7,20,15};

printf("%d %dn",wr9(a,4),wr9(a+2,3));

}答案是:30 35

62. #include

int x1=5;

static int x2=10;

const int n=25;

void main() {

while(x1+x2

}答案是:x1

63. #include

int fn3(int a, int b) { int c=a; a=b; b=c; return 2*a+b+1;

}

void main() {

int x=5, y=8;

int z=fn3(x,y);

printf("%dn",x+2*y+z);

}答案是:43

64. #include

int fn3(int a, int* b) { a*=2; *b+=5; return a+*b-2;

}

void main() {

int a=5, b=10;

int c=fn3(a+1,&b)+a+b; printf("%dn",c);

}答案是:45

65. #include

void fn1(int x) {

int y=2;

static int z=2;

y+=x; z+=x;

printf("%d ", x+y+z);

void main() {

fn1(3);

fn1(4);

} 答案是:13 19

66这是一个递归函数,其功能是求出并返回数组a[n]中n个元素之积,请在横线处填。

int ff1(int a[], int n) {

if(n==1) return a[0];

else return a[n-1]* ff1(a,n-1);

}

67. #include

int ff1(int a[], int n) {

if(n==1) {a[0]=1; return a[0];}

else {a[n-1]=2*ff1(a,n-1); return a[n-1];}

}

void main() {

int a[5];

ff1(a,5);

printf("%dn", a[4]);

}答案是:16

68. 这是一个递归函数,其功能是求出并返回两个自然数m和n的最小公倍数,请在

横线处填写合适内容。

int ff2(int m, int n, int b) { 〃初始调用时传送给b的值必须为2

if(m

else if(m%b==0 && n%b==0) return b*ff2(m/b,n/b,b);

else return ff2(m,n,++b);

}

69. void xk9(int x) {

char a[10];

int i=0,rem;

do {

rem=x%8; x=x/8;

a[i]=48+rem; //'0'字符的 ASCII 码为 48

i++;

} while(x!=0);

while(i>0) printf("%c”,a[--i]);

printf("n");

} 答案是:八

70. int wr1(int a[], int n, int x) {

int i;

for(i=0;i

if(a[i]==x) return 1;

return 0;

} 答案是:查找(顺序查找)

71. void wr4(int a[], int b[], int n) {

int i;

b[0]=b[1]=0;

for(i=0;i

if(a[i]%2==0) b[0]++; else b[1]++;

}答案是:奇数

72. #include

int wr11(int a[], int n, int k) {

int i,c=0;

for(i=0;i

if(a[i]>=k) c++;

return c;

}

void main() {

int a[9]={9,5,7,12,4,8,15,10,15};

int c=wr11(a,9,8);

printf("%dn",c);

}答案是:6

73. #include

int c=15;

void main() {

int a=10, b=20;

{ int b=a+15; printf("%d ",a+b+c);} printf("%dn",a+b+c);

} 答案是:50 45

74. #include

void fn2(int* a, int* b) {

int x=*a;

*a=*b; *b=x;

}

void main() {

int x=15, y=26;

fn2(&x,&y);

printf("%d %dn",x,y);

} 答案是:26 15

75. #include

int fn1() {

int x=0;

static int y=0;

x++; y++;

return x+y;

}

void main() {

int x1=fn1();

int x2=fn1();

printf("%d %dn",x1, x2);

}答案是:2 3

ff3(int m, int n, int b) {

if(m

else if(m%b==0 && n%b==0) return b*ff3(m/b,n/b,b); else return ff3(m,n,++b);

}

77. void xb1(struct strNode* f) {

while(f!=NULL) {

printf("%s ",f->name);

f= f->next

}

printf("n");

}

78. #include

#include

struct intNode {int value; struct intNode *next;};

void main(void) {

struct intNode x={32,NULL}, y={45,&x}, *r;

for(r=&y; r!=NULL; r=r->next) printf("%d ",r->value); printf("n");

} 答案是:45 32

79 struct strNode* xb2() { struct strNode *f=NULL,*r; char a[15];

printf("输入每个字符串,用"-Z '作为结束标志挪"); do {

scanf("%s",a);

if(strcmp(a,"-1")==0) break;

r=malloc(sizeof(struct strNode));

strcpy(r->name,a); r->next=f; fr

} while(1);

return f;

}

80#include

struct Worker {char name[15]; int age; int pay;};

void main() {

struct Worker x={"wanghua",52,4266};

struct Worker y=x;

printf("%dn",+);

} 答案是:8532

81 #include

struct Worker {char name[15]; int age; int pay;};

void xh1(struct Worker r) {

+=12;

printf("%d ",);

}

void main() {

struct Worker r={"abc",25,420};

xh1(r);

+=15;

printf("%dn",);

} 答案是:37 40

82 #include

struct Worker {char name[15]; int age; int pay;};

int xh2(struct Worker r1, struct Worker r2) { if(==) return 1;

else return 0;

}

void main() {

struct Worker a[4]={{"abc",25,420},{"defa",58,638}, {"ghin”,49,560},{"jklt”,36,375}};

struct Worker x={" ",49,0};

int i;

for(i=0; i<4; i++) if(xh2(a[i],x)) break;

for(i=0; i<4; i++) if(xh2(a[i],x)) break;

} 答案是:ghin 560

83 #include

#include

#include

struct CCC {char *a; int n;};

void main(void) {

struct CCC x;

char* p="XxkComputer";

x.n=strlen(p)+1;

x.a=malloc(x.n);

strcpy(x.a,p);

printf("%s %dn",x.a,x.n);

}

void main() {

struct Worker a[4]={{"abc",25,420},{"defa",58,638}, {"ghin",49,560},{"jklt",36,375}};

struct Worker x={" ",49,0};

int i;

for(i=0; i<4; i++) if(xh2(a[i],x)) break;

for(i=0; i<4; i++) if(xh2(a[i],x)) break;

} 答案是:XxkComputer 12

84 int xb3(struct intNode *f) {

int x=0;

while(f!=NULL) {

if(f->data>x) x f->data;

f=f->next;

}

return x;

}

85. struct intNode* xb5(int n) {

struct intNode *f, *p;

if(n==0) return NULL;

f=p=malloc(sizeof(struct intNode));

printf("从键盘输入%d个整数:",n);

while(n--) {

scanf("%d",&(p->data));

if(n==0) {p->next=NULL; break;}

p->next=malloc(sizeof(struct intNode));

p=p->next;

} 答案是:return f

86. #include

#include

struct Worker {char name[15]; int age; int pay;};

void main() {

struct Worker x,*p=&x;

strcpy(,"weirong");

=35; =2600;

p->age+=12; p->pay+=1200;

printf("%s %dn",p->name,);

} 答案是:weirong 47

87. #include

struct Worker {char name[15]; int age; int pay;};

int xh2(struct Worker a[], int n) {

int i, x=a[0].pay;

for(i=1; i

if(a[i].pay>x) x=a[i].pay;

return x;

}

void main() {

struct Worker a[4]={{"abc",25,420},{"defa",58,638},

{"ghin”,49,560},{"jklt”,36,375}};

printf("%dn",xh2(a,4));

} 答案是:638

88. #include

struct AAA {int a[6]; int n;};

struct AAA x;

void main(void) {

int i;

int b[6]={20,35,46,18,24,52};

x.n=6;

for(i=0; i

for(i=0; i

printf("n");

} 答案是:52 18 35

89. #include

#include

struct CCC {char *a; int n;};

void main(void) {

int n;

struct CCC *a;

scanf("%d",&n);

a=calloc(n,sizeof(struct CCC));

printf("%dn",n*sizeof(struct CCC));

} 答案是:40

90 void xw1(char* fname) {

FILE* fout=fopen(fname, "w");

char ch;

printf("输入一系列字符,以字符@作为结束标志挪");

while(1) {

scanf("%c",&ch);

if(ch=='@') break;

fputc(ch,fout);

}

fclose(fout);

}

91. int xw3(char* fname) {

FILE *fin=fopen(fname,"r");

char ch;

int c=0;

while(1) {

ch=fgetc(fin);

if(ch!=EOF) c++

else break;

}

fclose(fin);

return c;

}

92 .break(return)

void xw1(char* fname, int a[], int n) {

FILE* fout=fopen(fname,"wb");

fwrite(a,sizeof(int), n ,fout); fclose(fout);

}

93. int xw3(char* fname) {

FILE *fin=fopen(fname, "rb");

int c,x,s=0;

while(1) {

c=fread(&x,sizeof(int),1,fin);

if(c==0) break;

s+=x;

}

fclose(fin);

return s;

}

94. void xw2(char* fname) {

FILE *fin=fopen(fname,"r");

char ch;

while(1) {

ch=fgetc (回答);

if(ch!=EOF) printf("%c",ch);

else break;

}

fclose(fin);

} 答案是:fin

xw6(char* fname) {

FILE *fin=fopen(fname,"r");

char ch;

int c=0;

while(1) {

ch=fgetc(fin);

if(ch!=EOF) {

if(ch>='a' && ch<='z') c++;

else if(ch>='A' && ch<='Z') c++ ;

}

else break;

}

fclose(fin);

return c;

}

xw2(char* fname) {

FILE *in=fopen(fname,"rb");

int c,x;

while(1) {

c=fread(&x,sizeof(int),1J^_);

if(c==0) break;

printf("%d ",x);

}

fclose(in);

}

xw5(char* fname) {

FILE *fin=fopen(fname,"rb");

int c,x,max=0;

while(1) {

c=fread(&x,sizeof(int),1,fin);

if(c==0) break;

if(x>max) max=x ;

}

fclose(fin);

return max;

}

四、程序设计题

1. 编写一个函数,求出一维整型数组a[n]中所有元素的平方之和。int fun1(int a[], int

n);

int fun1(int a[], int n)

{

int i,s=0;

for(i=0;i

return s;

}

2. 编写一个函数,分别求出一维整型数组a[n]中所有奇数元素的个数和所有偶数元素

的 个数,假定分别用c1和c2所指的对象保存。 void fun2(int a[], int n, int* c1, int* c2);

void fun2(int a[], int n, int* c1, int* c2)

{

int i;

*c1=*c2=0;

for(i=0;i

if(a[i]%2!=0) (*c1)++; else (*c2)++;

}

3. 编写一个非递归函数过程,求出两个自然数m和n的最大公约数oint fun5(int m, int

n);

int fun5(int m, int n)

{

int r;

while(1) {

if(n==0) return m;

r=m%n;

m=n; n=r;

}

}


本文标签: 语句 定义 函数 文件 使用