C语言试题及答案.docx

上传人:b****6 文档编号:7040310 上传时间:2023-01-16 格式:DOCX 页数:33 大小:43.79KB
下载 相关 举报
C语言试题及答案.docx_第1页
第1页 / 共33页
C语言试题及答案.docx_第2页
第2页 / 共33页
C语言试题及答案.docx_第3页
第3页 / 共33页
C语言试题及答案.docx_第4页
第4页 / 共33页
C语言试题及答案.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

C语言试题及答案.docx

《C语言试题及答案.docx》由会员分享,可在线阅读,更多相关《C语言试题及答案.docx(33页珍藏版)》请在冰豆网上搜索。

C语言试题及答案.docx

C语言试题及答案

大学C语言考试题库

第1章C语言概述习题

1.单项选择题

(1)C语言是在B语言的基础上产生的。

A.AB.BC.DD.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源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入

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个关键字和9种控制语句。

(2)C语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。

(3)每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。

(4)在C语言程序中允许出现的字符集是ASCII码字符集。

(5)C语言的程序中有特殊含义的英语单词称为保留字。

(6)C语言标识符的长度是前8位有效。

(7)C语言中,标识符的定义规则是以字母或下划线为开头。

(8)C语言程序的注释可以出现在程序中的任何地方,它总是以/*符号作为开始标记,以*/符号作为结束标记。

第2章数据类型运算符和表达式习题

1.单项选择题

(1)以下选项中,正确的C语言整型常量是D。

A.32LB.510000C.-1.00D.567

(2)以下选项中,D是不正确的C语言字符型常量。

A.'a'B.'\x41'C.'\101'D."a"

(3)在C语言中,字符型数据在计算机内存中,以字符的C形式存储。

A.原码B.反码C.ASCII码D.BCD码

(4)字符串的结束标志是C。

A.0B.'0'C.'\0'D."0"

(5)算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为B。

A.算术运算、赋值运算、关系运算B.算术运算、关系运算、赋值运算

C.关系运算、赋值运算、算术运算D.关系运算、算术运算、赋值运算

(6)逻辑运算符中,运算优先级按从高到低依次为D。

A.&&,!

,||B.||,&&,!

C.&&,||,!

D.!

,&&,||

(7)表达式!

x||a==b等效于D。

A.!

((x||a)==b)B.!

(x||y)==bC.!

(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,0B.0,1C.1,0D.1,1

(9)intb=0,x=1;执行语句if(x++)b=x+1;后,x,b的值依次为A。

A.2,3B.2,0C.3,0D.3,2

(10)设有语句inta=3;,则执行了语句a+=a-=a*=a;后,变量a的值是B。

A.3B.0C.9D.-12

(11)在以下一组运算符中,优先级最低的运算符是D。

A.*B.!

=C.+D.=

(12)设整型变量i值为2,表达式(++i)+(++i)+(++i)的结果是B。

A.6B.12C.15D.表达式出错

(13)若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是C。

A.1B.2C.2.0D.2.5

(14)sizeof(double)的结果值是A。

A.8B.4C.2D.出错

(15)设a=1,b=2,c=3,d=4,则表达式:

a

a:

c

a:

d的结果为D。

A.4B.3C.2D.1

(16)设a为整型变量,不能正确表达数学关系:

10

A.10

C.a>10&&a<15D.!

(a<=10)&&!

(a>=15)

(17)设f是实型变量,下列表达式中不是逗号表达式的是D。

A.f=3.2,1.0B.f>0,f<10C.f=2.0,f>0D.f=(3.2,1.0)

(18)设ch是char型变量,其值为'A',则下面表达式的值是B。

ch=(ch>='A'&&ch<='Z')?

(ch+32):

ch

A.AB.aC.ZD.Z

(19)以下运算符中,结合性与其他运算符不同的是A。

A.++B.%C./D.+

(20)以下用户标识符中,合法的是B。

A.intB.nitC.123D.a+b

(21)C语言中,要求运算对象只能为整数的运算符是%。

A.%B./C.>D.*

(22)PC机中,'\n'在内存占用的字节数是A。

A.1B.2C.3D.4

(23)字符串"ABC"在内存占用的字节数是B。

A.3B.4C.6D.8

(24)要为字符型变量a赋初值,下列语句中哪一个是正确的B。

A.chara="3";B.chara=’3’;C.chara=%;D.chara=*;

(25)下列不正确的转义字符是C。

A.\\B.\'C.074D.\0

2.填空题

(1)C语言中的逻辑值“真”是用非0表示的,逻辑值“假”是用0表示的。

(2)符号常量的定义方法是#defineN10。

(3)无符号基本整型的数据类型符为unsignedint,双精度实型数据类型符为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)设floatx=2.5,y=4.7;inta=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。

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,97B.a97C.97,aD.97a

