c语言程序设计试题库 下载本文

92、设x的值为4,则表达式x++的值是 .

93、设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为________。 94、设a=3,b=2,则表达式a^b>>2的值的二进制表示为________。

95、设ch是char型变量,其值为A,且有下面的表达式: ch=(ch>='A'&&ch<='Z')?(ch+32):ch 的值是____。

96.为表示关系x≥y≥z,应使用C语言表达式_____ __。

97. 请读程序: main() {union {int k; char i[2]; }*s,a; s=&a; s->i[0]=0x39;s->i[1]=0x38; printf(“%x、n”,s->k); } 则上面程序的输出结果是____。

98. 有如下函数调用语句 func(rec1,rec2+rec3,(rec4,rec5); 该函数调用语句中,含有的实参个数是________。

99. 有语句char str1[10],str2[10]={\则能将字符串china赋给数组str1的正确语句是________。

100. 在C语言中,fclose()函数返回____时, 表示关闭成功。 101. 在C语言中,fclose()函数返回____时, 表示关闭不成功。 102. 在C语言中,打开函数文件指针值是____时, 表示打开成功。 103. 在C语言中,打开函数文件指针值是____时, 表示打开失败。 104.C语言程序的基本单位是____。

105. C语言程序的三种基本结构是__ _、__ _、__ _。 106. C语言规定,程序中各函数之间是平行的,不允许_ 定义。 107. C语言中可处理的文件类型是 _。 108. C语言可执行程序的开始执行点是 _。

109. C语言中,运算对象必须是整型数的运算符是 _。 110. C语言中函数返回值的类型是由 决定。

111. C语言中数组名作为参数传递给函数,作为实在参数的数组名被处理为____ _。 112. C语言中数组下标的下限是________。

113. sizeof(float)的功能是__ _。 114. 表达式:10!=9的值是__ _。

115. 当调用函数时,实参是一个数组名,则向函数传送的是____ _。

116.假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是_ _ 。

117. 请读程序片段(字符串内没有空格): printf(\的输出结果是_ _ 。

118. 若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是 _。 119. 若int类型占两个字节,则以下语句输出为________。 int k=-1; printf(\120. 若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是 _。 三、判断题(请在每个题后的括号内对的打“√”错的打“×”,每题1分,共263题) 1. C语言中整型数据类型占4个字节。 ( ) 2. C语言中整型数据可以赋给实型变量。 ( ) 3. C语言中一个表达式可以出现各种数组类型。 ( ) 4. C语言中a3,q-b,yy都是正确的标识符。 ( ) 5. C语言标识符中大小写通用。 ( ) 6. C语言中的标识符只能由数字和字母组成。 ( ) 7. C语言中的标识符首字符只能是字母。 ( ) 8. C语言中整数有八进制、十进制和十六进制三种形式。 ( )

9. C语言中,表达式a^代表a*a。 ( ) 10. C语言中a和’a’含义不同,a是标识符,’a’是字符常量。 ( ) 11.C语言中的函数可以单独编译,即修改哪个编译哪个。 ( ) 12.C语言中的基本数据类型包括整型、实型、字符型和字符串型。 ( ) 13.C语言中无论是整数还是实数,只要在允许的范围内都能准确无误的表示。 ( ) 14.若输入字符串的长度超过字符数组所能容纳的字符个数时,系统将自动报错 ( ) 15.C语言程序的基本单位是函数 。 ( ) 16.C语言程序可以包含多个主函数 。 ( ) 17.C语言中int型是所占字节最短的数据类型。 ( ) 18.在C语言中实型包括float 型和double型,它们两个类型存放数据范围相同。( ) 19.若s是int 型变量,且s=6,则s%2+(s+1)%2的值为6.5。 ( ) 20.若a是int 型变量,则(a=4*5,a*2),a+6的值为 26 。 ( ) 21.若a是int 型变量,则a=25/3%3的值为 2.6 。 ( ) 22.C语言各种运算符中!的优先级最高。 ( ) 23.C语言中,逻辑运算符&&优先级高于逻辑运算符||。 ( ) 24.C语言的所有运算符运算方向都是从左到右。 ( ) 25.表达式pow(2.8,sqrt(double (x)))值的数据类型为float型。 ( ) 26. 在C语言中,表示逻辑“真”值用非零的数字。 ( ) 27. 设y为int型变量,请写出描述“y是奇数”的表达式y%2= =0。 ( ) 28. C语言提供的三种逻辑运算符是&&、||、!。 ( ) 29. 已知A=7.5,B=2,C=3.6,表达式A>B&&C>A||AB的值是1。 ( ) 30. 若a=6,b=4,c=2,则表达式!(a-b)+c-1&&b+c/2的值是1。 ( ) 31. 表达式a++||b++,若a++的值为非零,则计算机不执行b++。 ( ) 32. 表达式a++&&b++,无论在什么情况下,都要执行a++和b++。 ( ) 33. 若有定义int i=3;则表达式i++和i的值都是4。 ( )

( )

35. 在C语言中,sizeof(a)是求变量a所占字节数,它是一个函数。 ( ) 36. 运算符的优先级正确排序是:

赋值运算符<逻辑运算符<关系运算符<算术运算符。 ( ) 37. (x>=1)&&x<=10能正确表示当x的取值在[1,10]范围内为真,否则为假。 ( ) 38. ‘A’<=ch<=’Z’是判断char型变量ch是否为大写字母的表达式。 ( ) 39. 若有int x=3,y=4,z=5;则表达式x||y+z&&y-z的值为0。 ( ) 40. 逻辑运算符两侧运算对象的数据类型只能是整型或字符类型。 ( ) 41. 若有a=0,则if(a=5)表示条件满足。 ( ) 42. 若有int x=10,y=20,z=30;则执行程序段if(x>y)z=x;x=y;y=z;后x=20,y=30,z=30。 ( ) 43. 程序段int a=0,b,c;if(a==0);b=a;else c=a;能够正确运行。 ( ) 44. C语言中,条件语句可以改写成if-esle语句。 ( ) 45. 若有int w=1,x=2,y=3,z=4;则条件表达式wy&&!x=y);是正确的if语句形式。 ( ) 47. 程序main(){int m=5;if(m++>5)printf(“%d\\n”,m);

else printf(“%d\\n”,m--);}结果是5。 ( )

48. 若有条件表达式(exp)?a++:b++,则表达式(exp==1)与(exp)等价。 ( ) 49. 在C语言中if语句共有三种,单if结构,if-else结构,if-else if?else 结构。 ( )

34. 在C语言中,(int)和int区别在于(int)是运算符,是强制转换成整型,int是变量类型说明。

50. 设有变量定义:int a=10,c=9;则表达式(--a!=c++)?--a:++c的值是10。 ( ) 51. 条件“22&&x<3&&x<-10。 ( ) 52.C语言中的输入语句只能用scanf实现。 ( ) 53.以下程序的输出结果是*3.140000,3.142* 。 ( ) main( ){ printf(“*%f,%4.3f*\\n”,3.14,3.1415); }

54. C语言中scanf语句和printf语句可以输入、输出任意多个数据 。 ( ) 55. 若有程序段int a,b;scanf(“%d,%d”,&a,&b);则从键盘输入 30 40时是正确的。( ) 56. scanf ( 格式控制,输入项表 ) 中“输入项表”必须是存储单元的地址。 ( ) 57.C语言中用“1”表示逻辑值“假” ,用“0”表示逻辑值“真” 。 ( ) 58.i=0,j=1,语句 if(j++||++i);执行后i、j的值分别是1、2。 ( ) 59. C语言中,putchar()函数可以向终端输出一个字符串。 ( ) 60. C语言中,getchar()函数可以从终端得到一个字符。 ( )

61. C语言中,getchar()函数与scanf()函数的区别在于getchar()只能用于字符的输入,而scanf()可以

输入任意类型的数据。 ( )

62. C语言中,输入语句getchar(ch);表示给变量ch输入一个字符。 ( ) 63. 已有定义,int a=-2;printf(“%8lx”,a);是错误的输出格式。 ( ) 64. 若有输出语句printf(“%u”,a);%u代表输出的是无符号的整型十进制 ( ) 65. 若有输入语句scanf(“%d %d”,&a,&b);输入的两个整数必须由一个空格隔开 ( ) 66. 若有int a=5,b=10;printf(“LL”,a,b);输出结果是5 6 ( ) 67. 在c语言中’\\n’与”\\n”占字节数相同。 ( ) 68. 在c语言中共有255个字符。 ( ) 69.若有定义char ch ; 语句 ch=’’; 是一个正确的赋值语句。 ( ) 70.若有定义char *pp[]={“a”, “ b”, “e” }; 其中pp是一个一维数组。 ( ) 71.若变量 i和p已正确定义,程序中*(p+i) 可以写成 p[i] 的形式。 ( ) 72.C语言中对文件进行操作,一定要先用“FILE”定义文件指针。 ( ) 73.对结构体成员的引用,可以直接引用成员名而不用在成员前加“结构变量名。”( ) 74. C语言中,字符(char)型数据在微机内存中的存储形式是补码。 ( ) 75.若有定义char ch[10] ; 语句 ch=”ABCD ”; 是一个正确的赋值语句。 ( ) 76. C语言程序主要由函数和过程组成。 ( ) 77.TURBO C中double类型变量所占字节数是4个。 ( ) 78.C语言中运算对象必须是整型的运算符是“/”。 ( ) 79.逻辑运算符中优先级最高的运算符是“&&”。 ( ) 80. 0.01e-2是一个正确的C语言常量。 ( ) 81. #define M 100 中的M可以在主程序中改变。 ( ) 82. x已正确定义,语句if(!x) ;没有语法错。 ( ) 83. int i=5; for( ; ;i++){i+=5;} 循环结束后,i的值为10. ( ) 84. scanf语句只能输入数字,不能输入字符。 ( ) 85. printf语句既能输出数字,也能输出字符。 ( ) 86. C语言中的自定义函数可以不经过调用就直接编译连接成可执行文件。 ( ) 87. C语言中的自定义函数中必须有return语句。 ( ) 88. ”\\n”是一个合法的字符串常量。 ( ) 89. break语句只能用于switch 语句和循环语句。 ( ) 90. C语言中,switch语句可以改写成if-esle语句。 ( ) 91. C语言中,else必须与离它最近的if配对使用。 ( )

92. C语言中,选择结构中,if必须与else配对使用。 ( ) 93. C语言中,switch(表达式),其中表达式必须是条件表达式。 ( )

( )

95. C语言中,循环结构共三种,即:while、dowhile和for结构。 ( ) 96. C语言中,循环结构while(1),其循环条件为真,表示永远满足。 ( ) 97. C语言中,for(表达式1;表达式2;表达式3)循环结构,三个表达式都可以省略。 ( ) 98. 程序段 while(i<=100)s=s+i;i++;是正确的,它的可以实现从1加到100的和。 ( ) 99. C语言中,三种循环结构可以任意嵌套。 ( ) 100. C语言中,do-while语句与while语句完全等价。 ( ) 101. C语言中,循环结构for(表达式1;;表达式3)是正确的。 ( )

( )

103. 程序段int k=10;whle(k==0)k=k-1;中的循环体语句执行一遍。 ( ) 104. 语句while(!E);中的表达式!E等价于E==0。 ( ) 105. 程序段int n=0;while(n++<=2);printf(“%d”,n);则n的值是4。 ( ) 106. do-while语句的循环体只能是一条语句,所以不能使用复合语句。 ( ) 107. 程序段int x=-1;do{x=x*x;}while(!x);是死循环。 ( ) 108. 程序段int x=3;do{printf(“%d\\n”,x-=2);}while(!(--x));输出的是1和-2。 ( ) 109. 在for循环的循环体语句中,可以包含多条语句,但必须由大括号括起来。 ( ) 110. while(1){x++;},当x的取合适的初值时,可以避免死循环。 ( ) 111. C语言中,do-while语句可以改写成while语句。 ( )

112. 语句printf(\与puts(str);是等价的,都是从字符串指定位置开始输出,一直到最后并

自动换行。 ( )

113.while(1) scanf(“%d” ,&a); 该语句死循环。 ( ) 114.while(0) scanf(“%d” ,&a); 该语句死循环。 ( ) 115.if(1) a=1; else a=2; 该语句执行后a的值是1。 ( ) 116.赋值运算符的优先级高于逗号运算符。 ( ) 117.char cc[8]={‘a’,‘b’,‘c’,‘d’}; 数组cc放的是字符串。 ( ) 118.表达式(12&&‘a’||0)的值为1。 ( )

( )

120.只要用递归函数能实现的功能,一定可以用循环语句实现。 ( ) 121. C语言中,建立函数的目的之一是提高程序的可读性。 ( ) 122. C语言中,double fun(int x;int y)是正确的函数定义形式。 ( ) 123. C语言中,用户若需要调用标注库函数,调用前必须利用#include包含函数库。 ( ) 124. C语言中,用户若需要调用标注库函数,调用前必须重新定义。 ( ) 125. C语言中,实参和与其对应的形参各占用独立的存储单元。 ( ) 126. C语言中,若函数中没有return语句,则返回一个不确定的值。 ( ) 127. C语言中,形参与实参的数据类型可以不一致。 ( ) 128. C语言中允许函数值类型缺省定义,此时该函数值隐含的类型是int。 ( ) 129. 函数调用可以出现在函数的实参中。 ( ) 130. 函数调用可以嵌套,函数的定义也可以嵌套。 ( ) 131.若定义void ac(int i,int n)函数,则在函数中不能有return语句 ( )

94. C语言中,switch(表达式){ case 表达式常量 :语句 }其中表达式常量可以是任意常量。

102. C语言中,循环结构for(表达式1;表达式2;表达式3)中表达式2必须是条件表达式。

119.若a正确定义,语句scanf(“%s”,a);和gets(a);数组a都能接收字符串,没有任何区别。

132. C语言中,被调函数的定义部分必须放在调用函数上方。 ( ) 133. 在函数中,return语句的个数不限,因此可以用它返回多个值。 ( ) 134. 在函数中,形参与实参的个数必须一致,且形参与实参的值可以相互传递。 ( ) 135. 在主函数中声明的函数,只有主函数调用,其他函数不能调用。 ( ) 136. C语言中,指针变量只能存放变量的地址。 ( ) 137.局部变量只对main函数起作用,而全局变量对所有函数起作用。 ( ) 138.若有宏定义#define M 3+4,程序中可以用7代替M。 ( ) 139.局部变量既能在函数体中定义,又能在复合语句中定义。 ( ) 140.全局变量只能在程序开始定义,即main函数的上面定义。 ( ) 141. C语言中,取地址符号&与指针运算符*优先级相同。 ( ) 142. C语言中,用来存放指针地址的变量就是地址。 ( ) 143. 若有定义,int a=100,*p=&a,**k=&p;则*k=100。 ( ) 144. 若有定义,int a,*p=&a;则scanf(“%d”,*p);是正确的赋值。 ( ) 145. 若有定义,int *point,a=4;point=&a;则point、&a、*&point都代表地址。 ( ) 146. 若有定义,int a=5;则int *p=&a;表示在对P进行说明的同时进行初始化,

使p指向a。 ( ) 147. 若有定义,int *p,*q;q=p;inta,*p,*q p=q=&a;是正确的语句。 ( ) 148. 若有定义,int *p=&a,*q=&b,b,a; p=q;是正确的语句。 ( )

149. 若有定义,int k=2,*ptr1,*ptr2;且ptr1和ptr2均已指向k,则ptr2=k是正确的语句。

( )

150. 程序段char s[]=”china”;char *p;p=s;s和p完全相同。 ( )

151. 程序段char s[]=”china”;char *p;p=s;数组s中的内容和指针变量p中的内容相等。

( )

152. 程序段char s[]=”china”;char *p;p=s; *p与s[0]相等。 ( ) 153. 程序段char *s=“abcde”;s+=2;printf(“%d”,s);运行结果是cde。 ( ) 154. 设char *s=”\\ta\\017bc”;则指针便量s指向的字符串所占字节数是6。 ( ) 155. char s[5]=”ABCDE”能够正确进行字符串赋值。 ( ) 156. 程序段char str[20];scanf(“%s”,&str);是正确的。 ( ) 157. 程序段char str[ ]=“ABC”,*p=str;printf(“%d\\n”,*(p+3));

运行结果是69。 ( ) 158. 若有char s1[]=”stringrr” 库函数strcpy(s1,”string2”)是将字符串

”string2”复制到s1中。 ( ) 159. 若有char a[]=”It is mine”;则a+1表示的是字符t的地址。 ( ) 160. 若有char a[]=”It is mine”;则a中只能存放10个字符。 ( ) 161.语句len=strlen(“a\\n”);执行后len的值是3。 ( ) 162. C语言中,若有int a[5]={12,34,56,78,90},*p=a;则*p++=13。 ( ) 163. C语言中,若有int a[5]={12,34,56,78,90},*p=a;则p++=&a[0]。 ( ) 164. C语言中,若有程序段,int a=100,*p, *q;p=&a;*p=*q;是正确的。 ( )

( )

166.若有以下定义:int a[10] ={0}; 则表示只有a[0]的值是0;其余元素的值未定。( ) 167.在C语言中以下语句是正确的,int a,*p=&a; 此语句表示指针变量p指向a。 ( ) 168.在C语言中若有int a[10];则a[10] 是最后一个元素。 ( ) 169.在C语言中,int a[10];scanf(“%d”,a);表示一次性地给数组a的10元素赋值。( )

165. 程序段,int a=100,b=200,*p=&a,*q=&b,*t;*t=*p;*p=*q;*q=*t;可以实现a与b两个数的交换。