C语言试题及答案.pdf
《C语言试题及答案.pdf》由会员分享,可在线阅读,更多相关《C语言试题及答案.pdf(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 1 大学 C 语言考试题库 第 1 章 C 语言概述习题 1.单项选择题 (1)C 语言是在 B 语言的基础上产生的。A.A B.B C.D D.E (2)在 C 语言中,每个语句必须以 D 结束。A.回车符 B.冒号 C.逗号 D.分号 (3)标识符和关键字间,要用 C 隔开。A.回车符 B.冒号 C.空格 D.分号 (4)用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将(B )。A.生成可执行目标文件 B.生成目标文件 C.输出运行结果 D.自动保存源文件 (5)下列说法中正确的是(B )。A.由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B.由 C 源程
2、序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C.由于 C 程序是高级语言程序,因此输入后即可执行 D.由于 C 程序是高级语言程序,因此它由命令组成 (6)下列说法中正确的是(A )。A.C 语言程序由主函数和 0 个或多个函数组成 B.C 语言程序由主程序和子程序组成 C.C 语言程序由子程序组成 D.C 语言程序由过程组成 (7)下列说法中错误的是(D )。A.主函数可以分为两个部分:主函数说明部分和主函数体 B.主函数可以调用任何非主函数的其他函数 C.任何非主函数可以调用其他任何非主函数 D.程序可以从任何非主函数开始执行 2.填空题 (1)C 语言只有 32 个关
3、键字和 9 种控制语句。(2)C 语言是一种“中级语言”,既具有 高级语言 的特点又具有 低级语言 的特点;既适合于开发系 2 统软件又适合于编写应用程序。(3)每个源程序有且只有一个 主 函数,系统总是从该函数开始执行 C 语言程序。(4)在 C 语言程序中允许出现的字符集是 ASCII 码字符集。(5)C 语言的程序中有特殊含义的英语单词称为 保留字 。(6)C 语言标识符的长度是前 8 位有效。(7)C 语言中,标识符的定义规则是 以字母或下划线为开头 。(8)C 语言程序的注释可以出现在程序中的任何地方,它总是以/*符号作为开始标记,以 */符号作为结束标记。第 2 章 数据类型运算符
4、和表达式习题 1.单项选择题 (1)以下选项中,正确的 C 语言整型常量是 D 。A.32L B.510000 C.-1.00 D.567 (2)以下选项中,D 是不正确的 C 语言字符型常量。A.a B.x41 C.101 D.a (3)在 C 语言中,字符型数据在计算机内存中,以字符的 C 形式存储。A.原码 B.反码 C.ASCII 码 D.BCD 码 (4)字符串的结束标志是 C 。A.0 B.0 C.0 D.0 (5)算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为 B 。A.算术运算、赋值运算、关系运算 B.算术运算、关系运算、赋值运算 C.关系运算、赋值运算、算术运
5、算 D.关系运算、算术运算、赋值运算 (6)逻辑运算符中,运算优先级按从高到低依次为 D 。A.&,!,|B.|,&,!C.&,|,!D.!,&,|(7)表达式!x|a=b 等效于 D 。A.!(x|a)=b)B.!(x|y)=b C.!(x|(a=b)D.(!x)|(a=b)(8)设整型变量 m,n,a,b,c,d 均为 1,执行(m=ab)&(n=cd)后,m,n 的值是 A 。A.0,0 B.0,1 C.1,0 D.1,1 (9)int b=0,x=1;执行语句 if(x+)b=x+1;后,x,b 的值依次为 A 。3 A.2,3 B.2,0 C.3,0 D.3,2 (10)设有语句 i
6、nt a=3;,则执行了语句 a+=a-=a*=a;后,变量 a 的值是 B 。A.3 B.0 C.9 D.-12 (11)在以下一组运算符中,优先级最低的运算符是 D 。A.*B.!=C.+D.=(12)设整型变量 i 值为 2,表达式(+i)+(+i)+(+i)的结果是 B 。A.6 B.12 C.15 D.表达式出错 (13)若已定义 x 和 y 为 double 类型,则表达式 x=1,y=x+3/2 的值是 C 。A.1 B.2 C.2.0 D.2.5 (14)sizeof(double)的结果值是 A 。A.8 B.4 C.2 D.出错 (15)设 a=1,b=2,c=3,d=4,
7、则表达式:ab?a:cd?a:d 的结果为 D 。A.4 B.3 C.2 D.1 (16)设 a 为整型变量,不能正确表达数学关系:10a15 的 C 语言表达式是 A 。A.10a10&a15 D.!(a=15)(17)设 f 是实型变量,下列表达式中不是逗号表达式的是 D 。A.f=3.2,1.0 B.f0,f0 D.f=(3.2,1.0)(18)设 ch 是 char 型变量,其值为 A,则下面表达式的值是 B 。ch=(ch=A&ch D.*(22)PC 机中,n在内存占用的字节数是 A 。A.1 B.2 C.3 D.4 (23)字符串ABC在内存占用的字节数是 B 。4 A.3 B.
8、4 C.6 D.8 (24)要为字符型变量 a 赋初值,下列语句中哪一个是正确的 B 。A.char a=3;B.char a=3;C.char a=%;D.char a=*;(25)下列不正确的转义字符是 C 。A.B.C.074 D.0 2.填空题(1)C 语言中的逻辑值“真”是用 非 0 表示的,逻辑值“假”是用 0 表示的。(2)符号常量的定义方法是#define N 10 。(3)无符号基本整型的数据类型符为 unsigned int ,双精度实型数据类型符为 double ,字符型数据类型符为 char。(4)设 c=w,a=1,b=2,d=-5,则表达式 x+1c,y!=c+2,
9、-a-5*b=d+1,b=a=2 的值分别 为 1 、0 、1 、表达式错误 。(5)设 float x=2.5,y=4.7;int a=7;,表达式 x+a%3*(int)(x+y)%2/4 的值为 2.5 。(6)判断变量 a、b 的值均不为 0 的逻辑表达式为 (a!=0)&(b!=0)。(7)求解赋值表达式 a=(b=10)%(c=6),表达式值、a、b、c 的值依次为 4,4,10,6 。(8)求解逗号表达式 x=a=3,6*a 后,表达式值、x、a 的值依次为 18,3,3 。(9)数学式 a/(b*c)的 C 语言表达式 a/(b*c)。第 3 章 顺序结构程序设计习题 1.选择
10、题(1)printf(f=%3.2f%,3.478);的输出结果是 A 。A.f=3.48%B.f=3.5%C.f=3.48%D.f=347.8%(2)printf(%c,%d,a,a);的输出结果是 A 。A.a,97 B.a 97 C.97,a D.97 a (3)scanf(%c,&a);若要给变量输入大写字母 A,则以下正确的输入是 B 。A.A B.A C.A D.以上都不对 (4)若一个 int 类型的数据占 2 字节,则程序段:int x=-1;printf(%u,%d,x,x);的输出结果是 A 。A.65535,-1 B.-1,65535 C.32767,32768 D.32
11、768,32767 (5)在 TC 中,getchar、putchar、printf、scanf 四个函数,均包含在头文件 B 5 中。A.math.h B.stdio.h C.stbio.h D.stdlib.h (6)复合语句是用 C 括起来的语句组。A.()B.C.D.(7)下列格式符中,哪一个可以用于以八进制形式输出整数 C 。A.%d B.%8d C.%o D.%ld (8)下列格式符中,哪一个可以用于以十六进制形式输出整数 B 。A.%16d B.%8x C.%d16 D.%d (9)a 是 int 类型变量,c 是字符变量,下列输入语句中哪一个是错误的 B 。A.scanf(%d
12、,%c,&a,&c);B.scanf(%d%c,a,c);C.scanf(%d%c,&a,&c);D.scanf(d=%d,c=%c,&a,&c);(10)要使 double x;long a;的数据能正确的输出,输出语句应是 D 。A.printf(%d,%f,a,x);B.printf(%d,%1f,a,x);C.scanf(%1d,%1f,&a,&x);D.printf(%1d,%lf,a,x);2.程序改错题(以下各个程序段均有 5 个错误,请先找出错误的位置,然后再改正)(1)以下程序的功能是,从键盘输入一个字符并鸣笛输出。#include stdio.h mian()/main()
13、char c/char c;getchar(c);/c=getchar();putchar(007);/*鸣笛*/c=putchar();/putchar(c);/(2)以下程序的功能是,输入长方形的两边长(边长可以取整数和实数),输出它的面积和周长。main/main()int a,b,s,l;/double a,b,s,l;scanf(%d,%d,&a,&b);/scanf(%lf,%lf,&a,&b);s=a*b;6 l=a+b;/l=(a+b)*2;printf(l=%f,s=%fn,l);/printf(l=%lf,s=%lfn,l,s);3.写出程序运行结果(1)main()int
14、 a,b;scanf(%2d%*2s%2d,&a,&b);printf(%dn,a+b);运行时输入:12345678/输出:68(2)main()int a=3,b=5,x,y;x=a+1,b+6;y=(a+1,b+6);printf(x=%dny=%dn,x,y);输出:x=4 y=11 第 4 章 选择结构程序设计习题 1.单项选择题 (1)选择结构程序设计的特点是_B_。A.自上向下逐个执行 B.根据判断条件,选择其中一个分支执行 C.反复执行某些程序代码 D.以上都是 (2)假定所有变量均已正确定义,下列程序段运行后 x 的值是_B_。a=b=c=0,x=35;7 if(!a)x-;
15、else if(b);if(c)x=3;else x=4;A.34 B.4 C.35 D.3 (3)下面的程序片段所表示的数学函数关系是_ A_。if(x0)y=1;else y=0;(4)下列各语句序列中,能够且仅输出整型变量 a、b 中最大值的是(C)。A.if(ab)printf(%dn,a);printf(%dn,b);B.printf(%dn,b);if(ab)printf(%dn,a);C.if(ab)printf(%dn,a);else printf(%dn,b);D.if(a0)y=1;else if(x=0)y=0;else y=1;printf(%d,y);A.1 B.5
16、C.0 D.2 (6)程序段 int x=5,y=8,max;max=(xy)?x:y;printf(%d,max);的输出结果是 B 。A.5 B.8 C.3 D.13 (7)程序段 int x=3,a=1;switch(x)case 4:a+;case 3:a+;case 2:a+;case 1:a+;printf(%d,a);的输出结果是 D 。A.1 B.2 C.3 D.4 (8)下列语句应将小写字母转换为大写字母,其中正确的是(B )。A.if(ch=a&ch=a&ch=a&cha&chz)?ch-32:ch;2.阅读程序,写出运行结果 (1)void main()int a=10,
17、b=4,c=3;if(ab)a=b;if(ac)a=c;printf(%d,%d,%dn,a,b,c);输出:10,4,3(2)void main()int x=100,a=10,b=20,ok1=5,ok2=0;if(ab)if(b!=15)if(!ok1)x=1;else if(ok2)x=10;else x=-1;printf(%dn,x);输出:-1;(3)int k,a=1,b=2;k=(a+=b)?2:3;printf(%d,k);输出:3 (4)void main()int s=1,k=0;switch(s)case 1:k+=1;case 2:k+=2;default:k+=3
18、;printf(“%d”,k);输出:6 (5)void main()int s=1,k=0;switch(s)case 1:k+=1;break;case 2:k+=2;break;default:k+=3;printf(“%d”,k);输出:1 9 第 5 章 循环结构程序设计习题 1.单项选择题 (1)for(i=1;i9;i+=1);该循环共执行了 B 次。A.7 B.8 C.9 D.10 (2)int a=2;while(a=0)a-;该循环共执行了 A 次。A.0 B.1 C.2 D.3 (3)执行完循环 for(i=1;i100;i+);后,i 的值为 B 。A.99 B.100
19、 C.101 D.102 (4)以下 for 语句中,书写错误的是 D 。A.for(i=1;i5;i+);B.i=1;for(;i5;i+);C.for(i=1;i5;)i+;D.for(i=1,i5,i+);(5)C 语句,在循环条件初次判断为假,还会执行一次循环体。A.for B.while C.do-while D.以上都不是 (6)循环结构的特点是 C 。A.从上至下,逐个执行 B.根据判断条件,执行其中一个分支 C.满足条件时反复执行循环体 D.以上都对(7)i、j 已定义为 int 类型,则以下程序段中内循环体的执行次数是 A 。for(i=5;i;i-)for(j=0;j4;j
20、+)A.20 B.24 C.25 D.30 (8)C 语言 while 语句中,用于条件的表达式是 D 。A.关系表达式 B.逻辑表达式 C.算术表达式 D.任意表达式 (9)int a=1,x=1;循环语句 while(a10)x+;a+;的循环执行 D 。A.无限次 B.不确定次 C.10 次 D.9 次 (10)下列程序段执行后 s 的值为 A 。10 int i=1,s=0;while(i+)if(!(i%3)break;else s+=i;A.2 B.3 C.6 D.以上均不是 2.填空题 (1)三种循环语句是 等价 价的。(2)当循环体中的 switch 语句内有 break 语句
21、,则只跳出 swicth 语句。同样,当 switch 语句中有循环语句,内有 break 语句,则只跳出 循环 语句。(3)循环体执行遇到 continue 语句时 跳过本次循环进入下次循环 。(4)下列程序的功能是输入一个正整数,判断是否是素数,若为素数输出 1,否则输出 0,请为程序填空。void main()int i,x,y=1;scanf(%d,&x);for(i=2;i=x/2;i+)if(x%i=0 )y=0;break;printf(%dn,y);(5)输入 N 个实数,输出其中的最大值、最小值。#include void main()int n,i;float no1,nm
22、ax,nmin;scanf(%d,&n);scanf(%f,&no1);nmax=no1;nmin=no1;for(i=2;inmax)nmax=no1;11 if(no1nmin)nmin=no1;printf(MAX=%f MIN=%fn,nmax,nmin);(6)输入若干个字符,分别统计数字字符的个数、英文字母的个数,当输入换行符时输出统计结果,运行结束。#include void main()char ch;int s1=0,s2=0;while(ch=getchar()!=n)if(ch=0&ch=a&ch=A|ch0;y-)if(y%3=0)printf(%d,-y);conti
23、nue;输出:852(2)main()int k,n,m;n=10;m=1;k=1;while(k+0);输出:i=3 i=1 i=-1 (4)#include void main()int k=0;char c=A;do switch(c+)case A:k+;break;case B:k-;case C:k+=2;break;case D:k=k%2;break;case E:k=k*10;break;default:k=k/3;k+;while(cG);printf(k=%dn,k);输出:8(5)输入数据:2,4#include void main()int s=1,t=1,a,n;i
24、nt i;scanf(%d,%d,&a,&n);for(i=1;in;i+)t=t*10+1;s=s+t;s*=a;printf(SUM=%dn,s);输出:2468 4.程序改错(1)以下程序是显示200,300所有能被 7 整除的数,每行显示 5 个数,此程序有 5 处错。main()int i,n=0;/*n 用来记录每行已打印数的个数*/while(i300)/while(i=200)/i+;13 if(i%7=0)/if(i%7!=0)break;/continue;printf(%5d,i);n=n+1;if(n=5)/*满 5 个换行*/if(n=5)printf(n);n=0;
25、(2)以下程序是求 1!+2!+3!+4!+5!+6!+7!的值,其中有 3 处错误。main()int i,s,t=0;/long s=0,t=1;/int i;for(i=1;i=7;i+)s=0;/去掉该语句 t=t*i;s=s+t;printf(sum=dn,s);/printf(“sum=%ld”,s);第 6 章 函数习题 1.单项选择题 (1)C 语言总是从 A 函数开始执行。A.main B.处于最前的 C.处于最后的 D.随机选一个 (2)函数在定义时,省略函数类型说明符,则该函数值的类型为 A 。14 A.int B.float C.long D.double (2)以下
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 试题 答案
限制150内