(3)scanf("%c",&a);若要给变量输入大写字母A,则以下正确的输入是B。

A.'A'B.A\C."A"D.以上都不对

(4)若一个int类型的数据占2字节,则程序段:

intx=-1;printf("%u,%d",x,x);的输出结果是A。

A.65535,-1B.-1,65535C.32767,32768D.32768,32767

(5)在TC中,getchar、putchar、printf、scanf四个函数,均包含在头文件B

中。

A.math.hB.stdio.hC.stbio.hD.stdlib.h

(6)复合语句是用C括起来的语句组。

A.()B.[]C.{}D.<>

(7)下列格式符中,哪一个可以用于以八进制形式输出整数C。

A.%dB.%8dC.%oD.%ld

(8)下列格式符中,哪一个可以用于以十六进制形式输出整数B。

A.%16dB.%8xC.%d16D.%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)要使doublex;longa;的数据能正确的输出,输出语句应是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()

{charc//charc;

getchar(c);//c=getchar();

putchar('\007');/*鸣笛*/

c=putchar();//putchar(c);

//}

(2)以下程序的功能是,输入长方形的两边长(边长可以取整数和实数),输出它的面积和周长。

main//main()

{

inta,b,s,l;//doublea,b,s,l;

scanf("%d,%d",&a,&b);//scanf("%lf,%lf",&a,&b);

s=a*b;

l=a+b;//l=(a+b)*2;

printf("l=%f,s=%f\n",l);//printf("l=%lf,s=%lf\n",l,s);

}

3.写出程序运行结果

(1)

main()

{

inta,b;

scanf("%2d%*2s%2d",&a,&b);

printf("%d\n",a+b);

}

运行时输入:

12345678//输出:

68

(2)

main()

{

inta=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--;elseif(b);if(c)x=3;elsex=4;

A.34B.4C.35D.3

(3)下面的程序片段所表示的数学函数关系是_A____。

if(x<0)y=-1;

elseif(x>0)y=1;

elsey=0;

(4)下列各语句序列中,能够且仅输出整型变量a、b中最大值的是(C)。

A.if(a>b)printf("%d\n",a);printf("%d\n",b);

B.printf("%d\n",b);if(a>b)printf("%d\n",a);

C.if(a>b)printf("%d\n",a);elseprintf("%d\n",b);

D.if(a

(5)以下程序段的输出结果是A

intx=5;

if(x>0)y=1;

elseif(x==0)y=0;

elsey=1;

printf("%d",y);

A.1B.5C.0D.2

(6)程序段intx=5,y=8,max;max=(x>y)?

x:

y;printf("%d",max);的输出结果是B。

A.5B.8C.3D.13

(7)程序段intx=3,a=1;switch(x){case4:

a++;case3:

a++;case2:

a++;case1:

a++;}printf("%d",a);的输出结果是D。

A.1B.2C.3D.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)

voidmain()

{

inta=10,b=4,c=3;

if(a

if(a

printf("%d,%d,%d\n",a,b,c);

}

输出:

10,4,3

(2)

voidmain()

{

intx=100,a=10,b=20,ok1=5,ok2=0;

if(a

=15)if(!

ok1)x=1;

elseif(ok2)x=10;

elsex=-1;

printf("%d\n",x);

}

输出:

-1;

(3)

intk,a=1,b=2;

k=(a++==b)?

2:

3;

printf("%d",k);

输出:

3

(4)

voidmain()

{

ints=1,k=0;

switch(s)

{

case1:

k+=1;

case2:

k+=2;

default:

k+=3;

}

printf(“%d”,k);

}输出:

6

(5)

voidmain()

{

ints=1,k=0;

switch(s)

{

case1:

k+=1;break;

case2:

k+=2;break;

default:

k+=3;

}

printf(“%d”,k);

}

输出:

1

 

 

第5章循环结构程序设计习题

1.单项选择题

(1)for(i=1;i<9;i+=1);该循环共执行了B次。

A.7B.8C.9D.10

(2)inta=2;while(a=0)a--;该循环共执行了A次。

A.0B.1C.2D.3

(3)执行完循环for(i=1;i<100;i++);后,i的值为B。

A.99B.100C.101D.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.forB.whileC.do-whileD.以上都不是

(6)循环结构的特点是C。

A.从上至下,逐个执行B.根据判断条件,执行其中一个分支

C.满足条件时反复执行循环体D.以上都对

(7)i、j已定义为int类型,则以下程序段中内循环体的执行次数是A。

for(i=5;i;i--)

for(j=0;j<4;j++){…}

A.20B.24C.25D.30

(8)C语言while语句中,用于条件的表达式是D。

A.关系表达式B.逻辑表达式C.算术表达式D.任意表达式

(9)inta=1,x=1;循环语句while(a<10)x++;a++;的循环执行D。

A.无限次B.不确定次C.10次D.9次

(10)下列程序段执行后s的值为A。

inti=1,s=0;while(i++)if(!

(i%3))break;elses+=i;

A.2B.3C.6D.以上均不是

2.填空题

(1)三种循环语句是等价价的。

(2)当循环体中的switch语句内有break语句,则只跳出swicth语句。

同样,当switch语句中有循环语句,内有break语句,则只跳出循环语句。

(3)循环体执行遇到continue语句时跳过本次循环进入下次循环。

(4)下列程序的功能是输入一个正整数,判断是否是素数,若为素数输出1,否则输出0,请为程序填空。

voidmain()

{

inti,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

voidmain()

{

intn,i;

floatno1,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=%fMIN=%f\n",nmax,nmin);

}

(6)输入若干个字符,分别统计数字字符的个数、英文字母的个数,当输入换行符时输出统计结果,运行结束。

#include

voidmain()

{

charch;

ints1=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)

voidmain()

{inty=9;

for(;y>0;y--)

if(y%3==0){printf("%d",--y);continue;}

}

输出:

852

(2)main()

{

intk,n,m;

n=10;m=1;k=1;

while(k++<=n)

m*=2;

printf("%d\n",m);

}

输出:

1024

(3)

voidmain()

{inti=5;

do

{switch(i%2)

{case4:

i--;break;

case6:

i--;continue;

}

i--;i--;

printf("i=%d",i);

}while(i>0);

}

输出:

i=3i=1i=-1

(4)#include

voidmain()

{

intk=0;charc='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(c<'G');

printf("k=%d\n",k);

}

输出:

8

(5)输入数据:

2,4

#include

voidmain()

{

ints=1,t=1,a,n;

inti;

scanf("%d,%d",&a,&n);

for(i=1;i

t=t*10+1;s=s+t;

}

s*=a;printf("SUM=%d\n",s);

}

输出:

2468

4.程序改错

(1)以下程序是显示[200,300]所有能被7整除的数,每行显示5个数,此程序有5处错。

main()

{

inti,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)

{

prin

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 畜牧兽医

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1