C语言试题及答案.doc
更新时间:2023-04-10 23:58:01 阅读量: 实用文档 文档下载
第1章C语言概述习题1.单项选择题
(1) C 语言是在 B 语言的基础上产生的。
A. 回车符
B. 冒号
C. 逗号
D. 分号
(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 源程序是字符流组成,因此可以作为文本文件在任何文
本编辑的软件中输入
C.由于 C 程序是高级语言程序,因此输入后即可执行
D.由于 C 程序是高级语言程序,因此它由命令组成
(6)下列说法中正确的是 ( A ) 。
A. C语言程序由主函数和0个或多个函数组成
B. C 语言程序由主程序和子程序组成
C. C语言程序由子程序组成
D. C语言程序由过程组成
(7)下列说法中错误的是 ( D ) 。
A.主函数可以分为两个部分:主函数说明部分和主函数体
B.主函数可以调用任何非主函数的其他函数
C.任何非主函数可以调用其他任何非主函数
D.程序可以从任何非主函数开始执行
2.填空题
(1) C 语言只有 37 个关键字和 9 种控制语句。
(2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应
用程序。
(3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行 C 语言程序。
(4) 在 C 语言程序中允许出现的字符集是ASCII 码字符集。
(5) C 语言的程序中有特殊含义的英语单词称为保留字。
(6) C 语言标识符的长度是前8 位有效。
(7) C 语言中,标识符的定义规则是以字母或下划线为开头。
(8) C 语言程序的注释可以出现在程序中的任何地方,它总是以
/* 符号作为开始标记,以*/符号作为结束标记。
第 2 章数据类型运算符和表达式习题
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. 关系运算、赋值运算、算术运算
D.关系运算、算术运算、赋值运算
(6)
A. && 逻辑运算符中,运算优先级按从高到低依次
为,! , || B. || ,&&, ! C. && ,|| , !
D
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=a>b)&&(n=c>d)
后 , 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 。
A.2 ,3
B.2 ,0
C.3 ,0
D.3 ,2
(10) 设有语句 int 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) size of (double) 的结果值是A。(表是长度)字节
A. 8
B. 4
C.2
D. 出错
(15) 设 a=1, b=2, c=3,d=4,则表达式: a
的结果为D。
A.4
B.3
C.2
D.1
(16)设 a 为整型变量,不能正确表达数学关系: 10
A. 10
B.a= =11|| a= =12 || a= =13 || a= =14
C. a>10 && a<15
D. !(a<=10) && !(a>=15)
(17)设 f 是实型变量,下列表达式中不是逗号表达式的是
D。
A. f= 3.2, 1.0
B.f>0, f<10
C.f=2.0, f>0
D.
f=(3.2, 1.0)
(18) 设 ch 是 char型变量,其值为'A',则下面表达式的值是
B 。
ch=(ch>='A'&& ch<='Z')? (ch+32):ch
A. A
B. a
C. Z
D. Z
(19) 以下运算符中,结合性与其他运算符不同的是 A 。
A. ++
B. %
C. /
D. +
(20) 以下用户标识符中,合法的是 B 。
A. int
B. nit
C. 123
D. a+b
(21) C 语言中,要求运算对象只能为整数的运算符是% 。
A. %
B. /
C. >
D. *
(22) PC 机中, '\n' 在内存占用的字节数是 A 。
A. 1
B. 2
C. 3
D. 4
(23) 字符串 "ABC" 在内存占用的字节数是B。
A. 3
B. 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'+1>c, 'y'!=c+2,
-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.选择题
(1)printf("f=%3.2f%%",3.478);的输出结果是
A. f=3.48%
B. f=3.5%
C. f=3.48% %
D. f=347.8%
(2)printf("%c,%d",'a', 'a');的输出结果是
A. a,97
B. a 97
C. 97,a
D. 97 a A。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. 32768,32767
(5)在 TC 中, getchar 、putchar 、printf、scanf四个函数,均包含在头文件 B
中。
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,%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()
{ 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;
l= a+b; //l=(a+b)*2;
",l,s); printf("l=%f,s=%f\n",l); //printf("l=%lf,s=%lf\n
}
3.写出程序运行结果
(1)
main()
{
int a,b;
scanf("%2d%*2s%2d",&a,&b);
printf("%d\n",a+b);
}
运行时输入:输出:68
(2)
main()
{
int a=3,b=5,x,y;
x=a+1,b+6;
y=(a+1,b+6);
printf("x=%d\ny=%d\n",x,y);
}
输出: x=4
y=11
第 4 章选择结构程序设计习题
1.单项选择题
(1)选择结构程序设计的特点是 ___B____。
A.自上向下逐个执行
B.根据判断条件,选择其中一个分支执行
C. 反复执行某些程序代码
D.以上都是
(2)假定所有变量均已正确定义,下列程序段运行后
x 的值是__B_。
a=b=c=0, x=35;
if(!a) x--; else if(b); if(c) x=3; else x=4;
A.34
B.4
C.35
D.3
(3)下面的程序片段所表示的数学函数关系是_ A____ 。
if(x<0) y= -1;
else if(x>0) y=1;
else y=0;
(4)下列各语句序列中,能够且仅输出整型变量a、 b 中最大值的是(C)。
(5)以下程序段的输出结果是 A
int x=5;
if(x>0) y=1;
else if(x==0) y=0;
else y= 1;
printf("%d",y);
A. 1
B. 5
C. 0
D. 2
(6) 程序段intx=5,y=8,max; max=(x>y)?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<='z') ch=ch-32;
B.if(ch>='a'&&ch<='z')ch=ch-32;
C.ch=(ch>='a'&&ch<='z')?ch-32: ’’ ;
D.ch=(ch>'a'&&ch<'z')?ch-32:ch;
2.阅读程序,写出运行结果
(1)
void main ()
{
int a=10, b=4, c=3; if(a
输出: 10, 4, 3 (2)
void main ( ) {
if(a b, c) ; if(a if(!ok1) x=1; printf("%d\n", x); else if(ok2) x=10; } else x=-1; 输出:-1 ; (3) printf( “%d” ,k); int k,a=1,b=2; } 输出:6 k=(a++==b) ? 2:3; printf("%d",k); 输出: 3 (4) void main() { (5) void main() { int s=1,k=0; switch (s) { int s=1,k=0; switch (s) { case 1: k+=1;break; case 2: k+=2;break; default: k+=3; case 1: k+=1; case 2: k+=2; } printf( “%d” ,k); default: k+=3; } } 输出:1 第 5 章循环结构程序设计习题 1.单项选择题 (1) for(i=1;i<9;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;i<100;i++); 后, i 的值为B 。 A. 99 B. 100 C. 101 D. 102 (4) 以下 for 语句中,书写错误的是 D 。 A. for(i=1;i<5;i++); B. i=1;for(;i<5;i++); C. for(i=1;i<5;) i++; D. for(i=1,i<5,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;j<4;j++){ } A. 20 B. 24 C. 25 D. 30 (8) C 语言while 语句中,用于条件的表达式是 D 。 A.关系表达式 B. 逻辑表达式 C. 算术表达式 D. 任意表达式 (9) int a=1, x=1;循环语句while(a<10) x++; a++;的循环执行D。 A. 无限次 B.不确定次 C. 10次 D. 9 次 (10) 下列程序段执行后s的值为A。 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 语句,则只跳出 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("%d\n",y); } (5)输入 N 个实数,输出其中的最大值、最小值。 #include void main( ) { int n,i; float no1,nmax,nmin; scanf("%d",&n); scanf("%f",&no1); nmax=no1; nmin=no1 ; for(i=2;i<=n;i++) { scanf("%f", &no1 ); if(no1>nmax) nmax=no1; if(no1 } printf("MAX=%f MIN=%f\n",nmax,nmin); } (6)输入若干个字符,分别统计数字字符的个数、英文字母的个数,当输入换行符时输出统计结果,运行结束。 #include void main( ) { char ch; int s1=0,s2=0 ; while((ch=getchar() )!='\n') { if(ch>='0'&&ch<='9') s1++; if(ch>='a'&&ch<='z' || ch>=’A’||ch<= ’Z’) s2++; } } 3.阅读下列程序,写出程序运行的输出结果 (1) n=10;m=1;k=1; void main( ) while(k++<=n) { int y=9; m*=2; for( ;y>0; y--) printf("%d\n",m); if(y%3==0) } { printf("%d", --y); 输出: 1024 continue;} (3) } void main ( ) 输出: 852 { int i=5; (2)main() do { {switch (i%2) int k,n,m; {case 4: i--; break; break; case 6: i--; case 'D': k=k%2; continue; break; } case 'E': k=k*10; i-- ; i-- ; break; printf("i=%d ", default: k=k/3; i); } while(i>0); } 输出: i=3 i=1 i=-1 } k++; }while(c<'G'); printf("k=%d\n", k); (4) #include void main( ) 输出:8 { (5) 输入数据:2,4 int k=0; char c='A'; #include do void main( ) { { switch(c++) int s=1,t=1,a,n; { int i ; case 'A': k++; scanf("%d , %d",&a,&n); break; for(i=1;i case 'C': k+=2; } s*=a; } printf("SUM=%d\n",s); 输出:2468 4.程序改错 (1)以下程序是显示[200 , 300] 所有能被7 整除的数,每行显示 5 个数,此程序有 5 处错。 main() { int i,n=0; /*n用来记录每行已打印数的个数*/ while(i<300) //while((i <= 300)&&(i >= 200)) { //i++; 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; } } } (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=d\n",s); //printf( “ sum=%ld”,s); } 第 6 章函数习题 1.单项选择题 (1)C 语言总是从 A 函数开始执行。 A. main B. 处于最前的 C. 处于最后的 D. 随机选一个 (2) 函数在定义时,省略函数类型说明符,则该函数值的类型为A。 A. int B. float C. long D. double (2)以下 B函数,真正地没有返回值。 A. int a(){int a=2;return (a);} B.void b(){printf("c");} C. int a(){int a=2;return a;} D.以上都是 (3) 在 C 语言中,有关函数的说法,以下正确的是C。 A.函数可嵌套定义,也可嵌套调用 B. 函数可嵌套定义,但不可嵌套调用 C.函数不可嵌套定义,但可嵌套调用 D.函数不可嵌套定义,也不可嵌套调用 (4) 以下函数调用语句中,含有实参的个数为 B 。7 fun((2,3),(4,5+6,7)); A.1 B.2 C. 5 D. 6 (5) 函数调用可以在 D 。 A. 函数表达式中 B. 函数语句中 C.函数参数中 D. 以上都是 (6) 被调函数返回给主调函数的值称为 C 。 A. 形参 B. 实参 C. 返回值 D.参数 (7) D ,可以不进行函数类型说明。 A. 被调函数的返回值是整型或字符型时 B.被调函数的定义在主调函数定义之前时 C.在所有函数定义前,已在函数外预先说明了被调函数类型 D. 以上都是 (8) 被调函数通过 D 语句,将值返回给主调函数。 A. if B. for C. while D. return (9) 被调函数调用结束后,返回到B。 A. 主调函数中该被调函数调用语句处
正在阅读:
C语言试题及答案.doc04-10
--县“互助共建”活动开展情况汇报01-10
小学英语人教版一年级下册Unit 2 Room《lesson 3》省级名师优质课教案比赛获奖教案示范课教案公开课教案05-11
态度,是教师专业成长的关键06-11
高一数学必修三算法初步(知识总结++高考真题讲练).资料03-08
美丽的草原作文07-14
《爱,从来不卑微》01-24
口腔组织病理学(A1型题4)12-01
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 试题
- 答案
- 语言
- doc
- 2013年经济师《中级经济基础》串讲讲义-第26章
- 2015广西南宁兴宁区城市管理综合行政执法队招聘城市管理协管员公
- 《项脊轩志》导学案(教师版)
- 【新版】鲁教版数学八年级上册《因式分解》导学案【名校精品】
- 2022秋高中历史专题5走向世界的资本主义市场三“蒸汽”的力量学
- 高三语文第3讲识记现代汉字的字形复习教案
- 杰米熊童鞋VIP会员管理办法
- 科普教育社会实践活动实施方案
- 造价工程师《技术与计量(土建)》历年真题精选及详细解析0927-10
- 2013-2022年中国其他机制纸行业市场全景调研报告(权威版)
- 2022年云南民族大学法学院834法社会学和西方法律思想史考研题库
- 宝宝快长牙了要注意些什么呢? 其实口腔卫生要注意,其他没什么
- 安徽省“皖南八校”2022届高三第三次联考
- 河南省陕州中学2015届高三下学期第一次月考理科综合试题
- 最新人教版四年级数学下册第三次月考试卷及答案最新(二篇)
- NetVault-Backup-Installation-Guide_100
- 2012年清华大学金融专业硕士学位报名
- 2022年湖南师范大学化学化工学院752化学教育基本理论之当代教育
- 招标序号丽建招A2009
- 2022幼儿园大班游戏活动计划【精品】