c语言考试题库_第1页
c语言考试题库_第2页
c语言考试题库_第3页
c语言考试题库_第4页
c语言考试题库_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单选: 1. 以下程序的输出结果是(C)#include <>main()int i;for(i = 1; i < 5; i+)if(i % 2) putchar('<');elsecontinue;putchar('>'); putchar ('#'); A、 < > < > < > #B、 > < > < #C、 < > < > #D、 > < > < > < #2.设j和k都是int类型,则f

2、or循环语句for(j=0,k=-1;k=1;j+,k+) printf("*n");( B)。A循环体一次也不执行B、是无限循环C循环结束的条件不合法D循环体只执行一次3. 以下叙述正确的是(B)。A、 do-while 语句构成的循环不能用其它语句构成的循环来代替 .B、用do-while语句构成的循环,在while后的表达式为零时结束循环C用do-while语句构成的循环,在while后的表达式为非零时结束循环D、 do-while 语句构成的循环只能用 break 语句退出 .4. 有以下程序(A)main() int i;for(i=0; i<3; i+)s

3、witch(i) case 1: printf("%d", i);case 2: printf("%d", i);default : printf("%d", i);执行后输出结果是A、 011122B、 120C、 012020D、 0125.执行下面的程序段后,变量k中的彳1为(D) int k=3, s 2 ;s 0 =k; k=s 1 *10;A、 33B、 10C、 30D不定值6. 以下程序中,若第一个printf 语句输出的是194,则第二个printf 语句的输出结果是(A)main() int a = 1, 2, 3

4、, 4, 5, 6, 7, 8, 9, 0;printf("%xn", a);printf("%xn", a + 9);A、 212B、 204C、 1a4D、 1a67. 以下程序段的输出结果为(B)。char c="abc" int i=0;do ;while(ci+!='0');printf("%d",i-1);A、 abcB、 3C、 abD、 28. 若有说明int a34;则a数组元素的非法引用是(B)。A、 a13B、 a04C、 a4-20D、 a02*19. 若有定义语句: cha

5、r c5='a','b','0','c','0', 则执行语句 pritnf("%s", c); 的结果是 (D)A、 ab cB、 ab0cC、 'a''b'D、 ab10. 下列数组说明中,正确的是(B)。A、 static char str; str="China"B、 static char str="China"C、 static char str15,str2="China" str1=str

6、2;D、 static char str1,str2;str2="China"strcpy(str1,str2);11.在CS言中,一维数组的定义方式为:类型说明符数组名(B)A、 整型表达式 B、 整型常量 或 整型表达式 C、 常量表达式 D、 整型常量 12. 以下程序段的输出结果是(9)pritnf("%dn", strlen("ATSn0121");A、 8B、 11C、 10D、 9E、 .若有说明:int a34;则数组a中各元素(A)。A不能得到确定的初值B、可在程序的编译或运行阶段得到初值 0C可在程序的运彳f阶段得

7、到初值0D可在程序的编译阶段得到初值0F、 .对两个数组a和b进行如下初始化:(D)char a = "ABCDEF"char b = 'A','B','C','D','E','F'则以下叙述正确的是A a与b中都存放字符串B、a数组比b数组长度长C a与b长度相同D、 a 与 b 完全相同15. 以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是( D)。A、 char s10;strcpy(s,"abcdefg");B、 char s10=&quo

8、t;abcdefg"C、 char t="abcdefg",*s=t;D、 char s10;s="abcdefg"判断1 . int a34=1,5,9;它的作用是将数组各行第一列的元素赋初值,其余元素值为 0(T)。2 .如果想使一个数组中全部元素的值为0,可以写成int a10=0*10;(F)3 . char c="Very Good" 是一个合法的为字符串数组赋值的语句 (T)4 .若有说明int c;则while(c=getchar();是正确的C语句。(T)填空1 .以下程序的功能是从a数组中删除其值为x的数据

9、,请填空 main()int a10=2,4,7,3,1,7,6,8,7,9, i, j, x = 7;for(; i<10; i+)( i=0)if(ai != x)a j+ = x;for(i = 0; i+)(i<8)printf("%5d", ai);printf("n");2 . 一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6的因子为 1、2、3,而 6=1+2+3,因此6是“完数"。以下程序是求11000之间的所有完数,请填空,以完 善程序功能。#define M 100main() i

10、nt a, b, xM, sum, cnt = 0;for(a = 1; a <= 1000; a+)b = 1;(sum=0;)while(b<a)是a的一个因子*/是完数 */ (sum=a)/*输出所有完数if(a % b = 0)/* bsum += b;b+;if( )/* axcnt+ = a;for(b = 0; b < b+)*/( cnt)printf("%8d", xb);printf("n");3.以下程序统计从终端输入的字母中每个大写字母的个数,num0中统计字母A勺个数,其它依次类推。用 阴结束输入,请填空。#

11、include ""#include ""main() int num26 = 0; i; char c;while( != '#')()if( isupper(c)num1 += 1;for(i = 0; i < 26; i+)if(numi)printf("%c : %dn", i + 'A', numi);4.以下程序的输出结果是 o (12)main() int arr10, i, k = 0;for(i = 0; i < 10; i+)arri = i;for(i = 0; i &

12、lt; 4; i+)k += arri + i;printf("%d'n", k);5.给出以下程序,其功能是将a矩阵和b矩阵合并成c矩阵,最后将c矩 阵按格式输出。请填空。#include <> main() int a34 = 3, 1, 7, 5,1, 2, 4, 3,6, 3, 0, 2;int b34 = 2, 3, 1,4,5, 1, 3, 6,1, 5, 2, 3;int i, j, c34;for(i = 0; i < 3; i+)for(j = 0; j < 4; j+)c皿=;(aiJIjJ+bij)for(i = 0;

