ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:25.44KB ,
资源ID:8786999      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-8786999.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《C语言程序设计》练习题参考答案.docx)为本站会员(b****5)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

《C语言程序设计》练习题参考答案.docx

1、C语言程序设计练习题 参考答案C语言程序设计练习题一、单项选择题单项选择题要求从给出的四个备选答案中,选出一个最符合题意的答案。本类习题主要检查对C语言基本概念的掌握情况。在完成习题的过程中,不但要选出正确的答案,而且要清楚不正确的选项错在何处,以加深对概念的理解。对于掌握不准的问题,应该通过上机实验来检验。1下列四组字符串中都可以用作语言程序标识符的一组是_ A _。 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语言程序从mai

2、n()函数开始执行,所以这个函数要写在_ D _。A) 程序文件的开始 B) 程序文件的最后C) 它所调用的函数的前面 D) 程序文件的任何位置3下列关于C语言的叙述错误的是_ A _。A) 大写字母和小写字母的意义相同B) 不同类型的变量可以在一个表达式中C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义4在C语言中,错误的int类型的常数是_ A _。A) 32768 B) 0 C) 037 D) 0xAF5已知 long i=65539;执行语句printf(%d,i);屏幕显示_ A _。A) 65539 B) -3 C)

3、 3 D) 程序不能执行6在语言中,整数-8在内存中的存储形式是_ A _。A) 1111 1111 1111 1000 B) 1000 0000 0000 1000C) 0000 0000 0000 1000 D) 1111 1111 1111 01117语言中字符型(char)数据在内存中的存储形式是_ D _。A) 原码 B) 补码 C) 反码 D) ASCII码8将字符g赋给字符变量c,正确的表达式是_ 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;后,变量

4、c的数据类型是_ C _。A) int B) char C) float D) double10温度华氏和摄氏的关系是: C=5(F-32)/9。已知:float C,F;由华氏求摄氏的正确的赋值表达式是_ B _。A) C=5/9(F-32) ) C=5*(F-32)/9 C) C=5/9*(F-32) D) 三个表达式都正确11逗号表达式(a=3*5,a*4),a+15的值是_ C _。A) 15 B) 60 C) 30 D) 不确定12如果int a=1,b=2,c=3,d=4;则条件表达式ab?a:cd?c:d的值是_ A _。A) 1 B) 2 C) 3 D) 413已知int i=

5、10;表达式20-0=i=9的值是_ B _。A) 0 B) 1 C) 19 D) 2014使用语句scanf(x=%f,y=%f,&x,&y);输入变量x、y的值(代表空格),正确的输入是_ C _。A) 1.25,2.4 B) 1.252.4 C) x=1.25,y=2.4 D) x=1.25y=2.415已知int x=(1,2,3,4);变量x的值是_ D _。A) 1 B) 2 C) 3 D) 416已知int i=1,j=0;执行下面语句后j的值是_ D _。while(i)switch(i) case 1: i+=1;j+;break;case 2: i+=2;j+;break;

6、case 3: i+=3;j+;break;default: i-;j+;break;A) 1 B) 2 C) 3 D) 死循环17求取满足式 12+22+32+ +n2 1000的n,正确的语句是_ A _。A) for(i=1,s=0;(s=s+i*i)=1000;n=i+) ; B) for(i=1,s=0;(s=s+i*i)=1000;n=+i) ;C) for(i=1,s=0;(s=s+i*+i)=1000;n=i) ; D) for(i=1,s=0;(s=s+i*i+)0)&(x4);x+,y- ) ;A) 是无限循环 B) 循环次数不定 C) 循环执行4次 D) 循环执行3次19

7、已知 char a20=Beijing,shanghai,tianjin,chongqing;语句printf(%c,a30);的输出是_ C _。A) B) n C) 不定 D) 数组定义有误20对二维数组的正确说明是_ C _。A) int a=1,2,3,4,5,6; B) int a2=1,2,3,4,5,6;C) int a3=1,2,3,4,5,6; D) int a2,3=1,2,3,4,5,6;21对字符数组str赋初值,str不能作为字符串使用的一个是_ D _。A) char str=shanghai;B) char str=shanghai; C) char str9=s

8、,h,a,n,g,h,a,i;D) char str8= s,h,a,n,g,h,a,i;22如果一个变量在整个程序运行期间都存在,但是仅在说明它的函数内是可见的,这个变量的存储类型应该被说明为_ A _。A) 静态变量 B) 动态变量 C) 外部变量 D) 内部变量23在一个C源程序文件中,若要定义一个只允许在该源文件中所有函数使用的变量,则该变量需要使用的存储类别是_ D _。A) extern B) register C) auto D) static24定义一个函数实现交换x和y的值,并将结果正确返回。能够实现此功能的是_ C _。A) swapa(int x,int y) B) sw

9、apb(int *x,int *y) int temp; int temp;temp=x;x=y;y=temp; temp=x;x=y;y=temp; C) swapc(int *x,int *y) D) swapd(int *x,int *y) int temp; int *temp;temp=*x;*x=*y;*y=temp; temp=x;x=y;y=temp; 25在下列结论中,只有一个是错误的,它是_ C _。A) 语言允许函数的递归调用B) 语言中的continue语句,可以通过改变程序的结构而省略C) 有些递归程序是不能用非递归算法实现的 D) C语言中不允许在函数中再定义函数2

