![湖北经济学院C语言程序设计题库(八卷)及答案_第1页](http://file4.renrendoc.com/view9/M02/28/1F/wKhkGWdg4xuAL4WzAAD0lgUgTT4813.jpg)
![湖北经济学院C语言程序设计题库(八卷)及答案_第2页](http://file4.renrendoc.com/view9/M02/28/1F/wKhkGWdg4xuAL4WzAAD0lgUgTT48132.jpg)
![湖北经济学院C语言程序设计题库(八卷)及答案_第3页](http://file4.renrendoc.com/view9/M02/28/1F/wKhkGWdg4xuAL4WzAAD0lgUgTT48133.jpg)
![湖北经济学院C语言程序设计题库(八卷)及答案_第4页](http://file4.renrendoc.com/view9/M02/28/1F/wKhkGWdg4xuAL4WzAAD0lgUgTT48134.jpg)
![湖北经济学院C语言程序设计题库(八卷)及答案_第5页](http://file4.renrendoc.com/view9/M02/28/1F/wKhkGWdg4xuAL4WzAAD0lgUgTT48135.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
湖北经济学院C语言程序设计题库(一)
总分:150分考试时间:120分钟
注意事项:
>题目包括五大部分,单项选择题,判断题,填空题,程序分析题,编程题,请按要求在
规定时间内作答。
>考试中途不能无端离场,否则视为放弃。考试过程中如遇问题请及时向监考老师反馈。
一、单项选择题(每小题2分,共40分)
L程序必须在有限的步骤、有限的时间内执行完毕,指的是算法的()特点
A、确定性
B、有穷性
C、可行性
D、输入
【答案】B
2、已知year为整型变量,不能使表达式
(year%4==0&&year%100!=o)||year%400==0的值为"真"的数据>_____。
A、1990
B、1992
C、1996
D、2000
【答案】A
3、以下不正确的语句(设有intp,q)是________
A、p*=3;
B、p/二q;
C、p+=3;
D、p&&=q;
【答案】D
4、设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、
m=2、n=3则逻辑表达式(m二a>b)&&(n=c>d)运算后,n的值为,
A、0
B、1
C、2
D、3
【答案】D
5、有以下程序:
#include<stdio.h>
main(){
intc;
while((c=getchar())!=#\n')
switch(c-'3'){
case0:casel:putchar(c+4);
case2:putchar(c+4);
break;
case3:putchar(c+3);
case4:putchar(c+3);
break;
)
printf("\n");
)
从第一列开始输入数据(<cr>代表f回车符):3845<cr>,则程序输出结果为
A、77889
B、77868
C、776810
D、77886610
【答案】A
【解析】题中while循环的条件是:当从键盘读入的字符不是‘\N时,执行
while循环。输入第一个字符3时:执行case0,什么也不输出;case1,输
出7;case2,输出7;遇到break语句,跳出switch语句。输入第二个字符
8时:C-'3'=5,不执行任何语句。输入第三个字符4时:c-'3'=1,执
行case1。输出8;case2,输出8;遇到break语句,跳出switch语句。输
入第四个字符5时:C-'3'=2,执行case2,输出9;遇到break语句,跳
出switch语句。
6、下列选项不属于函数的组成部分是?
A、返回值类型
B、函数名
C、参数列表
D、局部变量
【答案】D
7、有以下程序:
main()
(
chara,b,c,d;
scanf("%c,%G%d,%d",&a,&b,&c,&d);
M
printf(%c/%c,%c,%c\n",afb,c,d);
若运行时从键盘上输入65,65,66<回车>,则输出结果是。
A、6,5,A,B
B、6,5,65,66
C、656,5
D、656,6
【答案】A
【解析】char型数据类型以%d的形式输入时,输入的是ASCH值。65是字符
A的ASCII码值,66是字符B的ASCII值。
8、下面程序的输出结果是____o
main()
inta[3][4]={l,3,5,7,9,11,13,15,17,19,21,23);
int(*p)[4]=aJjzk=0;
for(i=0;i<3;i++)for(j=0;j<2;j++)k=p[i][j];
printf("%d\n",k);
)
A、17
B、18
C、19
D、23
【答案】C
【解析】p是指向长度为4的一维数组的指针变量,可看作是二维数组a的行
指针,可以像使用数组名一样通过p带数组下标的形式来引用数组中元素,变
量k最后是元素的值。
9、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系
的表达式为
A、a<>0
B、a
C、!a
D、a=0
【答案】B
10、以下正确的字符串常量是______O
A、"\\\"
Bs'abc'
C、OlympicGames
D
【答案】D
IL以下叙述中正确的是______o
A、一条语句只能定义一个数组
B、每个数组包含一组具有同一类型的变量,这些变量在内存中占有连续的
存储单元
C、数组说明符的一对方括号中只能使用整型常量,而不能使用表达式
D、在引用数组元素时,下标表达式可以使用浮点数
【答案】B
【解析】A选项中,一条语句只能定义一个数组是不准确的,可以通过一条语句
定义多个数组;C选项中,数组说明符的一对方括号中可以是整型常量,可以是整
型常量表达式;D选项中,在引用数组元素时,下标表达式必须是整型的。因此B
选项正确。
12、有以下函数
intfun(char*s){
char*t=s;
while(*t++);
return(t-s)
)
该函数的功能是_____。
A、比较两个字符串的大小
B、计算s所指字符串占用内存字节个数
C、计算s所指字符串的长度
D、将s所指字符串复制到字符串t中
【答案】C
13、a,b均为整数,且b!=0,则表达式a/b*b+a%b的值是______。
A、a
B、b
C、a被b除的整数部分
D、a被b除的商的整数部分
【答案】A
14、以下叙述不正确的是______。
A、一个C源程序可由一个或多个函数组成
B、一个C源程序必须包含一个main函数
C、C程序的基本组成单位是函数
D、在C程序中,注释说明只能位于一条语句的后面
【答案】D
【解析】本题考杳C语言的基本基础知识。在C程序中,注释用符号7*〃开
始,而以符号"*/"结束。程序的注释可以放在程序的任何位置。通常将注释
放在程序的开始,以说明本程序的功能;或者放在程序的某个语句后面,以对
此语句的功能进行说明。无论将注释放有何处,在程序进行编译时,编译程序
不会处理注释的内容,且注释内容也不会出现在目标程序中。
15、以下程序输出的结果是.
#include<stdio.h>
voidmain()
(
inta[]={5,4,3,2,
longs=0;
for(i=0;i<5;i++)s=s*10+a[i];
R
printf(s=%ld\n"/s);
)
A、s=12345
B、s=54321
C、s=54321
D、以上都不对
【答案】C
16、下面程序的运行结果是______o
main()
(
intcl=2,c2=0;
while(!c2-)printf("%d%d",cl-/c2);
)
A、陷入死循环
B、不输出任何内容
C、输出2-1
D、输出20
【答案】C
17、设有如下定义
structss
(
charname[10];
intage;
charsex;
}std[3],*p=std;
下面各输入语句中错误的是______o
A、scanf("%d",&(*p).age);
B、scanf(H%s\&);
C、sean("%c",&std[0].sex);
D、scanf("%c",&(p->sex));
【答案】B
【解析】本题考核的知识点是结构型数组的应用。选项A中"&(*p).age〃代
表的是std[0]age的地址,是正确的,选项C也是正确的,选项D先用指针变
量引用结构型的成员sex,然后取它的地址,也是正确的,选项B中的
"”是错误的引用,因为std是数组名,代表的是数组的首地址,地
址没有成员"name"。所以B选项为所选。
18、若下列语句组,则输出结果是
intx=0;
if(x++<0)printf("%d",—x);
printf("%d\x++);
A、-1
B、1
C、-1-1
D、-10
【答案】B
19、有如下定义语句:inta[]={123,4,5},则对语句int*p=a;正确的描述是
A、语句int*p=a;定义不正确
B、语句int*p=a;初始化变量p,使其指向数组对象a的第一个元素
C、语句int*p=a;是据a[0]的值赋给变量p
D、语句int*p=a;是把a[l]的值赋给变量p
【答案】B
20、有以下程序
#include<studio.h>
#include<string.h>
structa
inta;
charb[10];
doublec;
);
voidf(structat);
main()
structaa={1001,"zhangda",1098.0};
f(a);
pringt("%d,%s,%6.1f\n",a.aza.b,a.c);
)
voidf(structat)
t.a=1002;
strcpy(t.b,"changrong");
t.c=1202.0;
)
程序运行后的输出结果是______o
A、1001,ZhangDa,1098.0
B、1002,ChangRong,1202.0
C、1001,ChangRong,1098.0
D、1002,ZhangDa,1202.0
【答案】A
二、判断题(每小题2分,共20分)
()L函数调用时,如果把数组名作实参,则形参数组元素的值发生变化时,实参数组元素
的值同时发生变化。
【答案】正确
()2、字符数组定义后,不能用赋值语句将一字符串常量或字符数组直接赋给一个字符
数组。
【答案】正确
()3、putchar函数可以向终端输出一个字符串
【答案】错误
()4、内层break语句可以终止嵌套的switch,使最外层的switch结束。
【答案】错误
()5、函数strcmp从头至尾频序地将其对应字符比较,遇到两个字符不等时,两个字
符相减得到一个int型值,两个字符串完全相同时,则返回0。
【答案】正确
()6、用strcat(字符串L字符串2)连接两个字符串函数时,字符串1的存储空间没有限
制。
【答案】错误
()7、在c语言中,引用数组元素时,数组下标的数据类型只能是整型常量。()
【答案】错误
()8、c程序是由函数构成的,其中有且只有一个主函数main().
【答案】正确
()9、对于一个具体的函数来说,实参与形参不必一对应。
【答案】错误
()10、在同一源文件中,使用extern可将全局变量的作用域向上扩展。
【答案】正确
三.填空题(每小题4分,共20分)
1、在c语言中,'\ri表示。
【答案】回车换行#换行
2、若变量a,b已定义为int类型并赋值21和55,要求用printf函数以
a=21,b=55的形式输出请写出完整的的输出语句
【答案】「printf(匕=%d,b=%d”,a,b);']
3、下面程序段中循环体的执行次数是_______
a=10;
b=0;
do
(
b+=2;
a-=2+b;
)
while(a>=0);
【答案】3次
4、局部变量的作用域是从定义的位置起,到____结束止。
【答案】函数
5、有函数调用funl(x+y,(y,z),10,fun((x,y-l)));
函数funl有【1】个参数。
【答案】4
四.程序分析题(每小题5分,共20分)
1、下面程序的运行结果是______。
main()
inta[5][5]fij/n=l;
for(i=0;i<5;i++)for(j=0;j<5;j++)a[i][j]=n++;
printf("theresultis:\n");
for(i=0;i<5;i++)
for(j=0;j<=i;j++)printf("%4d"/a[i][j]);
printf("\n");
)
)
【答案】167111213161718192122232425
2、#include<stdio.h>
voidmain()
(
inta[3][3]={{lf2}/{3/4},{5,6}}JJ/s=0;
for(i=l;i<3;i++)for(j=O;j<i;j++)s+=a[i][j];
printf(H%d\n,s);
)
【答案】14
【解析】该程序即计算a[即[0]+a[2][0]+a[2][l]的值,对应数组中的数为:
3+5+6=14。
3、有以下程序
#include<stdio.h>
main()
intm,n;
scanf("%d%d",&m,&n);
while(m!=n)
(
while(m>n)m=m-n;
while(m<n)n=n-m;
)
printf("%d\n",m);
)
程序运行后,当输入1463〈回车>时,输出结果是______o
【答案】7
4、以下程序中,select函数的功能是:在N行M列的二维数组中,选出一个最大
值作为函数值返回,并通过形参传回此最大值所在的行下标。请填空。
#defineN3
#defineM3select(inta[N][M],int*n)
(
inti,j,row=l,colum=l;
for(i=0;i<N;i++)for(j=0;j<M;j++)if(a[i][j]>a[row][colum])
row=i;
colum=j;
*n=;
return;
)
main()
(
inta[N][M]={9/ll/23/6,l,15,9/17/20)/max/n;
max=select(a,&n);
,
printf("max=%d/line=%d\n',max,n);
)
【答案】[Tow','a[row][colum]']
五、编程题(每小题分,共50分)
1、输入n的值,计算并输出l*l+2*2+3*3+4*4+5*5+...+n*n的值。要求编
写函数f求平方。(本题12分)
【答案】#include
voidmain()
(
intf(intx);
intn,sum;
printf("
请输n值:)
scanf("%d",&n);
sum=f(n);
printf(n%d\n",sum);
)
intf(intx)
(
intj,z=O;
for(j=l;j<=x;j++)
z=z+j*j;
returnz;
)
2、编写程序:键盘输入一个八进制数字,用程序转换为十进制(本题18
分)
【答案】#include<stdio.h>
#include<stdlib.h>
intmain()
(
intn=0,i=0;
chars[20];
prints请输入一个8进制数:\n)
gets(s);
while(s[i]!='\O'){
n=n*8+s[i]-'O';
i++;
)
printf("刚输入的8进制数转化为十进制为\n%d\n”,n);
return0;
)
3、编写程序:利用结构体类型,编程计算一名同学5门课的平均分。(本题
20分)
【答案】structstudent{
charname[30];
floatscore[5];
);
intmain(intargc,constchar*argv[])
(
structstudenta={"zhangsan",20,30,40,50,60);
floatsum=0;〃定义一个5科分数之和变量
floatAverageScore=0;〃定义一个平均分变量
for(inti=0;i<5;i++){
sum=sum+a.score[i];
AverageScore=sum/5;
)
n姓名科成绩平均分是:
printf(%s\n5%.lf^",AverageScore);
return0;
)
湖北经济学院C语言程序设计题库(二)
总分:150分考试时间:120分钟
注意事项:
>题目包括五大部分,单项选择题,判断题,填空题,程序分析题,编程题,请按要求在
规定时间内作答。
>考试中途不能无端离场,否则视为放弃。考试过程中如遇问题请及时向监考老师反馈。
一、单项选择题(每小题2分,共40分)
L下列关于指针运算的描述中,错误的是_______
A、在一定条件下,两个指针可以相加
B、在一定条件下,两个指针可以进行逻辑判断
C、在一定条件下,指针可以为空值
D、在一定条件下,两个指针可以相互赋值
【答案】A
【解析】本题考核指针的赋值和运算。在C语言中,指针可以进行赋值运算、
算术运算、比较运算(逻辑判断)。但是在任何条件下,两个指针都不能允许相
加。因为地址相加后可能会对内存进行不合法的访问。所以选项A的描述是错
误的。
2、以下选项中,合法的一组c语言数值常量是______。
A、028
.5e-3
-Oxf
B、12.
OXa23
4.5eO
C、.177
4cl.5
Oabc
D、0x8A
10,000
3.e5
【答案】B
3、下面四个选项中,均是不正确的八进制数或十六进制数的选项是______o
A、0160x8f018
B、Oabc017Oxa
C、010-0x110x16
D、0al27ff-123
【答案】D
【解析】八进制中,不可能包括8以上的数字,它的范围只在0~7之间,以0
开头。同样,十六进制是以Ox开头,数字在0~9和A~F之间。
4、在c的if语句中,可用作条件的表达式是_______。
A、关系表达式
B、逻辑表达式
C、算术表达式
D、任意表达式
【答案】D
5、若变量已正确定义,有以下程序段
inti=0;
do
printf("%d,",i);
while(i++);
printf(M%d"J)其输出结果是_______
A、0,0
B、0,I
C.1.1
D、程序进入无限循环
【答案】B
6、下列关于指针变量的描述,不正确的是_______
A、在没有对指针变量赋值时,指针变量的值是不确定的
B、同类指针类型可以进行相减操作
C、在使用没有赋值的指针变量时,不会出现任何问题
D、可以通过指针变量来取得它指向的变量值
【答案】C
【解析】没有赋值的指针变量,可能指向任何地方,如果指向系统,那么使用
该指针可能导致系统崩溃。
7、若变量已正确定义为int型,要给a、b、c输人数据,正确的输入语句是
A、read(a,b,c);
B、scanf(n%d%d%d",a,b,c);
C、scanf("%D%D%D",&a,%b,%c);
D、scanf("%d%d%d「&a,&b,&c);
【答案】D
8、若定义staticinta[2][2]={l,2z3,4},则a数组的各数组元素分别为,
A、a[O][O]=l.a[0][l]=2xat[l][0]=3,a[l][l]=4
B、a[O][O]=l.a[0][l]=3.a[l][0]=2.a[l][l]=4
C、a[0][0]=4xa[0][l]=3xa[l][0]=2.s[l][l]=l
D、a[0][0]=4.a[0][l]=2.a[l][0]=3.a[l][l]=l
【答案】A
9、为了要计算s=10!(10的阶乘),则以下对s的定义正确的是_______标识
符由字母,数字和下划线组成且第一个字符必须为字母或下划线auto自动变量
register寄存器变量extern外部变量static静态变量
A、ints
B、unsigneds
C、shorts
D、longs
【答案】D
10、判断字符串a和b是否相等,应当使用。
A、if(a==b)
B、if(a=b)
Cxif(strcmp(a,b))
Dxif(strcmp(a,b)==O)
【答案】D
11、下列程序的运行结果是。
main()
(
inta[6]J;
for(i=2;i<6;i++)
(
a[i]=4*(i-2*(i>3)}%5;
printf("%2d\a[i]);
)
)
A、2323
B、1212
C、3232
D、2222
【答案】C
【解析】本题程序的功能是对数组元素赋值,难点是对表达式4*(i-2*(i>
3))%5的分析。
有以下函数
12xintfun(char*s)
char*t=s;
while(*t++);
return(t-s);
)
该函数的功能是______o
A、匕檄两个字符串的大小
B、计算S所指字符串占用内存字节的个数
C、计算S所指字符串的长度
D、将S所指字符串复制到字符串t中
【答案】B
【解析】循环语句while(*t++);执行完时,指针变量t就指向了字符串结束符
'\0'之后的位置,所以语句return(t-s);返回的就是字符串s所用内存的字
节个数。
13、对for(表达式1;;表达式3)可理解为
A、for(表达式1;0;表达式3)
B、for(表达式1;1;表达式3)
C、for(表达式表达式3)
D、缺少一个表达式
【答案】B
14、以下关于字符串的叙述中正确的是
A、c语言中有字符串类型的常量和变量
B、两个字符串中的字符个数相同时才能进行字符串大小的比较
C、可以用关系运算符对字符串的大小进行比较
D、空串一定比空格打头的字符串小
【答案】D
15、有以下程序:
main()
{
ints,t,a=10;
doubleb=6;
s=sizeof(a);
t=sizeof(b);
printf("%d,%d\rT,s,t);
)
在vc6平台上编译运行,程序运行后的输出结果是______o
A、2,4
B、1,4
C、4,8
D、10,6
【答案】C
16、以下叙述中错误的是______。
A、C语言是一种结构化程序设计语言
B、结构化程序由顺序、分支、循环三种基本结构组成
C、使用三种基本结构构成的程序只能解决简单问题
D、结构化程序设计提倡模块化的设计方法
【答案】C
【解析】本题考查的知识点是:结构化程序设计。结构化程序由3种基本结构
组成:顺序结构、选择结构和循环结构。已经得到证明,由3种基本结构组成
的算法结构可以解决任何复杂的问题。故本题中选项。是错误的。
17、下列描述说明正确的是_______
A、定义结构体时,它的每个成员的数据类型可以不同
B、不同结构体的成员名不能相同
C、结构体定义时,其成员的数据类型不能是结构体本身
D、结构体定义时各成员项之间可用分号也可用逗号隔开
【答案】A
18、下列程序的输出结果是_______
main()
{
chara[10]={9,8,7,6,5,43,2,1,0}/p=a+5;
printf("%d"/*-p);
)
A、非法
B、a[4]的地址
c、5
D、3
【答案】C
19、以下能正确定义一维数组的选项是
A.inta[5]={
0.1,2.3.4,5);
B、chara[]={
0,1,2,3,4,5);
C、chara={,A,,B,C);
D、inta[5]=w0123”;
【答案】B
20、若有下面的说明和定义:
structtest
(
intml;
charm2;
floatm3;
unionuu
(
charul[5];
intu2[2];
)
ua;
)
myaa;
则sizeof(structtest)的值是
A、12
B、16
C、14
D、9
【答案】A
二.判断题(每小题2分,共20分)
()1、C语言程序中,出现非法字符时会发出错误信息。
【答案】正确
()2、关系表达式的值只能为1和0
【答案】正确
()3、数组名是一个指针,它可以指向数组中的任何元素。()
【答案】错误
()4、若有intk=1;
while(k=l)k++;
则while循环执行的次数是1次
【答案】错误
()5、c语言中,字符串常量存放在字符数组中要有一个结束符,该结束符是0。
【答案】错误
()6、数组名作为函数参数,传送的是地址.
【答案】正确
()7、若有定义一维数组inta[4]的首地址为0078h厕a[l]元素的首地址是
0079h(设int型数据占两个字节)。
【答案】错误
()8、在标准c中,变量定义一定要出现在函数开始部分
【答案】错误
()9、c语言中简单变量作为实参时,它和对应的形参之间的数据传递方式是单向值传
递。
【答案】正确
()10、fseek函数一般用于文本文件。
【答案】错误
三、填空题(每小题4分,共20分)
1、以下程序对输入两个整数,按从大到小的顺序输出。请在—内填入正确的
内容。
voidmain()
(
intx,y,z;
scanf("%d,%d”,&x,&y);
if(_________)
(
z=x;
printf("%d,%d",x,y);
)
【答案】x<y|
x=y;
y=z;
【解析】其中这里用到了交换变量的方法,如果交换2个变量,则增加一个临
时变量,然后让三个变量在赋值语句中的位置形成一个环,如a=b;b=c;
如果是个变量交换,同样是让他们位置形成一个环。如
c=aonal=a2;
a2=a3;a3=...an-l=an;an=alo
2、在c语言中,用转义字符\t表示答题提示:双引号/单引号/反斜
线/横向跳格/回车换行
【答案】横向跳格
3、在循环的过程中,有时要提前中止循环,通常采用()语句。
【答案】break
4、已知charstr□="student,,则strlen(str)的值为o
【答案】7
5、在c语言中,如果采用printf函数将整个字符串一次输出,那么对应的格式控
制符为"\
【答案】%s
四.程序分析题(每小题5分,共20分)
L输入一个字符,如果它是大写字母很驻巴它变成小写字母,如果它是一个小写字
母,则把它变成大写字母,其它字符不变。请分析程序填空。
main()
charch;
scanf("%c",&ch);
if(LU1)ch=ch+32;
elseif(ch>='a'&&ch<='z')[2]
printf(n%c",ch);
【答案】【1】ch>='a'&&ch<='z,[2]ch=ch-32
2、有以下程序
#include<stdio.h>
main()
(
chara[20]="howareyou?",b[20];
scanf("%s",b);
printf("%s%s\n",a/b);
)
程序运行时从键盘输入:howareyou?〈回车〉则输出结果为
【答案】['howareyouhow']
3、以下函数fun的功能是返回str所指字符串中以形参c中字符开头的后续字
符串的首地址,例如:str所指字符串为:hell。!,c中的字符为e,则函数返回字符
串:ello!的首地址。若str所指字符串为空串或不包含c中的字符,则函数返回
nullo请填空。char*fun(char*str,charc)
intn=0;
char*p=str;
if(p!=null)while(p[n]!=c&&p[n]!=>\O')n++;
if(p[n]==f\0*)returnnull;
return();
)
【答案】「p+n']
4、下面程序的运行结果是_______
#include<stdio.h>
main()
(
inti,t,sum=0;
for(t=i=l;i<=10;)
(
sum+=t;
++i;
if(i%3==0)t=-i;
elset=i;
)
printf(wsum=%d",sum);
)
【答案】sum=19
五.编程题(每小题分,共50分)
1、打印出所有的“水仙花数",所谓"水仙花数”是指一个三位数,其各位数
字立方和等于该数本身。例如:153是一个"水仙花数",因为153二1的三次
方+5的三次方+3的三次方,(本题12分)
【答案】程序分析:利用for循环控制100-999个数,每例分解出个位,十
位,百位。
程序源代码:
main()
(
inti,j,k,n;
printf("'waterflower'numberis:");
for(n=100;n<1000;n++)
(
i=n/100;/*分解出百位*/
j=n/10%10;/*分解出十位*/
k=n%10;/*分解出个位*/
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
printf("%-5d",n);
)
)
printf(n\n");
2、求1+2+3+........+100。(本题18分)
【答案】#include<stdio.h>
voidmain()
(
intizsum=0;
for(i=l;i<=100;i++)
sum=sum+i;
printf("%d",sum);
)
3、给定N个职员的信息,包括姓名、基本工资、浮动工资和支出,要求编写
程序顺序输出每位职员的姓名和实发工资(实发工资=基本工资+浮动工资一支
出I
输入格式:
输入在一行中给出正整数N。随后N行,每行给出一位职员的信息,格式为
“姓名基本工资浮动工资支出",中间以空格分隔。其中"姓名"为长度小
于10的不包含空白字符的非空字符串,其他输入、输出保证在单精度范围
内。
输出格式:
按照输入顺序,每行输出一位职员的姓名和实发工资,间隔一个空格,工资保
留2位小数。
输入样例:
3
zhao24040075
qian36012050
zhou56015080
输出样例:
zhao565.00
qian430.00
zhou630.00(本题20分)
【答案】#include<stdio.h>
structmessage
(
chara[9];
doublebasic;
doublefu;
doubleoutput;
};
structmessaged[100];
intmain()
(
intN;
doublef[100];
scanf("%d",&N);
for(inti=0;i<N;i++)
(
scanf("%s%lf%lf%lf",d[i].a,&d[i].basic/&d[i].fu/&d[i].output);
f[i]=d[i].basic+d[i].fu-d[i].output;
)
for(inti=0;i<N;i++)
(
printf("%s%.2f\n",d[i].aff[i]);
)
return0;
)
湖北经济学院C语言程序设计题库(三)
总分:150分考试时间:120分钟
注意事项:
>题目包括五大部分,单项选择题,判断题,填空题,程序分析题,编程题,请按要求在
规定时间内作答。
>考试中途不能无端离场,否则视为放弃。考试过程中如遇问题请及时向监考老师反馈。
一、单项选择题(每小题2分,共40分)
L在下列给出的表达式中,与while(e)中的(e)不等价的表达式是_______
A、(!E==0)
B.(E>0||E<0)
C(E==0)
D.(E!=0)
【答案】B
2、阅读以下程序厕执行下面语句后m的值是_______
intw=l,x=2,y=3,z=4,m;
m=w<x?w:x;
m=m<y?m:y;
m=m<z?m:z;
A、1
B、2
C、3
D、4
【答案】A
3、下列选项不是c关键字的是______。
A、typedef
B、void
C、bool
D、inc
【答案】D
4、设变量x和y均已正确定义并赋值。以下if语句中,在编译时将产生错误信
息的6______O
A、if(x++);
B、if(x>y&&y!=O);
C、if(x>0)x-elsey++;
D、if(y<0){;}elsex++;
【答案】C
【解析】c语言规定,在"if(表达式)语句l;else语句2这种形式的if语句
中,在每一个else前面有一个分号,整个语句结束处有一分号。在本题的C)
选项中,else前面少了一个分号,这样程序在编译时,会出现语法错误。
5、以下程序中,while循环的循环次数是_____。
main()
(
inti=0;
while(i<10)
if(i<1)continue;
if(i==5)break;
i++;
)
)
A、1
B、10
C、6
D、死循环
【答案】D
6、下列选项中,能够正确定义数组的语句是________
A、intnum[0..2008];
B、intnum[];
C.intN=2008;
D、#defineN2008
intnum[N];intnum[N]
【答案】D
7、设intx=10,a=0,b=25;条件表达式x<l?a+10:b的值是
A、0
B、1
C、10
D、25
【答案】D
8、已知:inta[2][3];则对数组元素的非法引用是_______
A.*(a[0]+2)
B、.a[l]⑶
C、a[l][0]
D、*(*(a+l)+2)
【答案】B
9、以下标识符中,不能作为合法的c用户定义标识符的是
A、answer
B、to
C、signed
D、_if
【答案】C
10、字符串指针变量中存入的是_______
A、字符串
B、字符串的首地址
C、第一字符
D、字符串变量
【答案】B
11、下列字符数组初始化语句中,不正确的是
A、charc[]=,goodmorning,;
B、chare[20]="goodmorning":
、,
Ccharc[]=('a/'b'/'c'/d');
D、charc[]={nffgoodmorning");
【答案】A
12、每个c程序中都必须有且仅有一个
A、类
B、预处理命令
C、主函数
D、语句
【答案】C
【解析】每个c程序中都要有且仅有一个主函数,该函数是程序的入口,而语
句、预处理命令和函数及类在程序中都可以有多个。
13、在16位编译器环境下,double类型占多少字节?
A、2
B、4
C、1
D、8
【答案】D
【解析】在16位编译器环境下,double类型占8个字节。
14、下面程序段输出两个字符串中对应相等的字符。请分析程序填空。
charx[]="programming";
chary[]="fortran";
inti=0;
while(x[i]!='\0,&&y[i]!=,\0)
if(x[i]==y[i])printf("%c\
elsei++;
A、x[i++]
B、y[++i]
C、x[i]
D、y[i]
【答案】A
15、以下程序的输出结果是一
main()
(
charc='z';
printf("%c",c-25);
)
A、a
B、z
C、z-25
D、y
【答案】A
16、有以下程序:
main()
(
inti,j;
for(j=10;j<ll;j++)
(
for(i=9;i<j;i++)if(!(j%i))break;
if(i==j-l)printf(H%d"j);
)
)
输出结果是_______o
A、11
B、10
C、9
D、1011
【答案】B
17、下列关于共用体类型变量的描述中,正确的是______
A、可以对共用体变量直接赋值
B、一个共用体变量可以同时存放其所有的成员
C、一个共用体变量中不可以同时存放其所有的成员
D、共用体类型定义中,不能出现结构体类型的成员
【答案】C
18、以下程序E殳运行后的结果是_______
intx=lzy=2,z=3;
y+=x+=z;
printf("%d",x<y?x++:y++);
A、6
B、5
C、4
D、3
【答案】C
【解析】请仔细阅读交规难度:简单
19、以下叙述中正确的是_____
A、每个数组包含一组具有同一类型的变量,这些变量在内存中占有连续的
存储单元
B、一条语句只能定义一个数组
C、数组说明符的一对方括号中只能使用整型常量,而不能使用表达式
D、在引用数组元素时,下标表达式可以使用浮点数
【答案】A
【解析】数组的元素是同一类型,占用连续空间,所以选择A。
20、设有下面的定义:
structst
inta;
floatb;
}d;
int*p;
要使p指向结构变量d中的a成员,正确的赋值语句是_______o
A、*p=d.a;
B、p=&a;
C、p=d.a;
D、p=&d.a;
【答案】D
【解析】本题主要考杳按结构数组元素方式引用结构成员。结构体变量的成员
引用方法有3种:①结构体变量名,成员名;②指针变量名・>成员名;③(*指
针变量名).成员名。因为p是指针变量,所以应该将地址值赋给po
二.判断题(每小题2分,共20分)
()1、在标准C语言中,共用体变量中的各成员是共同占用一块存储空间
【答案】正确
()2、c语言中整型、实型和字符型都属于基本数据类型。
【答案】正确
()3、c语言约定、0'计入字符串的长度。
【答案】错误
()4、循环体如包括有一个以上的语句,则必须用{}括起来,组成复合语句。
【答案】正确
()5、在c语言中,字符数组可以存放字符串。()
【答案】正确
()6、使用strcpy(字符数组,字符串)函数时,字符数组长度没有限制。
【答案】错误
()7、对字符数组元素进行引用时,可以一次引用整个数组。
【答案】错误
()8、在c程序中,函数既可以嵌套定义,也可以嵌套调用。()
【答案】错误
()9、在c程序中,不同函数中所定义的变量允许同名
【答案】正确
()10、要使用标准输入、输出函数,正常情况下应该在文件的开头加上以下内容:
#include<stdio.h>
或
#include"stdio.h"o
【答案】正确
三、填空题(每小题4分,共20分)
LC语言中,关系表达式和逻辑表达式的值是1//0
【答案】
2、若inta=3,b=2,c=l,f;表达式f=a>b>c的值是___
【答案】0
3、下列程序段的运行结果是一。
main()
(
intn,s=0;
for(n=l;n<=6;n++)
(
if(n%3==0)continue;
s=s+n;
)
printf("%d\n",s);
)
【答案】12
4、函数strlen(“1234\0xy”)的值为:
【答案】9
5、C语言替换字符的函数是什么?
【答案】strcpy(a,b);
四.程序分析题(每小题5分,共20分)
1、输入一个3*3的实数矩阵求主对角线元素中的最大值。
main()
(
floats[3][3],maxl,max2/x;
inti,j;
for(i=0;i<3;i++)for(j=0;j<3;j++)
(
scanf("%f",&x);
s[i][j]=x;
)
max=s[0][0];
for(i=l;i<3;i++)if(max<)max=;
printf("maxl=%f\n'max);
)
【答案】
2、下列程序段的运行结果是______o
#defineadd(x,y)x+y
main()
inta,b,s;
A=5,b=6;
S=add(a,b);
printf("s=%d\n",s);
)
【答案】s=ll
3、以下程序的运行结果是
inti=O;
main()
(
inti=5;
reset(i/2);
printf("i=%d\n\i);
reset(i=i/2);
printf("i=%d\n",i);
reset(i/2);
printf("i=%d\n"J);
workover(i);
printf(ni=%d\nH,i);
}
workover(inti)
(
i=(i%i)*((i*i)/(2*i)+4);
printf("i=%d\n",i);
returni;
)
reset(inti)
(
i=i<=2?5:0;
returni;
)
【答案】j=5i=2i=2i=0i=2
4、以下程序运行的结果为()
#include<stdio.h>
voidfunl(int*ajnt*b)
(
int*c;
c=a;
a=b;
b=c;
)
voidfun2(int*ajnt*b)
(
intc;
c=*a;
*a=*b;
*b=c;
)
voidmain()
(
intx=3,y=5,*p=&x,*q=&y;
funl(pzq);
printf("%d,%d,",*p,*q);
fun2(p,q);
printf("%d,%d\n\*p,*q);
)
【答案】3,5,5,3
五.编程题(每小题分,共50分)
1、编写程序:编程序实现求1-10之间的所有数的乘积并输出(本题12分)
【答案】#include<stdio.h>
voidmain()
{inti;
longsum=l;
for(i=l;i<=10;i=i+l)
sum=sum*i;
printf("thesumofoddis:%ldM,sum);
)
2、编写程序:计算sum=l・l/3+l/5・l/7+…+1/19(本题18分)
【答案】#include<stdio.h>
main()
(
inti;
floatsum=0,k=-l;
for(i=l;i<=19;i=i+2)
(
sum=sum+1.0/i*k;
k=-k;
)
printf("%f"fsum);
getch();
)
3、编写input。和output。函数,输入输出5个学生记录,每个记录包括
num、name、score[3],使用结构体实现。(本题20分)
【答案】#include<stdio.h>
structstudent{
intnum;
charname[20];
intscore[3];
}stu[5];
voidinput(structstudent*pstu){
intnj;
for(n=0;n<5;n++){
printf("Inputstudentsnum:");
scanf("%d",&pstu[n].num);
printf(n\n");
printf("Inputstudentsname:");
scanf("%s",&pstu[n].name);
printfCXn");
printf(MInputstudentsscore:");
for(j=0;j<3;j++){
scanf("%d",&pstu[n].score[j]);
)
printf(n\n");
)
)
voidoutput(structstudentstu[]){
inti=0j;
for(i;i<5;i++){
printf("%d,%s",stu[i].num,stu[i].name);
for(j=0;j<3;j++){
printf("%3d",stu[i].score[j]);
)
printfCAn");
)
)
intmain(){
voidinput(structstudent*pstu);
voidoutput(structstudentstu[]);
input(stu);
output(stu);
)
湖北经济学院C语言程序设计题库(四)
总分:150分考试时间:120分钟
注意事项:
>题目包括五大部分,单项选择题,判断题,填空题,程序分析题,编程题,请按要求在
规定时间内作答。
>考试中途不能无端离场,否则视为放弃。考试过程中如遇问题请及时向监考老师反馈。
一、单项选择题(每小题2分,共40分)
L分块语句(块if)的控制转移中,有一些基本的规则,下列()条规则是最不正确的。
A、T块IF必须与一个ENDIF语句相对应
B、一个块IF语和ENDIF语句间可以含有零个或多个ELSEIF语句
C、一对块IF语句和ENDIF语句间可含有一个零或零个SLSE块
D、允许越过块IF语句头进入核IF嵌套层
【答案】D
2、下面单位换算中,正确的是_______
A、1KB=1024X1024B
B、1KB=1O24MB
C、1MB=1024X1024B
D、1GB=1O24B
【答案】C
【解析】存储器容量常用的单位有KB、MB、GB、TB,换算关系如下:
1TB=1024GB
=1024x1024MB=1024x1024x1024KB=1024x1024x1024x1024B
3、已知[x/2]补=c6h,计算机的机器字长为8位二进制编码,则冈补二(11)。
A、8CH
B、18H
C、臼H
D、F1H
【答案】A
【解析】已知[X/2]补=C6H,C6H化成二进制数是11000110,求其真值,得
到-0111010。再乘以2(即左移一位)得・1110100,求此数的补码可得
即
10001100,8CHO
4、能正确表示a和b同时为正或同时为负的逻辑表达式是_______
A、(a>=0||b>=0)&&(a<0||b<0)
B、(a>=0&&b>=0)&&(a<0&&b<0)
C、(a+b>0)&&(a+b<=0)
D、a*b>0
【答案】D
5、以下for语句中不是死循环的是_______
A、for(inti=0;i<1;i++);
B、for(inti=0;i++);
C、for(inti=l;i>0;++i);
D、for(;
【答案】A
【解析】考查循环语句for的使用。
[解题要点]for循环的一般格式为for(初始化部分;终止条件判断部分;迭代部
分){循环体;}说明如下:for循环开始时,首先执行初始化操作,然后判断终
止条件是否满足,如果满足,则执行循环体中的语句,最后执行迭代部分。完
成一次循环后,重新判断终止条件。
作昔解分析]在for语句中,如果省略了终止条件判断部分,开且在语句中没有
break,或者是终止条件判断部分始终没有终止,者阀各出现死循环。
[考点链接]for循环语句可由while循环语句来代替。
6、以下答案中不是c语言最基本数据类型的是______。
A、逻辑型
B、整型
&字符型
D、指针型
【答案】A
7、以下选项中可作为c语言合法整数的是______。
A、10110B
B、0386
C、OXffa
D、x2a2
【答案】C
8、下列程序的执行结果是
#include<stdio.h>
unionun{
inti;
charc[2];
)
voidmain(){
unionunx;
x.c[0]=10;
x.c[l]==l;
printf("\n%d",x.i);
)
A、266
B、11
C、265
D、138
【答案】A
【解析】由于本题定义的是共用体,所以成员表列中的整型变景x与字符数组
c共占用同一个存储单元,且此存储单元为2个字节,通常c[0]位于低字节,
c[l]位于高字节,所以x.i的值为266。
9、在c语言中,以下叙述不正确的是.
A、在C程序中,无论是整数还是实数,都能被准确无误的表示
B、在C程序中,变量名代表存储器中的一个位置
C、静态变量的生存期与整个程序的生存期相同
D、C语言中变量必须先定义后引用
【答案】A
10、在下列各项中,运算级别最低的为。
A、算术运算符
B、关
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论