C语言题库(带答案)-排版.docx

相关 举报
资源描述
一、选择题 1 、以下不能定义为用户标识符的是( )。 (A) MAIN (B) _HJ (C) 2ong (D) LINE1 2 、以下不能定义为用户标识符的是( ) (A) If (B) H_J (C) 208ong (D) LINE12 3 、下面属于 C 语言标识符的是 ( ) 。 (A) 2ab (B) @f (C) ?b (D) _a12 4 、下列符号中用来表示 C 语言中的回车换行的是( )。 (A) \r (B) \n (C) \b (D) \t 5 、在计算机系统中,可执行程序是( ) (A) 源代码 (B) 汇编语言代码 (C) 机器语言代码 (D) ASCII 码 6 、在 Visual C++ 6.0 环境下, C 源程序文件名的默认后缀是 ()。 (A) .obj (B) .txt (C) .c (D) .doc 7 、 Microsoft Visual C++ 6.0 中, C 语言可执行程序的扩展名是: ( ) (A) exe (B) obj (C) c 或 cpp (D) txt 8 、C 程序由 ( ) 组成。 (A) 子程序 (B) 主程序和子程序 (C) 函数 (D) 过程 9 、C 程序的基本组成单位 () 。 (A) 数据类型 (B) 变量和常量 (C) 函数 (D) 表达式 10 、C 语言中主函数的个数是 ( ) 。 (A) 2 个 (B) 1 个 (C) 任意个 (D) 10 个 11 、一个 C 程序的执行是从( ) (A) 本程序的 main() 函数开始 , 到 main 函数结束 . (B) 本程序文件的第一个函数开始 , 到本程序文件最后一个函数结束 . (C) 本程序文件的第一个函数开始 , 到本程序 main 函数结束 . (D) 本程序的 main() 函数开始 , 到本程序文件的最后一个函数结束 . 12 、以下叙述正确的是 (A) 在 C 语言程序中, main 函数必须放在其他函数的最前面 (B) 在每个后缀为 .C 的 C 语言源程序都可以单独进行编译 (C) 在 C 语言程序中,只有 main 函数才可单独进行编译 (D) 每个后缀为 .C 的 C 语言源程序都应该包含一个 main 函数 13 、设变量 a 是整型, b 是实型, c 是双精度型,则表达式 2+’a’+b*c 值的数 据类型是( )。 (A) int (B) float (C) double 14 、以下选项中表示一个合法的常量是(说明:符号□表示空格) A) 9 □9 □9 B)0Xab C)123E0.2 D)2.7e 15 、以下选项中非法的字符常量是 A)'\102' B)'\65' C)'\xff' D)'\019' 16 、以下选项中,能表示逻辑值“假”的是 A)1 B)0.000001 C)0 D)100.0 17 、下列关系表达式中,结果为“假”的是 A)(3+4)>6 B)(3!=4)>2 C) 3<=4||3 D)(3<4)==1 18 、关于 C 语言变量,以下说法不正确的是( ) (A) 变量名由程序员定义,必须符合标识符的命名规则。 (B) 变量是程序运行过程中其值可以改变的量。 (C) 可以用 C 语言的关键字作为变量名。 (D) 变量命名时应尽量做到见名知意。  19 、关于 C 语言中数的表示,以下叙述正确的是 A) 只有整型数在允许范围内能精确无误的表示,实型数会有误差 B) 只要在在允许范围内整型和实型都能精确表示 C) 只有实型数在允许范围内能精确无误的表示,整型数会有误差 D) 只有八进制表示的数在不会有误差 20 、设有语句 int a=3; ,则执行了语句 a+=a =a*a; 后,变量 a 的值是 。 A.3 B .0 C .9 D. 12 21 、在 C 语言中,要求运算数必须是整型的运算符是 。 A.% B ./ C .< D .! 22 、C 语言中最简单的数据类型包括 。 A.整型、实型、逻辑型 B.整型、实型、字符型 C.整型、字符型、逻辑型 D .整型、实型、逻辑型、字符型 23 、在 C 语言中,合法的字符型常量是 。 A.'\t' B ."A" C .65 D . A 24 、若已定义 x 和 y 为 double 型变量,则表达式 x=1 ,y=x+3/2 的值是 。 A.1 B .2 C . 2.0 D .2.5 25 、设正 x、y 均为整型变量, 且 x=10,y=3 ,则以下语句的输出结果是 。 printf("%d,%d\n",x--,--y); A.10,3 B .9,3 C .9,2 D. 10,2 26 、若有定义 int a=8,b=5,C; ,执行语句 C=a/b+0.4; 后,C 的值为 。 A.1.4 B .1 C .2.0 D .2 27 、以下选项中,不正确的赋值语句是 。 A.++t; B. n1=(n2=(n3=0)); C.k=i==j; D.a=b+c=1; 28 、设 x 和 y 均为 int 型变量,则语句:x+=y,y=x-y;x-=y; 的功能是 。 A.把 x 和 y 按从大到小的顺序排列 B.把 x 和 y 按从小到大的顺序排列 C.无确定结果 D.交换 x 和 y 中的值 29 、以下程序的输出结果是 。 #include main() { char c='z'; printf("%c",c-25); } A.a B .Z C .z-25 D .y 30 、已知字母 A 的 ASCII 码为十进制数的 65 ,以下程序的输出结果是 。 #include main() { char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d,%c\n",ch1,ch2); } A.67,D B. B,C C.C,D D.不确定的值 31 、若 k 是 int 型变量,则以下程序片段的输出结果是 。 k=-3; if(k<=0) printf("####"); else printf("&&&&"); A.#### B.&&&& . . . . C.####&&&& D.有 法 ,无 出 果 32 、关于以下程序, 法正确的是 。 #include main() { int x=3,y=0,z=0; if(x=y+z) printf("* * * *"); else printf("# # # #"); } A.有 法 不能通 B. 出 * * * * C.可以通 ,但是不能通 接,因而不能运行 D. 出 # # # # 33 、若要求在 if 后一 括号中表示 a 不等于 0 的关系, 能正确表示 一 关系的表达式 。 A. a<>0 B.!a C. a=0 D.a 34 、能正确表示关系 x ≤y ≤z 的 C 言表达式是 。 A.(x<=y)&&(y<=z) B.(x<=y)and(y<=z) C. (x<=y<=z) D.(x<=y)&(y<=z) 35 、能正确表示 关系 a≥10 或 a ≤0 的 C 言表达式是 。 A.a>=10 or a<=0 B. a>=0|a<=10 C.a>=10 &&a<=0 D.a>=10 ‖a<=0 36 、若 量 c 为 char 型,能正确判断出 c 小写字母的表达式是 。 A.'a'<=c<= 'z' B.(c>= 'a')||(c<= 'z') C.('a'<=c)and ('z'>=c) D.(c>= 'a')&&(c<= 'z') 37 、 句 while(E); 中的条件 E 等价于 。 A. E==0 B.E!=1 C.E!=0 D.~ E 38 、 句 while(!E); 中的条件 !E 等价于 。 A.E==0 B.E!=1 C. E!=0 D.~ E 39 、以下程序片段的 出 果是 。 int x=23; do { printf("%2d",x--); } while(!x); A.打印出 321 B.打印出 23 C.不打印任何内容 D.陷入死循 40 、若 i 、 j 已定 int 型 量, 以下程序片段中,内循 体的 行次数 是 。 for(i=5;i;i--) for(j=0;j<4;j++) { ⋯} A.20 B.25 C. 24 D.30 41 、以下程序的 出 果是 。 #include main() { int n=4 ; while(n--) printf("%d ",--n); } A.2 0 B.3 1 C. 3 2 1 D.2 1 0 42 、以下定 句中, 的是 。 A.int a[]={1,2}; B. char *a[3]; C.char s[10]="test"; D.int n=5,a[n]; 43 、 int 型 量占用 4 个字 ,如有定 int x[10]={0,2,4}; , 数 x 在内存中所占的字 数是 。 A. 3 B. 12 C.20 D.40 44 、以下 句的 出 果是 。 printf("%d\n",strlen("\t\"\065\xff\n")); A.5 B.14 45 、以下程序片段的 出 果是 。 char str[]="ab\n\012\\\""; printf(%d",strlen(str)); A. 3 B. 4 C.6 D.12  46 、以下数 定 中,不正确的是 。 A.int a[2][3]; B.int b[][3]={0,1,2,3}; C.int c[100][100]={0}; D. int d[3][]={{1,2},{1,2,3},{1,2,3,4}}; 47 、以下程序的 出 果是 。 #include main() { int a[4][4]={{1,3,5},{2,4,6},{3,5,7}}; printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]) ; } A. 0650 B .1470 C. 5430 D.不确定的 48 、以下程序的 出 果是 。 #include main() { int aa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}}; int i,s=0; for(i=0;i<4;i++) s+=aa[i][1]; printf("%d\n",s); } A. 11 B.19 C.13 D.20 49 、以下 C 言字符数 的描 中, 的是 。 A.字符数 可以存放字符串 B.字符数 中的字符串可以整体 入、 出 C.可以在 句中通 运算符“ =” 字符数 整体 D.不可以用关系运算符 字符数 中的字符串 行比 50 、定 如下 量和数 : int i; int x[3][3]={1,2,3,4,5,6,7,8,9}; 以上 句的 出 果是 。 for(i=0;i<3;i++) printf("%d",x[i][2-i]); A. 1 5 9 B .1 4 7 C.3 5 7 D .3 6 9 51 、不能将字符串: Hello! 数 b 的 句是 。 A.char b[10]={'H','e','l','l','o','!','\0'}; B. char b[10];b="Hello!"; C.char b[10];strcpy(b,"Hello!"); D.char b[10]="Hello!"; 52 、以下数 定 中,合法的是 。 A.int a[]="string"; B.int a[5]={0,1,2,3,4,5}; C.string s="string"; D.char a[]={0,1,2,3,4,5}; 53 、若有以下定 句: int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 数 6 的表达式是 。 A. *p+6 B.*(p+6) C.*p+=5 D.p+5 54 、若有以下定 句: int w[3][4]={{0,1},{2,4},{5,8}}; int(*p)[4]=w; 数 4 的表达式是 。 A.*w[1]+1 B . p++,*(p+1) C .w[2][2] D. p[1][1] 55 、若有以下定 句: int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 不能表示 a 数 元素的表达式是 。 A. *p B.a[10] C.*a D.a[p-a] 56 、下列保留字中用于构成循 构的是 ( ) (A) else (B) for (C) switch (D) default . . . . 57 、以下程序运行结果是: ( ) (A) 无限次输出: “你好,中国! ” (B) 输出 5 次“你好,中国! ” (C) 没有任何输出 (D) 编译错误,不能运行 #include main() { while(5) printf(" 你好,中国! "); } 58 、以下函数值的类型是 。 int fun(float x) { float y; y=3*x-4; return y; } A.int B.不确定 C.void D .float 59 、以下程序的输出结果是 。 #include int a,b; void fun() { a=100; b=200; } main() { int a=5,b=7; fun(); printf("%d%d\n",a,b); } A. 100200 B . 57 C .200100 D. 75 60 、以下函数调用语句含有 个实参。 func((exp1,exp2),(exp3,exp4,exp5)); A. 1 B.2 C. 4 D. 5 61 、在调用函数时,如果实参是简单变量,它与对应的形参之间的数据传递方式是 。 A.地址传递 B .单向值传递 C.由实参传给形参,再由形参传回实参 D .由用户指定的 62 、以下 if 语句错误的是( ) (A)if (x= 是 A) 算术运算符 B) 关系运算符 C) 逻辑运算符 D) 以上均不是 73. 已知: int a=1,b=2,c=3,d=4; 则表达式 a>b?a:(c>d?c:d) 的值是 A)1 B)-2 C)3 D)4 74. 执行以下程序段后,变量 y 的值是 int x,y; x=1; y=(++x*5); A)5 B)10 C)15 D)20 75. 若有说明: int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12};, 则数组 第一维的大小为 A)2 B)3 C)4 D) 不能确定的值 76. 函数调用: strcat(strcpy(str1,str2),str3) 的功能是 A) 将串 str1 复制到串 str2 中后再连接到串 str3 之后 B) 将串 str1 连接到串 str2 之后再复制到串 str3 中 C) 将串 str2 复制到串 str1 中后再将串 str3 连接到串 str1 之后 D) 将串 str2 连接到串 str1 之后再将串 str1 复制到串 str3 中 77. 有以下程序 #include main() { int a,b; a=5;b=8; p(a+b,a); p(a/b,b); } . . . . p(int x,int y) { y=x+y; printf( “%d,%d\n ”,x,y); } 行上述程序后的 出是 A)13,18 B)18,5 C)18,5 D)18,23 0,8 1,13 1,14 1,13 78. 若以数 名作 函数的 参, 参向形参 送的是 A) 数 元素的地址 B) 数 元素的 C) 数 的首地址 D) 数 名 79. 量的指 是 A) 量的 B) 指 量 C) 量存 元的地址 D) 量存 元的字 数 80 . 行以下程序后, a 的 int *p,a=10,b=1; p=&a;a=*p+b; A)12 B) 出 C)10 D)11 二、填空 1 、 C 言 符由字母、下划 或数字 成。命名 符必 以 字母 或 下划 开 ,字母 格区分大小写,不能使用 C 言的关 字作 符。 (两空 序可以互 ) 2 、在 C 言中,包含 文件的 理命令以# 开 。 3 、在 C 言中,主函数名是 main 。 4 、机器 言是 算机唯一能直接 行的 言。 算机并不能直接地接受和 行 用高 言 写的源程序,源程序在 入 算机 ,通 “翻 程序 ”翻 成机 器 言形式的目 程序, 算机才能 和 行。 种 “翻 ”通常有两种方式, 即 编译 和 解 。 5 、C 言源程序文件 后, 生成文件的后 是 .obj ; 接后, 生成文件的 展名是 .exe 。 6 、开 一个 C 程序要 、 编译 、 接 和运行 4 个步 。 7 、在 构化程序 方法中,有 序 构 、 构 和 循 构 三种基本 构。 8、C 言中 了 化程序,提高程序的 效率,在 运算符前面加上其他 运算符号构成复合运算符。例如: x=x+5 用复合运算符可以写成 x += 5 9、已知字符 A 的 ACSII 码值为 65 ,以下 句的 出 果是 B,66 char ch='B'; printf("%c,%d\n",ch,ch); 10 、若定 : int a=5,b=2,c=1; 表达式 a-b>c||b==c 的 是 1 ; 表达式 a-b>c&&b==c 的 是 0 。 14 、“: ? ”条件运算符是 C 言中唯一的三目运算符。由其 接的表达式 条 件表达式,其格式 : < 表达式 1> ?< 表达式 2> :<表达式 3> 。 行 程: 首先 算表达式 1 的 ,如果表达式 1 的 是 “真”(非 0), 整个表达式的 为 表达式 2 的 ;如果表达式 1 的 是 “假”(0), 整个表达式的 表达式 3 的 。 15 、C 言中常用的三种循 控制 句中, while 句和 for 句属于 当 型 循 , do⋯⋯while 句属于 直到 型循 。 16 、把多个 句用括号 {} 括起来 成的一个 句称 复合 句 。 在程序 中 把 种 句看成是 条 句,而不是多条 句。把一种只有分号而没有表  达式的特殊 句称 空 句 ,它是 c 句中最 的 句 , 因 它只由一 个分号 成,是一种不 行任何操作的 句。 17 、 于 while 和 do⋯⋯while 两种循 句, do⋯⋯while 句至少 行 1 次循 体,而 while 句可以一次也不 行循 体。 18 、在循 句中, continue 和 break 句的区 是: continue 句 提前 束本次循 , 行下一次循 的判断; 而 break 句跳出循 构, 束循 。 19 、一个循 体内又包含另一个完整的循 构,称 嵌套 。 20 、for 句表达方式灵活多 , for(;;) 表示 循 条件 真 。 21 、表达式 (int)((double)(5/2)+2.5) 的 是 ___ ___4____ __ 。 22 、 x 和 y 均 int 型 量,且 x=1,y=2, 表达式 1.0+x/y 的 ___1.0___ __ 。 23 、 量 a 和 b 的 均不 0 的 表达式是 __ ___a!=0 && b!=0___ __ 。 24 、 于 while 和 do-while 两种循 句, ___ __do-while__ __ 句 至少 行 1 次循 体。 25 、逗号表达式 (a=15,a*4),a+5 的 ___ __20___ ____ 。 26 、 执 行 下 列 语 句 int a=8; a+=a-=a*a; 后 , a 的 值 是 __ ___-112___ ____ 。 27 、开 一个 C 程序要 、 __ ___ 编译 ___ ____ 、 接和运行 4 个步 。 28 、C 言中基本的数据 型有:整型、 ____ __ 型 ___ ___ 、字符型。 29 、int x=6, y=7; printf( ”%d,”,x++); printf( ”%d n”,++y); 程序的 出 果是 ___ ___6,8___ ___ 。 30 、判断 ch 大写字母的 表达式 ___ __ch>= ’A’&& ch<= ’Z’___ ____ 。 31 、func((exp1,exp2),(exp3,exp4,exp5)); 函数 用 句含有 2 个 参。 32 、 有以下定 句: int a[3][2]={10,20,30,40,50,60},(*p)[2]=a; 则*(*(p+2)+1) 的 60 。 33 、以下函数的功能是将两个整数指 所指的存 元中的内容 行交 。 exchange(int *x, int *y) { int t; t=*y; *y= *x ; *x= t ; } 34 、int 量在 Win32 中占 4 个字 。 35 、写出 1010 && x<20 || x<-30 。 36 、 量 a、b 中有且只有一个 0 的 表达式是 a==0 && b!=0 || a!=0 && b==0 。 37 、若有定 句: int a=5;, 表达式 a++ 的 是 5 。 38 、若有 句 double x=17;int y;, 当 行 y=(int)(x/5)%2; 之后 y 的 是 1 。 39 、若整型 量 a 和 b 中的 分 7 和 9 ,要求按以下格式 出 a 和 b 的 : a=7,b=9 完成 出 句: printf (" a=%d,b=%d ",a,b);。 40 、若有定 : int k; ,以下程序段的 出 果是 #2#4 。 for(k=2;k<6;k++,k++) printf("#%d",k); . . . . 41 、以下程序运行后的输出结果是 1 0 。 #include main() { int x=20; printf("%d ",0 main() { int a=1,b=2; a=a+b; b=a-b;a=a-b; printf("%d,%d\n",a,b); } 46 、以下程序的输出结果是 261 。 #include main() { int a=177; printf("%o\n",a); } 47 、以下程序的输出结果是 16 。 #include main() { int a=0; a+=(a=8); printf("%d\n",a); } 48 、以下程序的输出结果是 20,0 。 #include main() { int x=10,y=20,t=0; if(x==y) t=x; x=y; y=t; printf( “%d,%d n”,x,y); } 49 、以下函数的功能是将两个整数指针所指的存储单元中的内容进行交换。 exchange(int *x, int *y) { int t; t=*y; *y= *x ; *x= t ; } 50 、函数 fun( ) 计算数组中各元素的平均值。 double fun(int a[],int n) { int i;  double sum= 0.0 ,avg; for(i=0; ia[j]) { temp=a[i]; a[i]= a[j] ; a[j]= temp ; } } 52 、字符串的结束标志是 ’\0 ’ 。 53 、表达式 6.0*(1/2) 的值为 0.0 。 54 、C 语言中,唯一的三目运算符是 条件运算符 ,而 &&是 双 目运 算符。 顺序结构: 1 、编写一个 C 程序,由用户输入一个双精度实型数据存储到变量 x 中,实现四 舍五入保留小数点三位,并输出。 2 、编写一个 C 程序,实现由用户输入两个整数 a,b ,交换 a 和 b 的值后,输出。 3 、编写一个 C 程序,由用户输入三角形三条边长 a,b,c ,计算三角形的面积, 并输出 , 如果输入的三条边不能构成三角形的话,则输出 -1
展开阅读全文
相关搜索
收藏 分享(赏)
温馨提示:
道客多多所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

当前位置:首页 > 网络科技 > 计算机原理


本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报