《c语言程序设计练习题.doc》由会员分享,可在线阅读,更多相关《c语言程序设计练习题.doc(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C语言程序设计练习题一、单项选择题单项选择题要求从给出的四个备选答案中,选出一个最符合题意的答案。本类习题主要检查对C语言基本概念的掌握情况。在完成习题的过程中,不但要选出正确的答案,而且要清楚不正确的选项错在何处,以加深对概念的理解。对于掌握不准的问题,应该通过上机实验来检验。1下列四组字符串中都可以用作C语言程序标识符的一组是_。 A) print B) iam C) Pxq D) str_l _3d one_half My-book Cpp oodb start$it line# pow aBc 3pai His.age while2C语言程序从main()函数开始执行,所以这个函数要写
2、在_。A) 程序文件的开始 B) 程序文件的最后C) 它所调用的函数的前面 D) 程序文件的任何位置3下列关于C语言的叙述错误的是_。A) 大写字母和小写字母的意义相同B) 不同类型的变量可以在一个表达式中C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义4在C语言中,错误的int类型的常数是_。A) 32768 B) 0 C) 037 D) 0xAF5已知 long i=65539;执行语句printf(%d,i);屏幕显示_。A) 65539 B) -3 C) 3 D) 程序不能执行6在C语言中,整数-8在内存中的存储形式是_
3、。A) 1111 1111 1111 1000 B) 1000 0000 0000 1000 C) 0000 0000 0000 1000 D) 1111 1111 1111 01117C语言中字符型(char)数据在内存中的存储形式是_。A) 原码 B) 补码 C) 反码 D) ASCII码8将字符g赋给字符变量c,正确的表达式是_。A) c=147 B) c=147 C) c=147 D) c=01479已知:char a;int b;float c;double d;执行语句c=a+b+c+d;后,变量c的数据类型是_。A) int B) char C) float D) double1
4、0温度华氏和摄氏的关系是: C=-(F-32)。已知:float C,F;由华氏求摄氏正确的赋值表达式是_A) C=5/9(F-32) B) C=5*(F-32)/9 C) C=5/9*(F-32) D) 三个表达式都正确11逗号表达式(a=3*5,a*4),a+15的值是_。A) 15 B) 60 C) 30 D) 不确定12如果int a=1,b=2,c=3,d=4;则条件表达式ab?a:cd?c:d的值是_。A) 1 B) 2 C) 3 D) 413已知int i=10;表达式20-0=i=9的值是_。A) 0 B) 1 C) 19 D) 2014使用语句scanf(x=%f,y=%f,
5、&x,&y);输入变量x、y的值(代表空格),正确的输入是_。A) 1.25,2.4 B) 1.252.4 C) x=1.25,y=2.4 D) x=1.25y=2.4后面还有好多题。这套题在百度里能搜出来。就是没有答案。晕啊。拜托大家帮帮忙吧。 谢谢了。问题补充:15已知int x=(1,2,3,4);变量x的值是_。A) 1 B) 2 C) 3 D) 416已知int i=1,j=0;执行下面语句后j的值是_。while(i)switch(i) case 1: i+=1;j+;break;case 2: i+=2;j+;break;case 3: i+=3;j+;break;default
6、: i-;j+;break;A) 1 B) 2 C) 3 D) 死循环最佳答案1A(B 中第四个选项首行是数字,D选型有关键字) 2D 3A 4A 5C(我在TC上运行的) 6A 7D 8D(0147是8进制转换成十进制即103即g) 9D(属自动类型转换) 10 D 11C 12A(条件运算符运算方式是从右向左的) 13B(算术运算符-的优先级高于关系运算符3?2:13. 下面哪一项是不正确的字符串赋值或赋初值的方法( )A. char *str; str= “china”; B. char str7= c, h, i, n, a; C. char str1= “china”,str2=“1
7、23”;D. char str110; str1= “china”;4. 以下对二维数组a进行正确初始化的是( )A. int a23=1,2,3,4,5,6; B. int a 3=1,2,3,4,5,6;C. int a2 =1,2,3,4,5,6; D. int a2 =1,2,3,4;5. 选出下列标识符中不是合法的标识符的是( ) A. hot_do B. cat1 C. _pri D. 2ab6. 以下说法中正确的是( )A. C语言程序总是从第一个的函数开始执行B. 在C语言程序中,要调用的函数必须在main()函数中定义C. C语言程序总是从main()函数开始执行D. C语言
8、程序中的main()函数必须放在程序的开始部分7. 若已定义:int a9, *p=a;并在以后的语句中未改变p的值,不能表示a1地址的表达式为( )A. p+1 B. a+1 C. a+ D. +p8. 若有说明: int i,j=7, *p=&i;, 则与i=j; 等价的语句是( )A. i= *p; B. *p=*&j; C. i=&j; D. i=* *p;9. 若变量c为char类型,能正确判断出c为小写字母的表达式是( )A. a=c= a) | (c= z)C. (a=c) D. (c= a) & (c= z)10. 以下程序的输出结果是( )main() int a=1,2,3
9、,4,5,6,7,8,9, *p;p=a;*(p+3)+=2;printf( “%d,%dn”,*p,*(p+3) ); A. 0, 5 B. 1, 6 C. 1, 5 D. 0, 6 11. 以下程序的输出结果是( ) main() int a=5;float x=3.14;a*=x*(E- A);printf(“%fn”,(float)a); A. 62. B. 62. C. 63. D. 6212. 以下程序的输出结果是( )#define f(x) x*xmain() int a=6,b=2,c;c=f(a)/f(b);printf(“%dn”,c); A. 9 B. 6 C. 36
10、D. 1813. 定义如下变量和数组:int i; int x33=1,2,3,4,5,6,7,8,9;则语句for(i=0;i3;i+) printf(%d ,xi2-i); 的输出结果是( )A. 1 5 9 B. 1 4 7 C. 3 5 7 D. 3 6 9 14. 下列程序段的输出结果是 ( )void main( ) int k;for (k=1;k5;k+) if(k%2!=0) printf( “#” );else printf(“*”) ; A. #*#* B . *#*# C. # D. *15. 下列程序执行后输出的结果是( )int d=1;fun (int p) in
11、t d=5;d + =p + +;printf(%d,d); main( ) int a=3;fun(a);d + = a + +;printf(%dn,d); A. 8, 4 B. 9, 6 C. 9, 4 D. 8, 5二. 填空题(共7题,每空2分,共30分)1. 数组 int a35; 共定义了_个元素。2. 有float f=3.; 则 printf(“%5.4f”, f );输出的结果是_。3. 下面程序的功能是:输出 100以内(不包含100)能被 3整除且个位数为 6的所有整数,请填空。main( ) int i;for(i=1; _; i+)if (_) printf(%d,
12、 i); 4. 设有“int x=2, y”说明,则逗号表达式“y=x+5,x+y”的值是 _5. 以下是使用指针,进行字符串复制的程序,请填空。main() char a= “Tsinghua University”, b30, *p1,*p2;p1=a;p2=b;for(; *p1!= _; p1+, p2+) _=_; *p2= _;printf(“string a is:%sn”,a);printf(“string b is:%sn”,b);6. 下面程序用冒泡法对数组a进行降序排序,请填空。main() int a5=4,7,2,5,1; int i,j,m; for(i=0;i4;
13、i+) for(j=0;j_;j+) if( _ _ ) m=a j; a j=a j+1; a j+1= m; for(i=0;i5;i+) printf(%d ,ai); 7. 函数fun的功能是:使一个字符串按逆序存放,请填空。void fun (char str) char m; int i,j; for(i=0,j=strlen(str);i_;i+,j-) m=stri; stri= _; strj-1=m; printf(the rotated string is %sn,_); c程序设计试题一、 填空题:(每空2分,共50分)1、非解释性程序的编写过程一般是:先编辑生成源程序
14、,再将源程序 编译生成目标码,再连接生成可执行程序。在DOS或WINDOWS环境中生成的可执行程序的扩展名是.exe,在UNIX中生成的可执行文件名默认是a.out 。2、字符1的ASCII码的二进制是,十进制是049 。3、27.5可转换为二进制数11011.1、八进制数33.4、十六进制数1B.8。4、t=x; x=y; y=t;这段代码的意思是交换X和Y中的内容。5、每个内存单元都有一个唯一的编号,称为_地址_。6、1KB内存最多可以保存_1024 _个ASCII码,512个汉字机内码,32个16X16点阵的汉字字形码。7、数学表达式可写为逻辑表达式x2&x=3.8、目前大多数个人电脑是
15、32位的计算机。在64位的alpha工作站中,可以表示的最大整数是 264-1。9、程序设计方法一般分为面向对象程序设计方法和结构化程序设计方法。10、恶性计算机病毒是一种认为制造的恶意代码,病毒的特征之一是一般不以文件的形式存在。11、数据库可以描述为一个二维表,表的每一列是数据库结构中的一个字段,表的每行是数据库的一条纪录;SQL是结构化查询语言。12、对于程序员来说,使用汇编语言语言编程是最无法忍受的。二、 选择题:(每题3分,共15分)1、计算机最早应用于(26)A科学计算 B.数据处理 C.过程控制 D.计算机辅助2、信息在计算机中是用_(27)_表达的。A模拟数字 B.十六进制 C
16、.二进制 D.抽象数字3、Dos是_(28)_操作系统。A.单用户多任务 B.多用户单任务 C.多用户多任务D.单用户单任务4、计算机硬件系统最核心的部件是CPU,它由_(29)_构成。A.运算器、控制器和存储器 B.控制器和运算器C. RAM和ROM D.主板5、计算机的内存容量基本单位是_(30)_。A.字符 B.字节 C.二进制位 D.扇区三、 简答题:(每题5分,共25分)1、简述编程的一般步骤是什么?编辑、编译、连接、运行2、列举至少5种数据类型的中、英文名。整型:int 实型float 字符型char 数组 arrarry 双精度实型:double float3、简述一种排序方法及
17、其过程。一,直接插入排序直接插入排序的基本思想是:当插入第i(i1)个对象时前面的V0,V1,Vi-1已经排好序.这时,用Vi的排序码与Vi-1, Vi-2,的排序码顺序进行比较,找到插入位置即将Vi插入,原来位置上的对象向后移.二,折半插入排序折半插入排序的基本思想是:设在顺序表中有一个对象序列V0,V1,Vn-1.其中V0,V1,Vi-1是已经排好序的对象.在插入Vi时,利用折半搜索寻找Vi的位置.4、简述解释程序与编译程序的区别。解释是读一行解释一行,然后再执行,执行完后,再读下一行,然后再解释一下再执行。下次再执行时还要解释。编译的话就是只要编译一次,下次再执行是就不用再解释了,相对来说速度较快。5、简述面向对象的程序设计方法的特点。面向对象的程序设计方式,以对象为中心,将数据和程序捆绑在一起,封装在对象之中,淡化了解决问题的过程程序.面向对象程序设计方法是一种支持模块化设计和软件重用的编程方法.它把程序设计的主要活动集中在建立对象和对象之间的联系上,所以说一个面向对象的程序就是相互关联的对象的集合.面向对象程序设计的基本思想是封装性和可扩展性.
限制150内