13、i < 3; i+) for(j = 0; j < 4; j+) pritnf("%5d", cij);(printf("n" )程序设计/*编写程序,实现矩阵(3行3列)的转置(即行列互换)例如,输入下面的矩阵:100 200 300400 500 600700 800 900程序输出:100 400 700200 500 800300 600 900fun 的注意: 部分源程序存在文件中。请勿改动主函数main 和其他函数中的任何内容,仅在函数花括号中填入你编写的若干语句。 */#include <>#include <

14、>#include <>void fun(int array33) *Begin*/* End */NONO( )/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */int i,j;FILE *wf ;int array33=100,200,300, 400,500,600, 700,800,900;wf = fopen("", "w") ;fun(array);for(i=0;i<3;i+) for(j=0;j<3;j+)fprintf(wf,"%7dn",array

15、ij);fclose(wf) ;main()int i,j;int array33=100,200,300, 400,500,600, 700,800,900;system("cls");for (i=0;i<3;i+) for (j=0;j<3;j+)printf("%7d",arrayij); printf("n");fun(array);printf("Converted array:n");for(i=0;i<3;i+) for(j=0;j<3;j+)printf("%7d

16、",arrayij); printf("n");NONO( );程序填空/*【程序填空】功能:打印以下图形。*/ #include <> main ( )char a59=""int i,j;for (i=0;i<5;i+)*FILL*for(j=i; ;j+)(j<i+5)aij='*'/*FILL*/for(;i<5;i+)(i=0)for(j=0;j<9;j+)*FILL*printf("%c", );(aij)/*FILL*/(printf( “ n ” ) 在C语

17、言中,文件的存取是以【1】为单位的,这种文件被称为【2】文件。答案:1) .字符2) .流式下列语句输出的结果是【 1】。 int a=-1;printf("%x",a);答案:1). Ffffint x=4,y=z=2;x=x=(y=z); 则 x 的值为【 1】 。答案:1). 0字符串 "abctx42128bcdn" 的长度是【 1】 .答案:1). 11函数的【 1】调用是一个函数直接或间接地调用它自身。答案:1). 递归设a取二进制数00101101,若想通过aAb运算使a的高4位取反,低4位不变 , 则 b 的二进制数是【 1】 。答案:1