10、6说明语句int (*p)( );的含义是_ C _。A) p是一个指向一维数组的指针变量B) p是指针变量,指向一个整型数据C) p是一个指向函数的指针,该函数的返回值是一个整型D) 以上都不对27设有说明int (*p)4;其中的标识符p是_ C _。A) 4个指向整型变量的指针变量B) 指向4个整型变量的函数指针C) 一个指向具有4个整型元素的一维数组的指针D) 具有4个指向整型变量的指针元素的一维指针数组28已知:char s10, *p=s,则在下列语句中,错误的语句是_ B _。A) p=s+5; B) s=p+s; C) s2=p4; D) *p=s0;29已知:int a43=

11、1,2,3,4,5,6,7,8,9,10,11,12;int (*ptr)3=a,*p=a0;则以下能够正确表示数组元素a12的表达式是_ C _。A) *(*(a+1)+2) B) *(*(p+5) C) (*ptr+1)+2 D) *(ptr+1)2)30已知:int a =1,2,3,4,5,6,7,8,9,10,11,12,*p=a;则值为3的表达式是_ A C _。A) p+=2,*(p+) B) p+=2,*+p C) p+=2,*p+ D) p+=2,+*p32函数的功能是交换变量x和y中的值,且通过正确调用返回交换的结果。能正确执行此功能的函数是_ D _。A) funa (i

12、nt *x, int *y) B) funb (int x, int y) int *p; int t;p=x;*x=*y;*y=*p; t=x;x=y;y=t; C) func (int *x, int *y) D) func (int *x, int *y) *x=*y;*y=*x; *x=*x+*y;*y=*x-*y;*x=*x-*y; 33有定义如下:struct sk int a;float b;data ,*p;如果 p=&data;则对于结构变量data的成员a的正确引用是_ B _。A)(*).data.a B) (*p).a C) p-data.a D) p.data.a34

13、已知:struct st int n;struct st *next;static struct st a3=1,&a1,3,&a2,5,&a0,*p;如果下述语句的显示是2,则对p的赋值是_ C _。printf(%d,+(p-next-n);A) p=&a0; B) p=&a1; C) p=&a2; D) p=&a3;35fscanf函数的正确调用形式是_ D _。A) fscanf (文件指针, 格式字符串, 输出列表);B) fscanf (格式字符串, 输出列表, 文件指针);C) fscanf (格式字符串, 文件指针, 输出列表);D) fscanf (文件指针, 格式字符串,

14、输入列表);36使用fgetc函数,则打开文件的方式必须是_ C _。A) 只写 B) 追加 C) 读或读/写 D) 参考答案B和C都正确37已知宏定义#define N 3#define Y(n) (N+1)*n)执行语句z=2*(N+Y(5+1);后,变量z的值是_ B _。A) 42 B) 48 C) 52 D) 出错38已知宏定义 #define SQ(x) x*x,执行语句printf(%d,10/SQ(3);后的输出结果是_ C_。A) 1 B) 3 C) 9 D) 10二、 阅读程序题阅读程序对于初学者来说很重要,一方面可以巩固所学的语法知识,另一方面通过阅读别人写好的程序来打开

15、自己的思路,就所谓见多识广。通过阅读理解程序,从给出的四个备选参考答案中,选择程序的正确输出。如果选择有误,就要认真分析原因,是概念方面的错误还是对程序逻辑理解不对,从而加深对语法规则的理解,提高程序设计能力。程序设计语言是开发程序的一个工具,学习语言的目的是为了编写程序来解决实际问题,所以特别提倡通过实际上机来检验备选答案,增强动手能力。1下面程序的输出结果是_ B _。#include main( ) int x=10; int x=20;printf (%d,, x);printf(%dn, x);A) 10,20 B) 20,10 C) 10,10 D) 20,202以下程序的输出结果

16、是_ D_。 main( ) int x=10, y=10; printf(%d %dn, x, y);A) 10 10 B) 9 9 C) 9 10 D) 10 93下面程序可能的输出结果是_ A C _。main() int a,b;scanf(%2d%3d,&a,&b);printf(a=%d b=%dn,a,b);A) a=12 b=34 B) a=123 b=45 C) a=12 b=345 D) 语句右错误4以下程序段的输出结果是_ B _。 int a=10,b=50,c=30;if(ab)a=b;b=c;c=a;printf(a=%d b=%d c=%dn,a,b,c);A)

17、a=10 b=50 c=10 B) a=10 b=30 c=10C) a=50 b=30 c=10 D) a=50 b=30 c=505以下程序的输出结果是_ C _。 main() int a=0,b=1,c=0,d=20;if(a) d=d-10;else if(!b)if(!c) d=15;else d=25;printf(d=%dn,d);A) d=10 B) d=15 C) d=20 D) d=256下面程序的输出结果为_ B _。main() int a=1,b=0;switch(a) case 1: switch (b) case 0: printf(*0*); break;ca

