文档库 最新最全的文档下载
当前位置:文档库 › C语言自测题

C语言自测题

C语言自测题
C语言自测题

选择题

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

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”,则对应输出的数据类型为(i nt )。

17 在 printf() 函数调用的格式字符串中,若使用格式符为“%f”,则对应输出的数据类型为

(f loat )。

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 )。

37.每个 C 程序文件在编译时可能出现有严重性错误,其对应的标识符号为(error )。38.在 VC++环境下,为运行一个程序而建立的工作区文件的扩展名为(dsp)。

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

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

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

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

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

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

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

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

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

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

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)。

59字符串 "Its\40\n" 的长度为( 5)。

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

61 要利用 const 保留字定义整型常量ABC的值为 10,则对应的定义语句为( const int ABC=10)。62要利用 #define 命令定义 ABC常量的值为 100,则对应的命令格式为(#define ABC==10 )。63下列数值中最大值是( 28%8)。

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

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假定一维数组的定义为“char a[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已知“ char a[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; ”,则 *(p+2) 的值为( '3' )。

139已知“ int a[6][5]; ”,则元素 a[2][4] 的地址比该数组的首地址大(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在函数定义的参数表中,也可以使用函数参数,假定一个函数参数原型为int ff(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;”,则不正确的语句定义为

(s truct Book c=&bk; )。

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

(s truct 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;}; ”,则不正确的语句定义为

(s truct 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若要在程序文件中使用标准输入和输出函数,则需要引入的系统头文件为stdio.h 。对

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

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

12在“ printf("%d - %d = %d",x,y,x-y); ”语句所使用的格式字符串中,包含有 3 个格式符。对13在执行“ printf("s=%s\n","abc"); ”语句时,输出结果为 s=abc。对

14在“ printf("s=%c\n","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)25/4 的值为 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。对

25, p-1 所指对象的值为42,则执行 *p-- 运算后, p 所指对象的117 假定 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=%d\n",x*y);

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

2.#include

int cube(int);

void main(void)

{

printf("cube(3)=%d\n",cube(3));

printf("cube(5)=%d\n",cube(5));

printf("cube(8)=%d\n",cube(8));

}

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

运行结果: cube(3)=27cube(5)=125cube(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: %lf\n",averageValue);

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

printf("averageValue: %Lf\n",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(" 求和 : %d\n",Sum(a,b,c));

printf(" 乘积 : %d\n",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(" 最后得分: %d\n",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: %d\n",d1,d1);

}

}

运行结果: A: 65, a: 97 B: 66, b: 98 C: 67, c: 99 D: 68, d: 100 E: 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=23 15-8=7 15*8=120 7.#include

void main() {

int a=25,b=18;15 8

15/8=115%8=7共5 道题,答对 5 道题

if(a>b) printf("%s\n","a>b");

if(a==b) printf("%s\n","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=%d\n",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=%d\n",y);

} 输出结果 :y=55 。

11.#include

void main() {

int n=10,y=0;

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

printf("y=%d\n",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=%d\n",s);

}输出结果 :s=153

13.#include

void main() {

int x=16,s=0;

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

printf("s=%d\n",s);

}输出结果: s=51

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

void main() {

int x,y;

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

printf("%d\n",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=%d\n",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=%d\n",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("%d\n",x);

else printf("%d\n",y);

} 答案: 15

18.#include

void main() {

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

if(x>y && x>z) printf("%d\n",x);

else if(y>x && y>z) printf("%d\n",y);

else printf("%d\n",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=%d\n",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=%d\n",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=%d\n",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=%d\n",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=%d\n",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=%d\n",s);

} 答案是: s=56

26.#include

void main() {

int x,p=2;

scanf("%d",&x);

while(x>=p)

if(x%p==0) {printf("%d=%d*%d\n",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("%d\n", 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("%d\n",p);

} 答案是:公约数

28.#include

void main() {

int x=36,y=48,z;

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

printf("x=%d\n",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=%d\n",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 %d\n",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 的最小公倍数为%d\n",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=%d\n",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 %d\n",c[0],c[1],c[2]);

} 答案是: 645

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=%d\n",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;

c语言复习题(有答案)●

思考题 不仅要会做这些题,更重要的是要掌握其相关知识点一、一般填空题 1-1、调用fopen函数打开一文本文件,在“打开模式”这一项中,为输出(写)而打开需填入【1】. 1-2、调用fopen函数打开一文本文件,在“打开模式”这一项中,为追加而打开需填入【1】. 1-3、fopen函数的原形在头文件【1】中. 1-4、getchar函数的原形在头文件【1】中. 1-5、sqrt函数的原形在头文件【1】中. 1-6、如果函数不要求带回值,可用【1】来定义函数返回值为空. 答案:w或w+;a或a+;stdio.h ; stdio.h ; math.h ;void . 2-1、字符串“\1011234\\at”的长度(字符数)是【1】. 2-2、字符串“abc\103\\bcd”的长度(字符数)是【1】. 2-3、字符串“1\\t\x43\abx44”的长度(字符数)是【1】. 2-4、“a“在内存中占【1】个字节. 2-5、‘a’在内存中占【1】个字节. 2-6、“\71“在内存中占【1】个字节. 2-7、一维数组下标的最小值是【1】;数组char a[]=“china” ;在内存应占【1】个字节。 答案:8; 8; 9; 2;1;2 ;0;6. 3-1、设x=(5>1)+2, x的植为【1】. 3-2、表达式‘B’+15+‘\x41’+011+0x10的值是【1】. 3-3、表达式‘b’+5+‘\x42’+011+0x10的值是【1】. 答案:3;171;194; 4-1、假设所有变量都为整型,表达式(a=2,b=5,a>b?a++:b++,a+b)的值是【1】. 4-2、if(!a)中的表达式!a等价于【1】. 4_3、已知a=1,b=2,c=3,执行if(a>b>c) b=a;else b=c;a=4;b=8;后,b的值是【1】. 答案:8;a==0;8; 5-1、若所用变量都已定义,下列程序段的执行结果是【1】. for(i=1;i<=5;i++);printf(“OK\n”); 5-2、执行语句char s[3]=”ab”,*p;p=s;后,*(p+2)的值是【1】. 5-3、若有以下定义和语句:int a[4]={0,1,2,3},*p; p=&a[2]; ,则*--p的值是【1】. 5-4、下列程序的输出结果是【1】,main(){int a=011;printf(“%d\n”,++a);} 答案:OK;’\0’;1;10 6-1、若宏定义为:#define y(x) 2+x, 则表达式a=3*y(3)的值为【1】. 6-2、若宏定义为:#define y(x) 2+x, 则表达式a=4*y(2)的值为【1】. 6-3、若宏定义为:#define y(x) 2/x, 则表达式a=4+3*y(3)的值为【1】. 答案:9;10;6 . 二、单项选择题 1-1、若以"a+"方式打开一个已存在的文件,则以下叙述正确的是()。 A:文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作 B:文件打开时,原有文件内容不被删除,位置指针移到文件开头,可作重写和读操作 C:文件打开时,原有文件内容被删除,只可作写操作 D:以上各种说法皆不正确 1-2、若执行fopen函数时发生错误,则函数的返回值是()。

C语言上机报告答案

2010C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.改错题(将正确程序写在指定位置) 正确的程序为: #include main() { printf("商品名称价格\n"); printf("TCL电视机¥7600\n"); printf("美的空调¥2000\n"); printf("SunRose键盘¥50.5\n"); } 2.编写程序: a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。答案: #include main() { int a,b,c,x,y; a=150; b=20; c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y);

x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } 4. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a 赋给c。(提示:用条件运算符) 答案: #include main() { int a,b,c; a=0; b=-10; c= (a>b) ? b:a; printf("c = %d\n",c); } 五、调试和测试结果 1.编译、连接无错,运行后屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 3、编译、连接无错,运行后屏幕上显示以下结果: a/b的商=7 a/c的商=3 a/b的余数=10 a/c的余数=15 4. 编译、连接无错,运行后屏幕上显示以下结果: c =-10 实验二顺序结构程序设计 四、程序清单 1.键盘输入与屏幕输出练习 问题1 D 。 问题2 改printf("%c,%c,%d\n",a,b,c);这条语句 改成:printf("%c %c %d\n",a,b,c);

c语言程序基础练习题00道(附答案)

1.下列四组选项中,均不是C语言关健字的选项是( A )。 A) define B) gect C) include D) while IF char scanf go type printf case pow 2.下面四个选项中,均是合法整型常量的选项是( A )。 A)160 B)-0xcdf C) -01 D)-0x48a -0xffff 01a 986,012 2e5 011 0xe 0668 0x 3.下面四个选项中,均是不合法的转义符的选项是( B )。 A) '\"' B) '\1011' C) '\011' D) '\abc' '\\' '\' '\f' '\101' 'xf' '\A' '\}' 'x1f' 4.下面不正确的字符串常量是( A )。 A)'abc' B)"12'12" C)"0" D)" " 5.以下选项中不合法的用户标识符是( A )。 A)abc.c B)file C)Main D)PRINT 6.C语言提供的合法关键字是( D )。 A) swith B) cher C) Case D)default 7.下列标识符组中,合法的用户标识符为 A A)_0123与ssiped B)del-word与signed C)list与*jer D) keep%与wind 8.在C语言中,逻辑值"真"的表示是用( C )。 A) true B) 整型值0 C)非另整型值 D) T 9若有以下定义 char s='\092'; 则该语句( b ) A)使s的值包含一个字符 B)定义不合法,s的值不确定 C)使s的值包含4个字符 D)使s的值包含3个字符 10设C语言中,int类型数据占2个字节,则float类型数据占( D )个字节。 A)1 B)2 C)8 D)4 11已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'3'后,c2中的值为( A )。 A)D B)68 C)不确定的值 D)C 12逻辑运算符两侧运算对象的数据类型是 ( D )。 A) 只是0或1 B) 只能是0或非0正数 C) 只能是整型或字符型数据 D) 可以是任何合法的类型数据 13TURBO C中int类型变量所占字节数是( B )。

语言学纲要 第三章练习题

第三章语音 一、单选题 1、语音的四个物理要素中,区别不同的意义起着最为重要的作用的是( ) A、音高 B、音强 C、音长 D、音色 2、元音和辅音本质区别是( ) A、元音的发音可以延长,辅音不可以 B、元音发音响亮,辅音不响亮 C、元音发音时气流不受阻,辅音一定受阻 D、发元音时,发音器官的各个部分均衡紧张;辅音则不然 3、[ε]的发音特征是( ) A、舌面前高不圆唇 B、舌面后高不圆唇 C、舌面前半高不圆唇 D、舌面前半低不圆唇 4.关于语音四要素,下列说法不正确的一项是() A.在任何语言中,音高变化都是语调的主要构成要素 B.能起区别语言意义作用的是绝对的音高、音强和音长 C.音长是由发音体振动的持续时间决定的 D.音强是由发音体振动的振幅大小决定的 5.下列关于区别特征的表述中,不正确的一项是() A.音位是通过区别特征相互区别的 B.区别特征完全取决于语音的自然属性 C.音位的辨义功能由区别特征负担 D.区别特征通常都表现为二项对立 6.关于“复辅音”,下列说法不正确的一项是() A.复辅音是一个音节内两个或几个辅音的组合 B.复辅音内的几个辅音彼此之间有过渡音联结 C.复辅音内的几个辅音的音质变化是突变式的 D.复辅音并不是所有语言中都存在的语音现象 7、有甲乙两个声波图,甲声波比乙声波振动次数少,乙声波比甲声波振幅小,

因此() A、甲声音低,乙声音弱 B、甲声音高,乙声音弱 C、甲声音低,乙声音强 D、甲声音弱,乙声音低8.()组字母表示的音素,汉语拼音与国际音标是一致的。 A. b p d B.t k g C. y u m D.i u f 9、下列舌面元音中,属于圆唇音的是() A、[Y] B、[α] C、[A] D、[a] 10、[e]的发音特征是() A、舌面前半低圆唇元音 B、舌面前半高圆唇元音 C、舌面前半高不圆唇元音 D、舌面前半低不圆唇元音 11、[u]的发音特征是() A、舌面后高圆唇元音 B、舌面后高不圆唇元音 C、舌面后半高圆唇元音 D、舌面后半高不圆唇元音 12、辅音[x]的发音特征是() A、舌面中清擦音 B、舌面前不送气清塞音 C、舌面后不送气浊塞音 D、舌根清擦音 13、辅音[η]的发音特征是() A、舌面中不送气清音 B、舌面后浊鼻音 C、舌面中浊鼻音 D、舌前中送气浊塞音 14、辅音[kh]的发音特征是() A、舌根不送气清塞音 B、舌根送气浊塞擦音 C、舌面后送气清塞音 D、舌面后不送气浊塞音 15、辅音[θ]的发音特征是() A、舌叶清擦音 B、舌叶浊擦音 C、齿间浊擦间 D、齿间清擦音 16、下列辅音类中,属于响辅音的是() A、塞音 B、半元音 C、擦音 D、塞擦音

C语言练习3(数组)=参考答案

C语言(数组) 一、选择题 1. 设有程序: main() { int i,a[11]; printf("给数组赋值:\n"); for (i=0;i<=10;i++) scanf("%d",( )); ... ... printf("输出数组:\n"); for(i=0;i<=10;i++) printf("%d,",( )); } 则在程序中的两个园括号中分别应填入:C A) &a[i]和&a[i] B) a[i]和&a[i] C) &a[i]和a[i] D) a[i]和a[i] 2. 设已定义:int a[15]; 则数组a占用的内存单元数是( C ). A) 15 B) 16 C) 30 D) 32 3. 阅读程序: main() { int a[2]={0},i,j,k=2; for(i=0;i

return r; } main() { int x,a[]={2,3,4,5,6,7,8,9}; x=f(a,3); printf("%d\n",x); } 以上程序的输出结果是( D ). A) 720 B) 6 C)24 D) 120 5. 以下定义语句中,错误的是( B ). A) int a[ ] = {6,7,8}; B) int n=5, a[n]; C) char a[ ]= "string"; D) char a[5 ]={'0','1','2','3','4'}; 6. 以下描述中正确的是( D ). A) 数组名后面的常量表达式用一对圆括弧括起来 B) 数组下标从1开始 C) 数组下标的数据类型可以是整型或实型 D) 数组名的规定与变量名相同 7. 若定义数组并初始化char a[10]={'0','1 ','2','3','4','5','6','7','8','9'};指出以下错误语句( AB ). A) scanf("%c",a[0]); B) scanf("%s",&a); C) printf("%c",a[3]); D) printf("%s",a); 8.若定义数组int a[10] ,其最后一个数组元素为( C ). A) a[0] B) a[1] C) a[9] D) a[10] 9. 若定义数组并初始化int a[10]={ 1,2,3,4},以下语句哪一个不成立( B )? A) a[8] 的值为0 B) a[1] 的值为1 C) a[3] 的值为4 D) a[9] 的值为0 10. 指出以下错误语句( A ).

