曲靖师范学院C语言习题集及解答.docx

上传人:b****6 文档编号:8662215 上传时间:2023-02-01 格式:DOCX 页数:56 大小:75.32KB
下载 相关 举报
曲靖师范学院C语言习题集及解答.docx_第1页
第1页 / 共56页
曲靖师范学院C语言习题集及解答.docx_第2页
第2页 / 共56页
曲靖师范学院C语言习题集及解答.docx_第3页
第3页 / 共56页
曲靖师范学院C语言习题集及解答.docx_第4页
第4页 / 共56页
曲靖师范学院C语言习题集及解答.docx_第5页
第5页 / 共56页
点击查看更多>>
下载资源
资源描述

曲靖师范学院C语言习题集及解答.docx

《曲靖师范学院C语言习题集及解答.docx》由会员分享,可在线阅读,更多相关《曲靖师范学院C语言习题集及解答.docx(56页珍藏版)》请在冰豆网上搜索。

曲靖师范学院C语言习题集及解答.docx

曲靖师范学院C语言习题集及解答

 

曲靖师范学院优质课程建设

 

《程序设计与算法语言》

习题及参考答案

 

 

《程序设计与算法语言》课题组

二OO九年十月

 

目录

习题一C语言概述习题1

习题二数据类型运算符和表达式习题3

习题三结构化程序设计习题5

习题四选择结构程序设计习题7

习题五循环结构程序设计习题10

习题六数组15

习题七函数20

习题八指针25

习题九结构体与共用体27

习题一C语言概述习题答案29

习题二数据类型运算符和表达式答案29

习题三结构化程序设计答案.30

习题四选择结构程序设计习题答案31

习题五循环结构程序设计习题答案33

习题六数组习题答案35

习题七函数习题答案38

习题八指针习题答案41

习题九结构体共用体答案43

习题一C语言概述习题

1.单项选择题

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

A.AB.BC.DD.E

(2)在C语言中,每个语句必须以结束。

A.回车符B.冒号C.逗号D.分号

(3)标识符和关键字间,要用隔开。

A.回车符B.冒号C.空格D.分号

(4)用C语言编写的源文件经过编译,若没有产生编译错误,则系统将()。

A.生成可执行目标文件B.生成目标文件

C.输出运行结果D.自动保存源文件

(5)下列说法中正确的是()。

A.由于C源程序是高级语言程序,因此一定要在TC软件中输入

B.由C源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入

C.由于C程序是高级语言程序,因此输入后即可执行

D.由于C程序是高级语言程序,因此它由命令组成

(6)下列说法中正确的是()。

A.C语言程序由主函数和0个或多个函数组成

B.C语言程序由主程序和子程序组成

C.C语言程序由子程序组成

D.C语言程序由过程组成

(7)下列说法中错误的是()。

A.主函数可以分为两个部分:

主函数说明部分和主函数体

B.主函数可以调用任何非主函数的其他函数

C.任何非主函数可以调用其他任何非主函数

D.程序可以从任何非主函数开始执行

2.填空题

(1)C语言只有个关键字和种控制语句。

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

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

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

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

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

(7)C语言中,标识符的定义规则是。

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

3.简答题

(1)结合自己的认识,谈谈C语言的特点。

(2)C语言程序由哪几部分组成?

(3)C语言程序的书写规则主要有哪些?

(4)一个C语言应用程序上机过程一般要经过哪几个步骤?

简述各步的作用。

4.编程题

编写一个C语言应用程序,其功能是显示以下信息:

*************************

***HelloWorld!

***

*************************

 

习题二数据类型运算符和表达式习题

1.单项选择题

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

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

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

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

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

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

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

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

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

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

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

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

A.&&,!

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

C.&&,||,!

D.!

,&&,||

(7)表达式!

x||a==b等效于。

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

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

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

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

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

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

A.*B.!

=C.+D.=

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

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

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

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

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

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

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

a

a:

c

a:

d的结果为。

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

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

10

A.10

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

(a<=10)&&!

(a>=15)

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

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

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

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

(ch+32):

ch

A.AB.aC.ZD.Z

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

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

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

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

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

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

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

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

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

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

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

A.chara=3;B.chara=”3”;C.chara=%;D.chara=*;

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

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

2.填空题

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

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

(3)无符号基本整型的数据类型符为,双精度实型数据类型符为,字符型数据类型符为。

(4)设c='w',a=1,b=2,d=-5,则表达式'x'+1>c,'y'!

=c+2,-a-5*b<=d+1,b==(a=2)的值分别为、、、。

(5)设floatx=2.5,y=4.7;inta=7;,表达式x+a%3*(int)(x+y)%2/4的值为。

(6)判断变量a、b的值均不为0的逻辑表达式为。

(7)求解赋值表达式a=(b=10)%(c=6),表达式值、a、b、c的值依次为。

(8)求解逗号表达式x=a=3,6*a后,表达式值、x、a的值依次为。