18、se 1: printf(*1*); break;case 2: printf(*2*); break;A) *0* B) *0*2* C) *0*1*2* D) 有语法错误7以下程序的输出结果是_ D _。 main() char *s=12134211;int v1=0,v2=0,v3=0,v4=0,k;for(k=0;sk;k+)switch(sk) case 1: v1+;case 3: v3+;case 2: v2+;default: v4+;printf(v1=%d, v2=%d, v3=%d, v4=%dn,v1,v2,v3,v4);A) v1=4,v2=2,v3=1,v4=1

19、B) v1=4,v2=9,v3=3,v4=1C) v1=5,v2=8,v3=6,v4=1 D) v1=4,v2=7,v3=5,v4=88下面程序的输出是_ B _。main() int num=0;while(num=2) num+;printf(%dn,num);A) 1 B) 1 C) 1 D) 12 2 23 349从键盘上输入446755时,下面程序的输出是_ C _。#include main() int c;while(c=getchar()!=n)switch(c -2) case 0:case 1: putchar(c+4);case 2: putchar(c+4);break

20、;case 3: putchar(c+3);default: putchar(c+2);break;printf(n);A) 888988 B) 668966 C) 88898787 D) 6689878710下面程序的输出结果是_A_。main() int i,j,x=0;for(i=0;i2;i+) x+;for(j=0;j-3;j+) if(j%2)continue;x+;x+;printf(x=%dn,x);A) x=4 B) x=8 C) x=6 D) x=1211下面程序的输出结果是_ C _。#include main( ) int n33, i, j;for(i=0;i3;i+

21、 )for(j=0;j3;j+ )nij=i+j;for(i=0;i2;i+ )for(j=0;j2;j+ )ni+1j+1+=nij;printf(%dn, nij);A) 14 B) 0 C) 6 D) 不确定12下面程序的输出结果是_ a13= -3_。#include main( ) int a45=1,2,4,-4,5,-9,3,6,-3,2,7,8,4;int i,j,n;n=9;i=n/5;j=n-i*5-1;printf(a%d%d=%dn, i,j,aij);A) 6 B) -3 C) 2 D) 不确定 13下面程序的输出结果是_ D_。#include main( ) ch

22、ar s150=some string *,s2=test;printf(%sn, strcat(s1,s2);A) some string * B) testC) some stritest D) some string *test14下面程序的输出结果是_ B_。#include f(char *s) char *p=s;while(*p!=0)p+;return(p-s);main() printf(%dn,f(ABCDEF);A) 3 B) 6 C) 8 D) 015下面程序的输出结果是_ D _。#include #include main( ) char str100 =How d

23、o you do;strcpy( str + strlen(str)/2, es she);printf(%sn, str);A) How do you do B) es she C) How are you D) How does she16下面程序的输出结果是_C_。#include func(int a,int b) int c;c=a+b;return(c);main() int x=6,y=7,z=8,r;r=func(x-,y+,x+y),z-);printf(%dn,r);A) 11 B) 20 C) 21 D) 3117下面程序的输出结果是_A_。main() int a=1,

24、2,3,4,5,6;int *p;p=a;printf(%d ,*p);printf(%d ,*(+p);printf(%d ,*+p);printf(%d ,*(p-); p+=3;printf(%d %d ,*p,*(a+3); A) 1 2 3 3 5 4 B) 1 2 3 4 5 6 C) 1 2 2 3 4 5 D) 1 2 3 4 4 518下面程序的输出结果是_A_。#include main ( ) int a=1, 2, 3, 4, 5 ;int x, y, *p;p=&a0;x=*(p+2);y=*(p+4);printf(%d,%d,%dn, *p, x, y);A) 1

25、,3,5 B) 1,2,3 C) 1,2,4 D) 1,4,519下面程序的输出结果是_D _。#include string.hfun(char *w,int n) char t,*s1,*s2;s1=w;s2=w+n-1;while(s1s2) t=*s1+;*s1=*s2-;*s2=t;main() static char p=1234567;fun(p,strlen(p);printf(%s,p);A) 7654321 B) 1717171 C) 7171717 D) 171171720下面程序的输出结果是_ D_。#include char *p = abcdefghijklmnop

26、q ;main( ) int i=0;while( *p+!=e );printf(%cn, *p); A) c B) d C) e D) f21下面程序的输出结果是_ B C_。#include stdio.hstruct str1 char c5;char *s;main( ) struct str1 s12= ABCD,EFGH,IJK,LMN ;struct str2 struct str1 sr;int d;s2=OPQ,RST,32767;struct str1 *p2;p0=&s10;p1=&s11;printf(%s,+p1-s); /* */printf(%c,s2.sr.c

27、2); /* */ A) LMN B) MN C) N D) IJK A) O B) P C) Q D) R22以下程序的输出结果是_D_。struct st int x,*y;*p;int s=10,20,30,40;struct st a=1,&s0,2,&s1,3,&s2,4,&s3;main() p=a;printf(%dn,+(*(+p)-y);A) 10 B) 11 C) 20 D) 21 三、程序填空题在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。 1下面程序的功能是不用第三个变量,实现两个数的对调操作。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2