语言学纲要修订版练习题及答案

第一章 一、填空 语言的功能 1、语言的功能包括(社会)功能和(思维)功能。 2、语言的社会功能包括(信息传递)功能和(人际互动)功能。 3、在各种信息传递形式中,语言)是第一性的、最基本的手段。( 4、人的大脑分左右两个半球,语言功能及计数、推理能力等由(左)半球掌管,音乐感知、立体图形识别等能力由(右)半球制约。 5、儿童语言习得一般经过(独词句)阶段和(双词句)阶段,这是儿童学话的关键两步。二、判断正误(对)1、文字是建立在语言基础之上的再编码形式。(错)2、当说话者陈述一个客观事实时,话语中不具有主观性。(错)3、书刊上的话语不具有人际互动功能。(对)4、抽象思维要以语言为形式依托。(错)5、布洛卡区在大脑的右半球前部。(错) 6、聋哑人不会说话,所以不具有抽象思维的能力。(对) 7、不同语言结构的差异体现出思维方式的不同。(错) 8、汉语名词没有数的变化,所以汉语没有区别单数和多数的概念。三.思考题1、为什么说语言是人类最重要的信息传递的手段?除了语言之外,人们还使用其他的信息传递工具:(1)文字、旗语、红绿灯、电报代码、数学符号、化学公式等辅助性的交际工具(2)体态语等伴随性的副语言交际工具,(3)盲文、手语等类语言交际工具。但这些交际工具或者使用范围的有限,或者运用效率低下,或者使用频率不高,很难与语言这种交际工具相提并论。文字记录语言,打破了语言交际中时间和空间的限制,在社会生活中起着重大的作用,中小学语文教学主要就是教学生识字、阅读、写作。但是,文字在交际中的重要性远不能和语言相比。一个社会可以没有文字,但是不能没有语言;没有语言,社会就不能生存和发展。文字是在语言的基础上产生的,只有几千年的历史。在文字产生以前,语言早已存在,估计有几十万年。今天世界上没有文字的语言比有文字的语言多得多。文字产生以后要随着语言的发展而演变,它始终从属于语言,是一种辅助的交际工具。总之,在上述的种种信息传递工具当中,身势等伴随动作是非语言的交际工具;旗语之类是建立在语言,文字基础之上的辅助性交际工具;文字是建立在语言基础之上的一种最重要的辅助交际工具;语言是人类最重要的信息传递工具。 2、语言的人际互动功能表现在哪些方面?说话者在传递客观经验信息的同时,也在表达着主观的情感、态度和意图,寻求听话者的反馈。而受话者在接收说话者传递的客观经验信息的同时,也了解了说话者的主观情感态度,从而做出回应。这样语言就成为说话者和听话者间交际互动的工具。例如:张三和李四同时在教室看书,张三坐在窗子边的位置,李四坐在中间位置。 A.李四说:“今天气温很低。” B.张三说:“我马上关上。” A、B 的对话表达了一种委婉的请求。李四说“今天气温很低”的目的并不是反映今天的天气,而是向坐在窗户边的张三请求将窗户关上。 3、为什么说思维离不开语言?思维需要语言(1)语言是人类思维的工具,思维活动必须用语言作手段(2)语言是保存思维成果的媒介。思维成果必须依靠语言的巩固才能得以保持。(3)语言可帮助思维逐步深化(4)语言可帮助思维条理化(5)语言可帮助传递思维成果。思维的成果靠语言才能表达出来,使听读者了解。 4、语言思维功能的生理基础是什么,有哪些表现?人类的大脑的左右半球的分工是人类所特有的。人类以外的动物,没有这样的分 2 工,没有专门管语言的“左半球” ,因此它们没有逻辑思维的能力,也掌握不了语言。大脑中人类特有的语言功能区(1)说话中枢,也称布洛卡区,在大脑左半球前部,是19 世纪60 年代,法国神经解剖学家保罗·布洛卡(Paul Broca)发现的。这一区域受到损伤就会得失语症,丧失说话能力,但基本能听懂别人的话。(2)书写中枢,也在大脑左半球前部,靠近布洛卡

C语言上机实验[1]

实验四循环结构程序设计(4学时) 一、实验方式:一人一机 二、实验目的: 1、熟练掌握while语句、do-while语句和for语句。 2、练习并掌握循环结构的嵌套形式。 3、掌握循环结构的程序设计方法。 三、实验内容:说明:前四题为必做题目,后两题为选做题目。 1、从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结 束输入。(实验指导书P41) 2、求所有的水仙花数。水仙花数是一个3位数的自然数,该数各位数的立方和等于该数 本身。(实验指导书P42) 3、判断输入的某个数是否为素数。若是,输出YES,否则输出NO。(实验指导书P167) 4、计算π的近似值。公式如下:π/4=1-1/3+1/5-1/7+……,直到最后一项的绝对值小 于10-6为止。(实验指导书P169) 5、计算1!+2!+……+n! 的值,n值由键盘输入。(实验指导书P176) 6、输入10个整数,统计并输出其中正数、负数和零的个数。 四、实验答案:(代码+运行结果截屏) 实验五综合实验1:结构化程序设计(2学时) 一、实验方式:一人一机 二、实验目的: 1、进一步掌握选择结构、循环结构的编程特点。 2、掌握C语言的结构化程序设计思想。 3、学习利用循环结构实现的一些常用算法(如穷举、迭代、递推等)。 三、实验内容:说明:前两题为必做题目,后两题为选做题目。 1、编一程序,对于给定的一个百分制成绩,输出对应A,B,C,D,E表示的的等级成绩。设: 90分以上为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。(实验指导书P162) 2、百马百担问题。(实验指导书P45) 3、输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。 4、输出如下图案: * *** ***** ******* ***** *** * 四、实验答案:(代码+运行结果截屏)

C语言上机实验题

第六章循环控制 通过本章实验作业应达目标 1.熟悉while、for、do_while、break、continue语句的作用与使用规范。 2.学习并掌握利用while语句、for语句、do_while语句实现循环结构。 3.掌握循环结构和选择结构之间嵌套、多重循环间嵌套的设计方法。 4.进行算法设计训练,能综合所学控制结构语句解决一般问题。 本章必须上交作业 程序6_1.c、6_2.c、6_5.c、6_6.c、6_8.c上传至211.64.135.121/casp。 本章开始,上机实验项目量加大,希望同学们多多自行上机。本章实验项目有余力都可以做一下并上交。 循环程序设计 计算机解决问题都是按指定的顺序执行一系列的动作。按照特定的顺序执行相应的动作来求解问题的过程称为算法。程序中的语句是算法的体现,而算法要解决的是“做什么”和“怎么做”的问题。 计算机程序中指定语句的执行顺序称为“程序控制”。结构化的程序控制包含三种基本结构:顺序结构,选择结构和循环结构。 1. 循环设计 循环是在循环条件为真时反复执行的一组计算机指令,是计算机解题的一个重要结构。循环控制有两种基本方法:计数法和标志法。 1)计数器控制的循环 事先准确地知道循环次数,因此设计一个循环控制变量,由变量值来控制循环次数。每循环一次,循环变量的值会递增(增值通常为1或-1),当其值达到终值时结束循环。 教材例6.2、6.3、6.7都是典型的计数器控制的固定次数次数循环。 2)标志控制的循环 事先不知道准确的循环次数,由某一目标值标记循环的结束。如,教材例6.6中以|t|的值达到标记下限值1e-6作为循环的结束。 循环设计时要注意合理设计循环条件,使得循环不会成为死循环。 2. 算法 程序设计的首要工作是算法设计,离开了算法也就没有了程序。算法,是指完成某一项工作而采取的方法和步骤,具体到程序设计,是对解题过程的准确而完整的描述,并用一种程序设计语言的来实现。 循环主要用来解决程序设计中两类基本的算法:穷举和迭代。 1)穷举 穷举的基本思想是对问题的所有可能状态一一测试,直到找到解或将全部可能状态都测试过为止。穷举是一种重复型算法,其核心是设计循环,在循环体中依次测试。 例:输入两个正整数x和y,求其最大公约数。 main() {int x,y,i,flag; printf("Please input two numbers:"); scanf("%d%d",&x,&y);

语言学纲要自测题三:第四章 语法

《语言学纲要(修订版)》配套自测题三 (第四章语法) 一、重要名词概念解释 语素词词组句子单纯词合成词复合词派生词词缀词根词干词尾 二、填空 1、__________是大家说话的时候必须遵守的习惯,不是语言学家规定的。82页 2、语法的__________和__________构成一种语言的语法规则。82页 3、语法单位主要有__________、__________、__________、__________。85页 4、句子按其语气可以分为陈述、疑问、祈使、感叹等不同的类型,例如“什么书他都喜欢看”是__陈述语气__。(陈述语气用句号表示。) 5.从意义和作用看,词可以分为__________和__________两大类。87页 6.语法研究通常以词为界,词以上的规则叫_____________,词以下的规则叫__________。89页 7.根据在词中的不同作用,一般把语素分成_词根_、__词缀_、__________三类,例如“学习”中的两个语素是_词根_,“being”中的ing是_构形词缀_,“reader”中的er是_构词词缀_。(不能“词根、词缀、词尾”三分。“词尾”是对“词干“说的,“词缀”是对“词根”说的,“词根、词缀、词尾”三者不在同一个层次。见90页) 8._词尾_的主要作用是改变一个词的形式,但不能构成新词。 9.一个词,除去它的词尾,就是它的__________。90页 10.根据语素在词中的不同作用,把词根和词缀叫作__________语素,把词尾叫作 __________语素。90页 11.汉语语素中,大部分是__________语素,__________不多,没有__________。90页12.__________是由两个或两个以上构词语素组成的词。91页 13.由词根语素按一定的规则组合起来构成的词,称为__________。由词根语素和词缀组合起来构成的词称为__________,其构词规则又叫作__________,或叫__________。91页14.__________、__________、__________、__________、__________是语言里最基本的结构格式。92-94页 15.体现语法形式的语法手段主要有_类的配列_、_形态的一致性配合_、_虚词__。95页(一定要弄清楚课本的讲解:类的配列包括什么?包括语类选择和语序。(92页))

C语言数组作业编程题答案

1、请先用记事本创建文件original.txt,往其中写入一组已排好序的整型数,今输入一个整数,要求按原来排序的规律将它插入数中,仍写入文件。例如:原来整数依次为4、6、8、41、56、77、102(数据间的分隔符为空格)。若将42插入数中,则插入后整数依次为4、6、8、41、4 2、56、77、102。 答案: #include #include void main() { int a[100]; int ijnumber; int n; FILE *fp; fp=fopen("e:\\C语言\\original.txt""r"); if(fp==NULL) { printf("open error"); exit(0); }

i=0; while(!feof(fp)) { fscanf(fp"%d"&a[i++]); fgetc(fp); } number=i-1; //number中存最后一个数据的下标 fclose(fp); scanf("%d"&n); //以下的while循环用来找n要放的位置循环结束时正好是a[i]的位置i=0; while(n>a[i]) { i++; } //for循环的功能是将a[i]到最后一个元素全后移一个位置 for(j=number;j>=i;j--) a[j+1]=a[j]; //将n放入找到的位置

a[i]=n; number=number+1; //加入n后,元素个数增1,用来控制向文件中的写入次数 fp=fopen("e:\\C语言\\original.txt""w"); if(fp==NULL) { printf("open error"); exit(0); } //写入数据 for(i=0;i<=number-1;i++) fprintf(fp"%d "a[i]); fprintf(fp"%d"a[i]); //最后一个数据后没有空格 fclose(fp); } 2、假定整型数组中的元素值不重复。今输入一个整数,先查找,如数组中存在此元素,则删除,否则不做操作。例如:原来数组的元素依次为14、6、28、41、96、77、89、102。若将96删除,则删除后数组元素依次为14、6、28、41、77、89、102。 答案:

C语言常见、经典的上机实验题目

3.3 常见、经典的上机实验题目 1、 /*功能:数组x有十个元素,编程将其元素首尾颠倒。(即第一个元素与最后一个元素交换,第二个元素与倒数第二个元素交换…)。*/ main() {int a[10]={5,65,654 ,5 ,5 ,56,588,77,58,5},j,x; for(j=0;j<5;j++) {x=a[j]; a[j]=a[9-j]; a[9-j]=x;} for(j=0;j<10;j++) printf("%d\t", a[j]); } 2、 /*功能:统计输入的一串字符(假设以‘\n’结束)中,大写字母A,B,...,Z各出现的次数。(提示,用一个数组count[26]计数各个字母出现的次数,count[0]表示A出现的次数,count[1]表示B出现的次数,...,count[25]表示字母Z出现的次数。初始时count的各元素值为0。以后,每读入一个字符ch ,若它是一个大写字母,就让相应计数单元count[ch-'A']加1。*/ main( ) {int count[26] ,i; char ch[80]; for(i=0;i<26;i++) count[i]=0; gets(ch); for(i=0;i ='A'&&ch[i]<='Z') count[ch[i]- 'A']++; for(i=0;i<26;i++) printf("%c %d\t", 'A'+i,count[i]); } 3、 /*功能:键盘输入若干数,输出它们的平均值,输入值为-1时,结束输入*/ main( ) {int x,i=1,s; scanf("%d",&x); while(x!=-1) {s=s+x;i++; scanf("%d",&x); } printf("%d\n",s/i); }

C语言复习题及答案 第七章 数组教程文件

C语言复习题及答案第七章数组

第七章数组 (8学时) 学习目的与要求: 1 、重点掌握一维数组的定义和引用; 2 、基本掌握二维数组的定义和引用; 3 、重点掌握字符型数组的定义与引用; 4 、能正确使用字符串处理函数; 5 、学会使用数组解决实际问题。 重点: 1 、一维数组的定义与引用; 2 、二维数组的定义与引用; 3 、字符数组的定义与引用; 第1讲 知识归纳: 1、一维数组的定义:类型说明符数组名[ 常量表达式 ] ; (1) (1)数组名后必须用方括弧 [ ] ,用其他括弧均错误; (2) 方括弧中的常量表达式表示数组的元素个数; (3) 方括弧中的常量表达式,必须是能计算出具体数值,且不改变的常量,不能是变量; 2、一维数组的引用: 数组名[ 下标 ] //下标从0开始,可以是整型常量或整型表达式; (1) 注意:数组元素引用时,不要超出数组范围; 如 int a[10] ; //可以引用的数组元素为a[0]……a[9] , a[10] 不是本数组元素; 3、一维数组的初始化: (1) (1)可以在定义数组后,立刻赋值;如 int a [3] = { 1,3, 5} ; 但下面这样是错误的: int a[3] ; a = { 1,3, 5} ; (2) (2)可以给数组的部分元素赋值,不赋值的元素,默认值为int 0, char, ‘’, float 0.0 ; 如 int a [3]= {1,3 } ; //a[0] =1 ; a[1]= 3 ; a[2]= 0 ; (3) 在对数组全部元素赋初值时,可以不指定元素个数; (4) 可以在循环控制下,给数组各元素赋值; 如:int a[10] ; for ( i=0 ; i <10 ;i ++ ) a [ i ] = i ; 基础训练(A) 一、选择题 1、在c语言中,引用数组元素时,其数组下标的数据类型允许是()。

c语言数组典型试题设计含答案

一.选择题(2*20) 【题1】在C 语言中,引用数组元素时,其数组下标的数据类型允许是。A)整型常量B)整型表达式 C)整型常量或整型表达式D)任何类型的表达式 【题2】以下对一维整型数组a 的正确说明是。 A)int a(10); B)int n=10,a[n]; C)int n; D)#define SIZE 10 scanf(“%d”,&n); int a[SIZE]; int a[n]; 【题3】若有说明:int a[10];则对a 数组元素的正确引用是。 A)a[10] B)a[3.5] C)a(5) D)a[10-10] 【题4】在C 语言中,一维数组的定义方式为:类型说明符数组名; A)[整型常量表达式] B)[整型表达式] C)[整型常量] 或[整型表达式] D)[常量] 【题5】以下能对一维数组a 进行正确初始化的语句是。 A)int a[10]=(0,0,0,0,0); B)int a[10]={}; C)int a[]={0}; D)int a[10]=”10*1”; 【题6】以下对二维数组a 的正确说明是。 A)int a[3][]; B)float a(3,4); C)double a[1][4]; D)float a(3)(4); 【题7】若有说明:int a[3][4];则对a 数组元素的正确引用是。 A)a[2][4] B)a[1,3] C)a[1+1][0] D)a(2)(1) 【题8】若有说明:int a[3][4];则对a 数组元素的非法引用是。 A)a[0][2*1] B)a[1][3] C)a[4-2][0] D)a[0][4] 【题9】以下能对二维数组a 进行正确初始化的语句是。 A)int a[2][]={{1,0,1},{5,2,3}}; B)int a[][3]={{1,2,3},{4,5,6}}; C)int a[2][4]={{1,2,3},{4,5},{6}}; D)int a[][3]={{1,0,1},{},{1,1}}; 【题10】以下不能对二维数组a 进行正确初始化的语句是。 A)int a[2][3]={0}; B)int a[][3]={{1,2},{0}}; C)int a[2][3]={{1,2},{3,4},{5,6}}; D)int a[][3]={1,2,3,4,5,6};

