志在指尖
用双手敲打未来

c语言程序设计题库(及详解答案)

c语言程序设计

第一部分(填空题):
1.依照C言语规则的用户标识符命名规则,不能出现在标识符中的是()。
A.大写字母B.连接符C.数字字符D.下划线
答案:B
2.下面关于核算机正确的是()。
A.核算机由硬件体系和软件体系两部分构成
B.只需有硬件体系,核算机就能工作
C.核算机只能处理文本信息
D.核算机只能处理核算问题
答案:A
3.()是c言语供给的合法的数据类型关键字。
A.IntB.longC.CharD.integer
答案:B
4.面向进程的高档言语包含()。
A.C,JAVAB.C,BASICC.C++.NET,ASPD.C,VB
答案:B
5.软件按功用能够分为:应用软件、体系软件和支撑软件(或工具软件)。下面归于应用软件的是()。
A.编译程序B.操作体系C.教务管理体系D.汇编程序
答案:C
6.以下选项中关于C言语常量的叙说过错的是()。
A.所谓常量,是指在程序运转进程中,其值不能被改动的量
B.常量分为整型常量、实型常量、字符常量和字符串常量
C.常量可分为数值型常量和非数值型常量
D.经常被运用的变量能够界说成常量
答案:D
7.下面描绘中正确的是()。
A.C言语供给了专门的输入/输出句子
B.C言语调用输入/输出函数时需求运用include命令包含头文件
C.C言语能够直接运用输入/输出函数
D.输入/输出函数地点的头文件是stdlib.h
答案:B
8.假定有char型变量c1,c2,履行下面程序段:
c1=gatchar();
c2=gatchar();
printf(“c1=%c,c2=%c\n”,c1,c2);
假如c1和c2的值分别为字符a和b,则从键盘正确的输入方法是()。
A.ab<回车>B.a<回车>b<回车>
B.C.a<空格>b<回车>D.ab<回车>
答案:A
9.下面描绘中正确的是()。
A.printf()函数的输出列表项只允许是变量
B.printf()函数的输出列表项能够是常量、变量以及表达式
C.printf()函数输出列表项也能够是另一个printf()函数
D.printf()函数的输出列表项之间用空格分隔
答案:B
10.假定有:inta,b;scanf(“%d,%d”,&a,&b);
为了得到a和b分别为10和20,从键盘正确输入数据的是()。
A.10<空格>20<回车>B.10<回车>20<回车>
C.10,20<回车>D.10,20,<回车>
答案:C
11.下面说法正确的是()。
A.表达式核算时要考虑运算符的优先级和结合性
B.表达式核算需求考虑运算符的优先级
C.表达式核算时需求考虑运算符的结合性
D.括号()能够改动运算符的优先级
答案:A
12.下面说法正确的是()。
A.负数参与“/”和“%”运算时,其成果与C89或C99的标准有关
B.C言语的“/”和“%”运算能够写成5/0或5%0的形式
C.赋值运算要求他的左操作数能够是变量、常量或另一个表达式
D.表达式(x=a>b)&&(y=c>d)是过错的写法
答案:A
13.假定有下面程序段:inta;floatb;b=a=4.5;
下面过错的描绘是()。
A.变量a的值是4B.变量b的是4.0
C.赋值表达式a=4.5的成果值是4D.变量b的值是4.5
答案:D
14.假定a,b,c,x,y均为int型,下面说法正确的是()。
A.表达式“a+=2”等价于表达式“a=a+2”
B.表达式“a*=b+c”等价于表达式“a=a*b+c”
C.表达式“y=x++”等价于表达式“x++,y=x”
D.表达式“y=x++”等价于表达式“y=x,x++”
答案:D
15.逻辑运算符两侧运算目标的数据()。
A.只能是0或1B.只能是0或非0正数
C.只能是整型或字符型数据D.能够是任何类型的数据
答案:D
16.sizeof(float)是()。
A.一个双精度型表达式B.一个整型表达式
C.一个函数调用D.一个不合法的表达式
答案:B
17.结构化程序的完成由()组成程序逻辑。
A.次序结构B.分支结构
C.循环结构D.次序结构、分支结构和循环结构
答案:D
18.假定变量a为整型量,句子if(a!=0);和句子if(a);相比较,正确答案()。
A.两者效果不同B.两者效果等价
C.两者效果相反D.if(a)语法错
答案:B
19.为了防止在嵌套的条件句子if-else中发生二义性,C言语规则:else子句总是与()。
A.缩排方位相同的if配对
B.其之前最近且不带else的if配对
C.其之前最近的if配对
D.第一个if配对
答案:B
20.阅读下面程序:该程序()。
#include”stdio.h”
main()
{
intx=-10,y=5,z=0;
if(x=y+z)
printf(“***\n”);
else
printf(“$$$\n”);
}
A.有语法错不能通过编译
B.输出***
C.能够通过编译但不能通过连接
D.输出$$$
答案:B
21.下面说法过错的是()。
A.当条件满意时重复履行某一段程序(代码)便是循环
B.循环体只有一条句子时,能够不写成复合句子形式
C.while句子、for句子能够相互转换
D.do…while句子能够完成前判别结构
答案:D
22.下面说法过错的是()。
A.break句子可退出循环体而履行该循环句子后边的句子
B.break句子能够出现在switch句子和循环句子中
C.continue句子只能出现在循环结构中
D.goto句子即能够从函数体跳出,也能够跳入函数体中
答案:D
23.以下不是无限循环的是()。
A.for(y=6,x=1;x
C.while(-5)x++;D.for(i=20;;i–)sum+=i;
答案:A
24.对以下阐明句子的正确理解是()。
inta[10]={6,7,8,9,10};
A.将5个初值顺次赋给a[1]至a[5]
B.B.将5个初值顺次赋给a[0]至a[4]
C.将5个初值顺次赋给a[6]至a[10]
D.由于数组与初值的个数不相同,所以此句子不正确
答案:B
25.判别字符串a和b是否相等,应当运用()。
A.a==bB.a=bC.strcpy(a,b)D.strcmp(a,b)
答案:D
26.在c言语的函数调用进程中,假如函数funA调用了函数funB,函数funB有调用了函数funA,则()。
A.称为函数的直接递归B.称为函数的间接递归
C.称为函数的递归界说D.c言语不允许这样的递归形式
答案:B
27.若有阐明:inta=2,*p=&a,*q=p;,则以下非法的赋值句子是()。
A.p=q;B.*p=*q;C.a=*q;D.q=a;
答案:D
27.若有界说:inta[2][3];,则以下对a数组元素地址的正确表示为()。
A.*(a+1)B.*(a[1]+2)
C.a[1]+3D.a[0][0]
答案:A
29.以下对C言语中共用体类型数据的叙说正确的是()。
A.能够对共用体变量名直接赋值
B.共用体类型界说中不能出现结构体类型的成员
C.一个共用体变量中不能一起寄存其所有成员
D.一个共用体变量中能够一起寄存其所有成员
答案:A
30.若用fopen翻开一个新的二进制文件,要求文件既能读又能写,则应选用的文件方法字符串是()。
A.”wb+”B.”r+”C.”rb+”D.”ab+”
答案:A
第二部分(编程题):
1.判别一个4位数是否为回文数(正读反读都相同的数)?
答案:
#include
intmain()
{inti;
inta,b,c,d;
printf(“….\n”);
for(i=1000;i<=9999;i++)
{a=i/1000;
b=i%10;
c=(i/100)%10;
d=(i%100)/10;
if(a==b&&c==d)
printf(“%6d”,i);}
}
2.输入正整数n,输出n行n列的空心四边形图画。以下是n=4的图画
****
**
**
****
答:
#include
intmain()
{
inti,j,n;
printf(“请输入n”);
scanf(“%d”,&n);
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
if(i==1||j==1||i==n||j==n)
printf(“*”);
else
printf(“”);
printf(“\n”);
}
return0;
}
3.有一个分数序列:2/1,3/2,5/3,8/5,13/8,…..编程求此序列的前20项之和。
答:
#include
intmain()
{
inta,b,c,i;
doublesum=0;
a=2,b=1;
for(i=0;i<20;i++){
sum+=1.0*a/b;
c=b;
b=a;
a=a+c;
}
printf(“%.2lf\n”,sum);
return0;
}
4.从键盘上输入一个百分制成果S,按下列准则输出其等级:若成果大于或等于90,则等级为A;若成果大于等于80,小于90,则等级为B;若成果大于等于70,小于80,则等级为C;若成果大于等于60,小于70,则等级为D;若成果小于60,则等级为E。
答:
#include
voidmain()
{
intdata;
chargrade;
printf(“Pleaseenterthescore:”);
scanf(“%d”,&data);
switch(data/10){
case10:
case9:grade=’A’;break;
case8:grade=’B’;break;
case7:grade=’C’;break;
case6:grade=’D’;break;
default:grade=’E’;
}
printf(“thegradeis%c”,grade);
}
第三部分(简答题):
1.阐明算法能够采用哪几种操控结构组合。
答:算法的操控结构给出了算法的根本结构,不仅决议了算法中各操作的履行次序,也直接反映了算法的设计是否符合结构化准则。一个算法一般能够用次序、挑选、循环三种根本操控结构,通过次序或嵌套组合而成。
2.c言语程序的根本单位是什么?它的结构又怎么?
答:函数是c言语程序的根本模块单元。
任何函数(包含主函数main())都是由函数阐明和函数体两部分组成。其一般结构如下:[函数类型]函数名(函数参数表)
{阐明句子部分;
履行句子部分;
}
3.分析下面程序的履行进程,给出输出成果。
main()
{
intx=2,y=3,z=4,a=0;
a=x
printf(“%d”,a);
}
答:3。a=x
4.分析下面程序的履行进程,给出输入55时的输出成果。
main()
{inta;
intb=33;
scanf(“%d”,&a);
if(a>50)printf(“%d”,b);
if(a>40)printf(“%d”,a);
if(a>30)printf(“%d”,a);
}
答:335555
a=55,a大于50于是履行printf(“%d”,b),输出b的值,b的值为33,;
接着a大于40,输出a的值,a的值为55;
最终a大于30,输出a的值,a的值为55;
故输出为335555
5.分析下面程序的履行进程,若键盘输入为5,给出输出成果。
main()
{intx=1,a=0,b=0;
switch(x){
case0:b++;
case1:a++;
case2:a++;
b++;
}
printf(“a=%d,b=%d”,a,b);
}
答:a=2,b=1
6.分析下面程序的履行进程,给出成果阐明break和continue的差异。
main()
{inta=1,b;
for(b=l;b<10;b++)
{if(b<7)
{a=1;
continue;
}
if(b==8)a++;
if(b>8)break;
a++;
}
printf(“%d\n”,a);
}
答:4
7.分析下面程序的履行进程,给出输出成果。
main()
{inta=10;
if(a++>10)
print(“%d\n”,++a);
else
print(“%d\n”,a–);
}
答:10
8.分析下面程序的履行进程,给出输出成果。
main()
{inti=0,s=0;
do{
if(i%2)
{i++;continue;}
i++;
s+=i
}while(i<7)
print(“%d\n”,s);
}
;
答:16c