(9)数学式a/(b*c)的C语言表达式。

3.简答题

(1)用户标识符在命名时,应注意哪几个方面?

(2)设inti=1,j=2,k=3;,请写出以下表达式的值及计算后变量i、j、k的值。

①(++i)*(++j)*(++k)②(i++)*(++j)*(k++)

③i=i+j,j=j+k,k=k+i④!

(i=j)&&(j=k)

4.编程题

(1)设长方形的高为1.5,宽为2.3,编程求该长方形的周长和面积。

(2)编写一个程序,将大写字母A转换为小写字母a。

 

习题三结构化程序设计习题

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

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

A.'A'B.A\

C."A"D.以上都不对

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

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

A.65535,-1B.1,65535

C.32767,32768D.32768,32767

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

中。

A.math.hB.stdio.h

C.stbio.hD.stdlib.h

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

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

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

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

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

A.%16dB.%8xC.%d16D.%d

(9)a是int类型变量,c是字符变量,下列输入语句中哪一个是错误的。

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;的数据能正确的输出,输出语句应是。

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()

{charc

getchar(c);

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

c=putchar();

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

main

{

inta,b,s,l;

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

s=a*b;

l=a+b;

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

}

3.写出程序运行结果

(1)

main()

{

inta,b;

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

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

}

运行时输入:

12345678

(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);

}

4.编程题

输入3个整数,计算它们的和与平均值,平均值的结果保留2位小数。

 

习题四选择结构程序设计习题

1.单项选择题

(1)选择结构程序设计的特点是_______。

A.自上向下逐个执行B.根据判断条件,选择其中一个分支执行

C.反复执行某些程序代码D.以上都是

(2)假定所有变量均已正确定义,下列程序段运行后x的值是______。

a=b=c=0,x=35;

if(!

a)x--;elseif(b);if(c)x=3;elsex=4;

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

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

if(x<0)y=-1;

elseif(x>0)y=1;

elsey=0;

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

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)以下程序段的输出结果是

intx=5;

if(x>0)y=1;

elseif(x==0)y=0;

elsey=-1;

printf("%d",y);

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

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

x:

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

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

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

a++;case3:

a++;case2:

a++;case1:

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

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

(8)下列语句应将小写字母转换为大写字母,其中正确的是()。

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);

}

(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);

}

(3)

intk,a=1,b=2;

k=(a++==b)?

2:

3;

printf("%d",k);

(4)

voidmain()

{

ints=1,k=0;

switch(s)

{

case1:

k+=1;

case2:

k+=2;

default:

k+=3;

}

printf(“%d”,k);

}

(5)

voidmain()

{

ints=1,k=0;

switch(s)

{

case1:

k+=1;break;

case2:

k+=2;break;

default:

k+=3;

}

printf(“%d”,k);

}

3.程序设计题

(1)编一个程序,输入三个单精度数,输出其中最小数。

(2)输入一个实数,输出它的平方根值,如果输入数小于0,输出“输入数据错误”提示。

(3)if语句编程序,输入x后按下式计算y值并输出。

(4)编程序,输入一个百分制的成绩t后,按下式输出它的等级,要求分别写作if结构和switch结构。

90~100为“A”,80~89为“B”,70~79为“C”,60~69为“D”,50~0为“E”。

(5)输入3个整数,按从大到小的顺序输出。

(6)某商场举行购物优惠活动,(x代表购物款,y代表折扣):

x<1600时y=0%,x<2400时y=5%,x<3200时y=10%,x<6400时y=15%,x>=6400时y=20%,输入一个顾客的购物款后,显示它的应付款数。

 

习题五循环结构程序设计习题

1.单项选择题

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

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

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

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

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

A.99B.100C.101D.102

(4)以下for语句中,书写错误的是。

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)语句,在循环条件初次判断为假,还会执行一次循环体。

A.forB.whileC.do-whileD.以上都不是

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2.填空题

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

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

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

(3)循环体执行遇到continue语句时。

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

voidmain()

{

inti,x,y=1;

scanf("%d",&x);

for(i=2;i<=x/2;i++)

if(){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",);

if(no1>nmax)nmax=no1;

}

printf("MAX=%fMIN=%f\n",nmax,nmin);

}

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

#include

voidmain()

{ints1=0,s2=0

charch;

while(()!

='\n')

{

if(ch>='0'&&ch<='9')s1++;

if(ch>='a'&&ch<='z'||)s2++;

}

}

3.阅读下列程序,写出程序运行的输出结果

(1)

voidmain()

{inty=9;

for(;y>0;y--)

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

}

(2)

main()

{

intk,n,m;

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

while(k++<=n)

m*=2;

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

}

(3)

voidmain()

{

inti=5;

do

{

switch(i%2)

{

case4:

i--;break;

case6:

i--;continue;

}

i--;i--;

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

}while(i>0);

}

(4)

#include

voidmain()

{

intk=0;char

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

当前位置:首页 > 初中教育 > 语文

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

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