C语言上机实验标准答案.doc

实验一上机操作初步 (2 学时 ) 一、实验方式:一人一机 二、实验目的: 1、熟悉 VC++语言的上机环境及上机操作过程。 2、了解如何编辑、编译、连接和运行一个 C 程序。 3、初步了解 C程序的特点。 三、实验内容: 说明:前三题为必做题目,后两题为选做题目。 1、输出入下信息: ( 实验指导书 P79) ************************* Very Good ************************* 2、计算两个整数的和与积。( 实验指导书 P81) 3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。 ( 书 P3) 4、在屏幕上显示一个文字菜单模样的图案: ================================= 1 输入数据 2 修改数据 3 查询数据 4 打印数据 ================================= 5、从键盘上输入两个整数,交换这两个整数。 四、实验步骤与过程: 五、实验调试记录: 六、参考答案: 1、#include <> void main( ) {printf( printf( printf( “ ********************\n “Very Good\n” ); “ ********************\n ” ); ” ); } 2、#include <> void main( ) {int a,b,c,d; printf( “ Please enter a,b: ”);

scanf( “%d,%d” ,&a,&b); c=a+b; d=a*b; printf( “ %d+%d=%d\n” ,a,b,c); printf( “ %d*%d=%d\n” ,a,b,d); } 3、#include <> #include <> void main( ) { double x,s; printf( “ Please input value of x: ”); scanf( “%lf ” ,&x); s=cos(x); printf( “ cos(%lf)=%lf\n ”,x,s); } 4、#include <> void main( ) { printf( “ ==================================\n”); printf( “ 1 输入数据 2 修改数据 \n ”); printf( “ 3 查询数据 4 打印数据 \n ”); printf( “ ===================================\n”); } 5、#include <> void main( ) { int x,y,t; printf( “ Please enter x and y: ”); scanf( “%d%d”,&x,&y); t=x; x=y; y=t; printf( “ After swap:x=%d,y=%d\n ” ,x,y); } 实验二简单的 C程序设计 (4 学时 ) 一、实验方式:一人一机 二、实验目的: 1、掌握 C语言的数据类型。 2、学会使用 C语言的运算符及表达式。 3、掌握不同数据类型的输入输出方法。 三、实验内容: 说明:前四题为必做题目,后两题为选做题目。