c语言程序设计题库及详解答案

题库练习题
1.下列叙说中正确的是()。
A.所谓算法便是核算办法
B.程序可以作为算法的一种描绘办法
C.算法规划只需考虑得到核算成果
D.算法规划可以忽略算法的运算时刻
【答案】B
【考点】算法;
【解析】A项过错,算法并不等同于核算办法,是指对解题方案的精确而完好的描绘;C项过错,算法规划需求考虑可行性、确定性、有穷性与满足的情报;D项过错,算法规划有穷性要求操作步骤有限且必须在有限时刻内完结,耗费太长时刻得到的正确成果是没有意义的。B项正确,程序可以作为算法的一种描绘办法,算法在实现时需求用具体的程序规划语言描绘。答案挑选B选项。
2.下列叙说中正确的是()
A.算法便是程序
B.规划算法时只需求考虑数据结构的规划
C.规划算法时只需求考虑成果的可靠性
D.以上三种说法都不对
【答案】D
【考点】算法;程序;
【解析】A项过错,算法是指解题方案的精确而完好的描绘,算法不等于程序,也不等于核算办法;BC两项过错,规划算法时,不只要考虑对数据目标的运算和操作,还要考虑算法的操控结构。答案挑选D选项。
3.下列叙说中正确的是()
A.算法便是程序
B.规划算法时只需求考虑数据结构的规划
C.规划算法时只需求考虑成果的可靠性
D.规划算法时需求一起考虑时刻复杂度和空间复杂度
【答案】D
【解析】A项过错,算法是指解题方案的精确而完好的描绘,算法不等于程序,也不等于核算办法;BC两项过错,规划算法时,不只要考虑对数据目标的运算和操作,还要考虑算法的操控结构。算法的时刻复杂度,是指履行算法所需求的核算工作量;算法的空间复杂度,是指履行这个算法所需求的内存空间。答案挑选D选项。
4.算法的有穷性是指()。
A.算法程序的运转时刻是有限的
B.算法程序所处理的数据量是有限的
C.算法程序的长度是有限的
D.算法只能被有限的用户使用
【答案】A
【解析】算法规划有穷性要求操作步骤有限且必须在有限时刻内完结,耗费太长时刻得到的正确成果是没有意义的。答案挑选A选项。
5.算法应当具有的特性不包含()。
A.可行性
B.有穷性
C.确定性
D.漂亮性
【答案】D
【解析】一个算法应该具有以下五个重要的特征:有穷性,确定性,输入(零个或多个),输出(至少一个)以及可行性,不包含漂亮性。答案挑选D选项。
6.信息隐蔽的概念与下述哪一种概念直接相关()。
A.软件结构定义
B.模块独立性
C.模块类型划分
D.模块耦合度
【答案】B
【解析】信息隐蔽是指,所规划的模块使得其所包含的信息(进程和数据)对于不需求这些信息的模块是不能拜访的。模块独立性的概念是抽象、模块化、信息隐蔽和局部化的直接成果。使用信息隐蔽,可以保证每一个模块的独立性。答案挑选B选项。
7.下列各选项中,不属于序文性注释的是()。
A.程序标题
B.程序规划者
C首要算法
D.数据状况
【答案】D
【解析】注释一般可分为:①序文性注释,常位于程序开头部分,用于描绘程序标题、程序功能阐明、首要算法、接口阐明、程序位置、开发简历、程序规划者、复审者、复审日期及修改日期等;②功能性注释,一般嵌在源程序体之中,用于描绘其后的句子或程序的首要功能。答案挑选D选项。
8.对树立杰出的程序规划风格,下面描绘正确的是()。
A.程序应简略、明晰、可读性好
B.符号名的命名只要契合语法
C.充分考虑程序的履行功率
D.程序的注释可有可无
【答案】A
【解析】程序不只仅要可以正常运转,还要便于调试和保护,所以程序句子结构应该简略直接,具有杰出的可读性,树立杰出的程序规划风格。答案挑选A选项。
9.下列叙说中,不契合杰出程序规划风格要求的是()。
A.程序的功率榜首,明晰第二
B.程序的可读性好
C.程序中要有必要的注释
D.输入数据前要有提示信息
【答案】A
【解析】“明晰榜首,功率第二”是当今主导的程序规划风格。对程序的要求不只是可以运转正常,还要便于调试和保护,所以程序要具有杰出的可读性,句子结构应该简略直接,这有利于程序的开发与保护。答案挑选A选项。
10.结构化程序所要求的基本结构不包含()。
A.次序结构
B.GOTO跳转
C,挑选(分支)结构
D.重复(循环)结构
【答案】B
【解析】结构化程序以模块化规划为中心,使用次序、挑选和循环三种基本操控结构就可以实现任何算法功能。结构化程序规划的思想包含自顶向下、逐步求精、模块化、限制使用GOTO句子。答案挑选B选项。

未经允许不得转载:IT技术网站 » c语言程序设计题库(及详解答案)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载