《C语言程序设计》习题集.docx
- 文档编号:16389627
- 上传时间:2023-07-13
- 格式:DOCX
- 页数:89
- 大小:85.51KB
《C语言程序设计》习题集.docx
《《C语言程序设计》习题集.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计》习题集.docx(89页珍藏版)》请在冰点文库上搜索。
《C语言程序设计》习题集
前言
C语言是现代最流行的通用程序设计语言之一,它既具有高级程序设计语言的优点,又具有低级程序设计语言的特点,既可以用来编写系统程序,又可以用来编写应用程序。
因此,C语言正在被迅速地推广和普及。
课后做些练习是有必要的,本习题集通过大量的典型习题,循序渐进地引导学生巩固各章的知识点。
根据最新教学大纲,我们编排了13章的单元习题,结合各章的课时数,确定其所需的篇幅。
学生可根据教师的进度完成相应习题。
任课教师可以根据需要收取学生所做的试卷检查教学效果,并作为平时成绩的一个依据(分值老师自己把握)。
C语言是电子信息类专业重要的专业基础课,任课教师和学生要引起足够的重视。
因为C语言是一个比较通用的高级编程语言,很多编程语言都与之相关,作为学生的第一门计算机语言课,对它学习的好坏将影响后续所有与编程相关的课程以及学生参与项目的能力。
学习C语言的较好方法就是做适量的习题和大量的编程实践。
前者是为了巩固基础知识,后者则是对基础知识的灵活运用,只有当我们能够使用C语言畅通无阻地让计算机执行我们所想要做的工作时,我们才能最大限度地发挥计算机的优势,使之真正成为我们强有力的工具。
第一章C语言概述1
第二章程序的灵魂——算法3
第三章数据类型、运算符与表达式4
第四章最简单的C程序设计8
第五章选择结构程序设计11
第六章循环控制16
第七章数组21
第八章函数27
第九章预处理命令33
第十章指针35
第十一章结构体与共用体41
第十二章位运算47
第十三章文件49
第一章 C语言概述
一、选择题
1、以下叙述中正确的是()
A)C程序中注释部分可以出现在程序中任意合适的地方
B)花括号“{”和“}”只能作为函数体的定界符
C)构成C程序的基本单位是函数,所有函数名都可以由用户命名
D)分号是C语句之间的分隔符,不是语句的一部分
2、以下叙述中正确的是()
A)C语言比其他语言高级
B)C语言可以不用编译就能被计算机识别执行
C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式
D)C语言出现得最晚,具有其他语言的一切优点
3、在一个C程序中()
A)main函数必须出现在所有函数之前B)main函数可以在任何地方出现
C)main函数必须出现在所有函数之后D)main函数必须出现在固定位置
4、以下叙述中正确的()
A)构成C程序的基本单位是函数
B)可以在一个函数中定义另一个函数
C)voidmain()函数必须放在其它函数之前
D)所有被调用的函数一定要在调用之前进行定义
5、下列叙述中正确的是()
A)C语言编译时不检查语法
B)C语言的子程序有过程和函数两种
C)C语言的函数可以嵌套定义
D)C语言所有函数都是外部函数
6、一个C程序的执行是从()
A)本程序的main函数开始,到main函数结束
B)本程序文件的第一个函数开始,到本程序文件的最后一个函数
C)本程序的main函数开始,到本程序文件的最后一个函数
D)本程序文件的第一个函数开始,到main函数结束
7、以下叙述正确的是()
A)在C程序中,main函数必须位于程序的最前面
B)C程序的每行中只能写一条语句
C)C语言本身没有输入输出语句
D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误
8、以下叙述不正确的是()
A)一个C源程序可由一个或多个函数组成
B)一个C源程序必须包含一个main函数
C)C程序的基本组成单位是函数
D)在C程序中,注释说明只能位于一条语句的后面
9、以下叙述正确的是()
A)可以把define和if定义为用户标识符
B)可以把define定义为用户标识符,但不能把if定义为用户标识符
C)可以把if定义为用户标识符,但不能把define定义不用户标识符
D)define和if都不能定义为用户标识符
二、填空题
1、C源程序的基本单位是。
2、一个C源程序至少包含一个。
3、在C语言中,输入函数由库函数完成,输出函数由库函数完成。
三、编程题
1、编写一个简单的C程序介绍,输出以下信息:
***************************
WelcometoCProgramme
***************************
2、编写一个C程序,输入整数a,b两个值,输出两个整数之差。
3、编写一个C程序,输入a、b、c三个值,输出其中最小者。
第二章 程序的灵魂——算法
一、选择题
1、以下不能正确计算代数式
值的C语言表达式是()
A)1/3*sin(1/2)*sin(1/2)B)sin(0.5)*sin(0.5)/3
C)pow(sin(0.5),2)/3D)1/3.0*pow(sin(1.0/2),2)
2、算法具有五个特性,以下选项中不属于算法特性的是()
A)有穷性B)简洁性C)可行性D)确定性
3、一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是()
A)有零个或多个输入B)有零个或多个输出
C)有穷性D)可行性
4、与数学式子
对应的C语言表达式是()
A)3*x^n(2*x-1)B)3*x*n/(2*x-1)
C)3*pow(x,n)*(1/(2*x-1))D)3*pow(n,x)/(2*x-1)
二、填空题
1、在程序中要指定数据的类型和数据的组织形式,也就是。
2、算法是对的描述。
3、计算机算法可以分为和。
4、循环结构可分为和。
三、编程题
1、依次将10个数输入,要求将其中最小的数打印出来,并画出其流程图。
2、求6!
的算法并用N-S流程图表示。
3、写出判定2010-2500年中属于闰年的算法,并画出其流程图。
4、写出将1-500之间的素数打印出来的算法,并画出其流程图。
5、用C语言表示两个m和n的最大公约数,并画出其流程图。
6、用C语言表示求即(1+2+3+...+100),并画出其流程图。
第三章 数据类型、运算符与表达式
一、选择题
1、在C语言中,不正确的int类型的常数是()
A)32768B)0C)037D)0xAF
2、以下选项中合法的字符常量是()
A)”B”B)'\010'C)-268D)D
3、以下选项中,不能作为合法常量的是()
A)1.234e04B)1.234e0.4C)1.234e+4D)1.234e0
4、下列选项中,合法的C语言关键字是()
A)VARB)cherC)integerD)default
5、有以下定义语句doublea,b;intw;longc;
若各变量已正确赋值,则下列选项中正确的表达式是()
A)a=a+b=b++B)w%(int)a+b
C)(c+w)%(int)aD)w=a==b;
6、若有定义:
inta=8,b=5,c;,则执行语句c=a/b+0.4;后,c的值为()
A)1.4B)1C)2.0D)2
7、以下选项中合法的用户标识符是()
A)longB)_2TestC)3DmaxD)A.dat
8、若变量a是int类型,并执行了语句:
a='A'+1.6;,则正确的叙述是()
A)a的值是字符CB)a的值是浮点型
C)不允许字符型和浮点型相加D)a的值是字符'A'的ASCII值加上1
9、设有定义:
floata=2,b=4,h=3;,以下C语言表达式与代数式计算结果不相符的是()
A)(a+b)*h/2B)(1/2)*(a+b)*h
C)(a+b)*h*1/2D)h/2*(a+b)
10、以下选项中非法的表达式是()
A)0<=x<100B)i=j==0C)(char)(65+3)D)x+1=x+1
11、若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是()
A)1B)2C)2.0D)2.5
12、能正确表示逻辑关系:
“a≥10或a≤0”的C语言表达式是()
A)a>=10ora<=0B)a>=0|a<=10C)a>=10&&a<=0D)a>=10‖a<=0
13、当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是()
A)c=b=a;B)(a=c)||(b=c);
C)(a=c)&&(b=c);D)a=c=b;
14、能正确表示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
15、语句:
printf("%d",(a=2)&&(b=-2));的输出结果是()
A)无输出B)结果不确定C)-1D)1
16、设有intx=11;则表达式(x++*1/3)的值是()
A)3B)4C)11D)12
17、设intx=1,y=1;表达式(!
x||y--)的值是()
A)0B)1C)2D)-1
18、C语言中运算对象必须是整型的运算符是()
A)%=B)/C)=D)〈=
19、已定义ch为字符型变量,以下赋值语句中错误的是()
A)ch="\";B)ch=62+3;C)ch=NULL;D)ch="\xaa";
20、有以下程序
voidmain()
{ intm=12,n=34;
printf("%d%d",m++,++n);
printf("%d%d\n",n++,++m);
}
程序运行后的输出结果是()
A)12353514B)12353513C)12343514D)12343513
21、以下程序的输出结果是()
voidmain()
{inta=4,b=5,c=0,d;
d=!
a&&!
b||!
c;
printf("%d\n",d);
}
A)1B)0C)非0的数D)-1
22、以下选项中不属于C语言的类型的是()
A)signedshortintB)unsignedlongint
C)unsignedintD)longshort
23、有以下定义语句doublea,b;intw;longc;
若各变量已正确赋值,则下列选项中正确的表达式是()
A)a=a+b=b++B)w%(int)a+b)
C)(c+w)%(int)aD)w=a==b;
24、有以下程序
voidmain()
{chara='a',b;
print("%c,",++a);
printf("%c\n",b=a++);
}
程序运行后的输出结果是()
A)b,bB)b,cC)a,bD)a,c
25、下列程序执行后的输出结果是()
A)-32767B)FFFEC)255D)-32768
voidmain()
{charx=0xFFFF;printf("%d\n",x--);}
二、填空题
1、以下程序运行后的输出结果是。
voidmain()
{inta,b,c;
a=25;
b=025;
c=0x25;
printf("%d %d %d\n",a,b,c);
}
2、若有语句
inti=-19,j=i%4;
printf("%d\n",j);
则输出结果是 。
3、以下程序输出的结果是。
voidmain()
{inta=5,b=4,c=3,d;
d=(a>b>c);
printf("%d\n",d);
}
4、设y是int型变量,请写出判断y为奇数的关系表达。
5、以下程序的输出结果是。
voidmain()
{unsignedshorta=65536;intb;
printf(“%d\n”,b=a);
}
6、有定义:
inta=10,b=9,c=8;接着顺序执行下列语句后,变量b中的值是________。
c=(a-=(b-5));
c=(a%11)+(b=3);
7、表示“整数x的绝对值大于5”时值为“真”的C语言表达式是_____________。
8、有如下程序段
inta=14,b=15,x;
charc='A';
x=(a&&b)&&(c<'B');
执行该程序段后,x的值为。
9、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是。
10、语句:
x++;、++x;x=x+1;、x=l+x;,执行后都使变量x中的值增1,请写出一条同一功能的赋值语句(不得与列举的相同)。
11、数字字符0的ASCII值为48,若有以下程序
voidmain()
{ char a='1',b='2';
printf("%c,",b++);
printf("%d\n",b-a);
}
程序运行后的输出结果是。
12、voidmain()
{
printf("\101\x42C\n");
printf("Isay:
\"Howareyou?
\"\n");
printf("\\CProgram\\\n");
printf("Turbo\'C\'");
}
程序运行后的输出结果是。
13、#definePRICE12.5
voidmain()
{intnum=3;
floattotal;
charch1,ch2=‘D’;
total=num*PRICE;
ch1=ch2-‘A’+‘a’;
printf(“total=%f,ch1=%c\n”,total,ch1);}
程序运行后的输出结果是。
14、#include
voidmain()
{intx,y=7;
floatz=4;
x=(y=y+6,y/z);
printf("x=%d\n",x);
}
程序运行后的输出结果是。
15、下列程序的输出结果是。
voidmain()
{doubled=3.2;intx,y;
x=1.2;y=(x+3.8)/5.0;
printf("%d\n",d*y);
}
三、求下列表达式的值
1、设x=2.5,a=7,y=4.7,x+a%3*(int)(x+y)%2/4
2、设a=2,b=3,x=3.5,y=2.5(float)(a+b)/2+(int)x%(int)y
3、设a=24,①a+=a-=a*=a②a/=a+a③a%=(n%=2),n的值等于5
四、编程题
要将“Glmre”进行解密,解密的规则是:
用原来的字母前面第4个字母代替原来的字母,例如:
字母”E“前面的字母是”A“,用“A”代替“E”。
因此“Glmre”应解密为“China”。
请编一程序,用赋处值的方法使c1,c2,c3,c4,c5五个变量的值分别为’G’、’l’、’m’、’r’、’e’经过运算,是c1,c2,c3,c4,c5分别变成‘C’、‘h’、‘i’、‘n’、‘a’,并输出。
第四章 最简单的程序设计——顺序程序设计
一、选择题
1、以下叙述中错误的是()
A)C语句必须以分号结束
B)复合语句在语法上被看作一条语句
C)空语句出现在任何位置都不会影响程序运行
D)赋值表达式末尾加分号就构成赋值语句
2、以下叙述中正确的是()
A)C语言的源程序不必通过编译就可以直接运行
B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令
C)C源程序经编译形成的二进制代码可以直接运行
D)C语言中的函数不可以单独进行编译
3、以下能正确定义且赋初值的语句是()
A)intn1=n2=10;B)charc=32;
C)floatf=f+1.1;D)doublex=12.3E2.5;
4、有以下程序
voidmain()
{chara1='M',a2='m';
printf("%c\n",(a1,a2));
}
以下叙述中正确的是()
A)程序输出大写字母MB)程序输出小写字母m
C)格式说明符不足,编译出错D)程序运行时产生出错信息
5、以下程序段的输出结果是()
inta=1234;
printf("%2d\n",a);
A)12B)34C)1234D)提示出错、无结果
6、以下程序的输出结果是()
voidmain()
{inta=5,b=4,c=6,d;
printf("%d\n",d=a>b?
(a>c?
a:
c):
(b));
}
A)5B)4C)6D)不确定
7、下列程序执行后的输出结果是(小数点后只写一位)()
A)666.06.0B)666.76.7C)666.06.7D)666.76.0
voidmain()
{doubled;floatf;longl;inti;
i=f=l=d=20/3;
printf("%d%ld%f%f\n",i,l,f,d);
}
8、语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是()(说明:
'\b'是退格符)
A)a\bre\'hi\'y\\\bouB)a\bre\'hi\'y\bou
C)re'hi'you D)abre'hi'y\bou
9、有如下程序
voidmain()
{inty=3,x=3,z=1;
printf("%d%d\n",(++x,y++),z+2);
}
运行该程序的输出结果是()
A)34B)42C)43D)33
10、若变量已正确说明为float类型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:
()
A)10<回车>22<回车>33<回车>B)10.0,22.0,33.0<回车>
C)10.0<回车>22.0 33.0<回车>D)10 22<回车>33<回车>
二、填空题
1、以下程序运行后的输出结果是。
voidmain()
{charc;intn=100;
floatf=10;doublex;
x=f*=n/=(c=50);
printf("%d%f\n",n,x);
}
2、以下程序运行后的输出结果是。
voidmain()
{charm;
m=‘B’+32;printf("%c\n",m);
}
3、以下程序运行后的输出结果是。
voidmain()
{intx=0210;
printf("%X\n",x);
}
4、以下程序运行时若从键盘输入:
10 20 30<回车>。
输出结果是。
#include
voidmain()
{ int i=0,j=0,k=0;
scanf("%d%*d%d",&i,&j,&k);
printf("%d,%d,%d\n",i,j,k);
}
5、已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:
B33<回车>.输出结果是。
#include"stdio.h"
voidmain()
{chara,b;
a=getchar();scanf("%d",&b);
a=a-'A'+'0';
b=b*2;
printf("%c %c\n",a,b);
}
6、有以下程序
#include
voidmain()
{charch1,ch2;intn1,n2;
ch1=getchar();ch2=getchar();
n1=ch1-‘0’;n2=n1*10+(ch2-‘0’);
printf(“%d\n”,n2);
}
程序运行时输入:
12<回车>,执行后输出结果是。
7、以下程序的输出结果是___________________。
voidmain()
{inta=177;
printf("%o\n",a);
}
8、以下程序的输出结果是___________________。
voidmain()
{inta=5,b=4,c=3,d;
d=(a>b>c);
printf("%d\n",d);
}
9、以下程序的输出结果是______________。
voidmain()
{inta=1,b=2;
a=a+b;b=a-b;a=a-b;
printf("%d,%d\n",a,b);
}
10、下列程序的输出结果是16.00,请填空。
voidmain()
{inta=9,b=2;
floatx=_________,y=1.1,z;
z=a/2+b*x/y+1/2;
printf("%5.2f\n",z);
}
11、已有定义inta;floatb,x;charc1,c2;为使a=3,b=6.5,x=12.6,c1=’a’,c2=’A’,正确的scanf函数调用语句是,输入数据的方式。
三、编程题
1、设圆的半径r=2.5,圆柱高h=5,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。
用scanf输入数据,输出计算结果,输出时要有文说明,取小数点后2位数字。
请编程实现。
2、输入一个华氏温度,要求输出摄氏温度,公式为c=5/9(F-32),输出要有文字说明,取2位小数。
第五章 选择结构程序设计
一、选择题
1、设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为()
A)0B)1C)2D)3
2、若整型变量a、b、c、d中的值依次为:
1、4、3、2。
则条件表达式a
a:
c c: d的值是() A)1 B)2 C)3 D)4 3、有以下程序 voidmain()
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言程序设计 语言程序设计 习题集