C语言程序设计_上机实验指导与习题_第三版_(陈湘骥_编著_著)_华南农业大学_参考答案

C语言程序设计上机实验指导与习题 参考答案 (仅供教师内部参考) 华南农业大学

目录 上机实验 (1) 实验 1 C语言程序初步 (1) 一、实验目的 (1) 二、实验内容 (1) 实验2基本数据类型、运算和表达式 (3) 一、实验目的 (3) 二、实验内容 (3) 实验3基本输入与输出 (5) 一、实验目的 (5) 二、实验内容 (5) 实验4选择结构程序设计 (4) 一、实验目的 (4) 二、实验内容 (4) 实验5循环结构程序设计(一) (9) 一、实验目的 (9) 二、实验内容 (9) 实验6循环结构程序设计(二) (15) 一、实验目的 (15) 二、实验内容 (15) 实验7数组 (17) 一、实验目的 (17) 二、实验内容 (17) 实验8字符数组的应用 (22) 一、实验目的 (22) 二、实验内容 (22) 实验9函数的基本应用 (24) 一、实验目的 (24) 二、实验内容 (24) 实验10指针与结构体 (26) 一、实验目的 (26) 二、实验内容 (26) *实验11链表 (29) 一、实验目的 (29) 二、实验内容 (29) *实验12文件 (32) 一、实验目的 (32) 二、实验内容 (32)