18、).字符串的结束标志是【1】 。答案:1). 0 或 '0' 或 0int x=y=z=2;x=y=z; 则 x 的值为【 1】。答案:1). 1表达式 6+'x43'+010+0x10 的值是【 1】。答案:1). 97如果函数不要求带回值, 可用【 1 】来定义函数返回值为空。答案:1). voidint x=2,y=3,z=4; 则表达式 !x+y>z 的值为【 1】 .答案:1). 0在C程序中,数据可以用二进制和【11两种代码形式存放。答案:1). ASCII101' 在内存中占【 1 】个字节。答案:1). 1下列语句输出的结果是【 1

19、】 。 unsigned int b=65535;printf("%d",b);答案:1). -1设有以下定义的语句 :int a32=10,20,30,40,50,60, (*p)2;p=a;则 *(*(p+2)+1) 值为【 1】 。答案:1). 60结构体是不同数据类型的数据集合, 作为数据类型,必须先说明结构体【 1】 , 再说明结构体变量。答案:1). 类型下列语句输出的结果是【 1】 。 unsigned int b=65535;printf("%d",b);答案:1). -1字符串比较的库函数是【 1】 , 只写函数名即可。答案:1). S

20、trcmpC语言中,二维数组在内存中的存放方式为按【1】优先存放。答案:1). 行在C语言中,最小整型数是【1】。答案:1). -32768int x=2,y=3,z=4; 则表达式x+y&&x=y的值为【1】.答案:1). 1按内存排列顺序, 数组 char a2 中的所有元素是a1 和【 1】。答案:1). a0int x; x=-3+4%-5*3, 则 x 的值为【 1】。答案:1). 9设 a,b,c,t 为 整 型 变 量 , 初 值 为 a=3,b=4,c=5, 执 行 完 语 句 t=!(a+b)+c-1&&b+c/2后 ,t 的值是【 1】 。答

21、案:1). 1int x; x=3*4%-5/6, 则 x 的值为【 1】。答案:1). 0执行语句 char s3="ab",*p;p=s;*(p+2) 的值是【 1 】 。答案:1). '0'设 x=,a=7,y=, 算术表达式 x+a%3*(int)(x+y)%2/4 的值为【 1】 。答案:1).预处理命令行都必须以【 1】号开始。答案:1). #设有一个名为 "" 的 c 程序 , 其主函数为 main(int argc,char *argv), 如果在执行时,输入的命令行为 myfile aa bb cc /则形式参数argc

22、 的值是【 1】 。答案:1). 4strcat() 函数原型在【 1】中。答案:1).函数调用语句 func(e1,e2),(e3,e4,e5) 中含有【 1】个实参。答案:1). 2在C语言中,最大整型数是【1】。答案:1). 32767gets() 函数的原型在【 1】中。答案:1).设 x=2&&2|5>1,x 的值 为【 1】。答案:1) . 1"a" 在内存中占【 1】个字节。答案:1). 2在c程序中,只能给指针赋NULL值和【1】值。答案:1). 地址字符串 "1234tx43bcd" 的长度是【 1 】 .答案:1

23、). 9若输入字符串:abcde<回车,,则以下while循环体将执行【1】 次While(ch=getchar()='e') printf("*");答案:1). 0int x=2,y=3,z=4; 则表达式 x+y>z&&y=z的值为【1】。答案:1). 0执行下列语句后 ,*(p+1) 的值是【 1】。char s3="ab",*p;p=s;答案:1). b若宏定义为 :#define y(x) 2+x, 则表达式 a=3*y(3) 的值为【 1】。答案:1). 9设 x=2, 表达式 x>=60=1 的值为【 1】。答案:1). 0若宏定义为 :#define y(x) 2/x, 则表达式 a=4+3*y(3) 的值为【 1】答案:1). 6假设变量 a,b 均为整型 , 表达式(a=5,b=2,a>ba+:b+,a+b)的值是【 1】 。答案:1). 8设有一个名为 "" 的 c 程序 , 其主函数为 main(int argc,char *argv), 如果在执行时,输入的命令行为my aa bb/则形式参数argc 的值是【 1】 。答案:1). 3fabs() 函数的原型在【 1】中。答案:1).已知 i=5, 写出

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论