上机实验 实验 1 C语言程序初步 一、实验目的 (1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。 (2)了解在该系统上如何编辑、编译、连接和运行一个C程序。 (3)通过运行简单的C程序,初步了解C程序的特点。 (4)在教师的指导下,学会使用JudgeOnline实验系统。 二、实验内容 1. 运行第一个 C 程序 [题目:The first C Program] 将下列程序输入 TC(或 VC++),编译、连接和运行该程序。 void main() { printf("The first C Program\n"); } [具体操作步骤] 以 Turbo C 上的操作为例 (1)Windows 进入后,按照第一章中介绍的方法,进入 Turbo C。 (2)在编辑窗口中输入程序。 (3)保存程序,取名为 a1.c。 (4)按照第一章中介绍的方法,编译、连接和运行程序。 2.在JudgeOnline系统中提交实现了计算a+b功能的程序 [题目 1001:计算 a+b] 由键盘输入两个整数,计算并输出两个整数的和。实现该功能的程序如下, void main() { int a, b; scanf("%d%d", &a, &b); 1

《C语言程序设计》第7章 数组

第7章数组 第1次课:2学时 一、教学内容 1、一维数组的定义和引用 2、二维数组的定义和引用 二、教学目标 1.了解一维数组、二维数组的基本概念; 2.掌握数组的定义与引用; 3.掌握数组元素的引用 三、教学重点及难点 重点:数组的定义和引用 难点:数组的定义和引用 四、教学方法 多媒体教学,案例驱动,实例演示,提问。 五、教学过程设计 在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。在C语言中,数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。本章介绍数值数组和字符数组,其余的在以后各章陆续介绍。 7.1 一维数组的定义和引用 7.1.1 一维数组的定义方式 在C语言中使用数组必须先进行定义。 一维数组的定义方式为:类型说明符数组名[常量表达式]; 其中:类型说明符是任一种基本数据类型或构造数据类型;数组名是用户定义的数组标识符;方括号中的常量表达式表示数据元素的个数,也称为数组的长度。 对于数组类型说明应注意以下几点: (1) 数组的类型实际上是指数组元素的取值类型。对于同一个数组,其所有元素的数据类型都是相同的。 (2) 数组名的书写规则应符合标识符的书写规定。 (3) 数组名不能与其它变量名相同。 (4) 方括号中常量表达式表示数组元素的个数,如a[5]表示数组a 有5 个元素。但是其下标从0 开始计算。因此5个元素分别为a[0],a[1],a[2],a[3],a[4]。 (5) 不能在方括号中用变量来表示元素的个数,但是可以是符号常数或常量表达式。

语言学纲要自测题二参考答案:第三章-语音

语言学纲要自测题二参考答案:第三章-语音

《语言学纲要(修订版)》配套自测题二 (第三章语音) (页码除指明书目外,均指教材。) 一、术语解释题 音素音位音位变体音质音位非音质音位音步 二、填空题 1.语音的____________、_______________________、______________三个环节,分别对应于语音的生理、物理、心理三个方面的属性。(P 40) 2.语音同其它声音一样,也具有_____________、__________、___________和___________四个要素。(P46) 3.人类的发音器官可分为______________、______________、______________三大部分。(P52) 4.在发音器官中,唇、舌头、软腭、小舌、声带等是能够活动的,叫做___________发音器官,上齿、齿龈、硬腭等是不能活动的,叫做_______________发音器官。(P54) 5.根据发音特点,音素可以分为______________和______________两类,例如汉语音节中的声母,主要就是由_______________充当的。(P55) 6.每个元音的音质是由______________、______________、_______________三个方面的因素决定的。(P55) 7.根据发音特征描述,写出下列元音:舌面后半高圆唇元音是[o],舌面前低不圆唇元音是[a],舌面后半低不圆唇元音是[?],舌面前高圆唇元音是[y]。 8.辅音的发音特点是由______________、______________两个方面决定的。(p57) 9.描写下列辅音的发音特点:[b]是双唇、塞、浊,[p]是双唇、塞、清、送气,[ts]是舌尖-龈前、塞擦、清、不送气,[g]是__舌面后-软腭、塞、浊__,[m]是双唇、鼻。 10.指出下列各组辅音的区别特征:[p h]-[p]是送气/不送气,[p]-[b]是清/浊,[ts] -[ts h]是送气/不送气,[f]-[v]是清/浊,[t h]-[k h]是舌尖-龈前/舌面后-软腭。(p61)11.音位变体可分______________和______________两类。(p68) 12.以音素为材料进行分析的音位是______________,具有区别意义作用的音高、音重、音长这类音位叫做______________。(p68) 13.汉语的音节可分为____________、____________、______________三部分,其中 ____________又分_____________、____________、_____________三部分。(p74)

相关文档
相关文档 最新文档