C程序设计811章测试题答案版本_第1页
C程序设计811章测试题答案版本_第2页
C程序设计811章测试题答案版本_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C程序设计8-11章测试题(04级)姓名一、选择题:(每题3分,共45分)1、以下说法正确的是(b)。建立函数的目的之一是A)提高程序的执行效率。B)提高程序的可读性。C)减少程序的篇幅。D)减少程序文件所占内存。2、以下正确的函数的定义形式是(a)A)doublefun(intx,inty)B)doublefun(intx;inty)C)doublefun(intx,inty);D)doublefun(intx;inty);3、C语言允许函数值类型缺省定义,此时该函数值隐含的类型是(b)A)float型B)int型C)long型D)double型4、关于C语言的函数,下面说法错误的是(c)A

2、)一个源程序文件由一个或多个函数组成B)函数之间可以互相调用,但不能调用main函数C)函数可以嵌套定义D)一个C语言程序是由函数组成的5、C语言规定,简单变量做实参时候,他和对应形参之间的数据传递方式是(bA)地址传递B)单向值传递C)由实参传给形参,再由形参传回给实参D)由用户指定传递方式6、在#definePI3.14159中,用宏名代替一个(d)a)常量b)单精度数c)双精度数d)字符串7、以下有关宏替换的叙述不正确的实(d)a)宏替换不占用运行时间b)宏名无类型c)宏替换只是字符替换d)宏名必须用大写字母表示8、若有以下定义,则对a数组元素地址的正确引用是(b)inta5;int*p

3、=a;A)&a5B)p+2C)a+D)&a9、若有以下定义,则对a数组元素的正确引用是(d)inta5;int*p=a;A)*&a5B)a+2C)*(p+5)D)*(a+2)10、若有说明:int*p,m=5,n;以下正确的程序段是(c)A)p=&n;scanf("%d',&pB)p=&n;scanf("%d',*p);C)scanf("%d,&n);*p=n;D)p=&n;*p=m;11、变量的指针,其含义使指该变量的(b)a)值b)地址c)名d)一个标志12、若有语句int*poi

4、nt,a=4;和point+&a;下面均代表地址的一组选项(d)a)a,point,&ab)&*a,&a,*pointc)*&point,point,&ad)&a,&*point,point13、若有定义:inta23;则对a数组的第i行第j列(假设i,j已正确说明并赋值)元素值的正确引用为(a)d)*(a+i)+ja)*(*(a+i)+j)b)(a+i)jc)*(a+i+j)14、设有如下结构定义:structaddr(charname30;charstreet40;charcity20;charoffice30;charpho

5、ne10;intage;stud;若用printf("%s,访问该结构中name值的正确方法是_(d),用scanf("%d,)访问结构元素age的地址的正确方法是(b)。(A)stud->name(B)&(C)stud.&name(D)(A)stud.&age(B)&stud.age(C)stud.age(D)stud->age二、填空题与简答:(共25分)1、一个变量的地址称为该变量的(指针),如果有一个变量专门存放另一个变量的地址,则它称为(指针变量)2、通过指针变量输出a数组的10个元素

6、。有人编写了如下程序:#include<stdio.h>voidmain()(int*p,i,a10;p=a;for(i=0;i<10;i+)scanf("%d",p+);printf("n");for(i=0;i<10;i+,p+)printf("%d",*p);你知道问题出在哪里吗?(经过第2个循环后,p指针的位置已经变了,不再指向a数组的首地址。)怎么改呢?(在第2个for循环前加个p=a;就可以了,这样使变了的指针乂指向了叔组a的首地址。)请简单叙述。3、*(p+)和*(+p)作用不同,具体有什么区别?

7、请简单叙述。答:(p+)先取*p的值,后使p加1,*(+p)先使p加1,再M*p.4、将字符申a复制为字符申bo#include<stdio.h>voidmain()chara="Iamaboy.”,b20;inti;for(i=0;*(a+i)!='0'i+)(*(b+i)=*(a+i);这里应该填什么?*(b+i)='0'printf("stringais:%sn",a);printf("stringbis:");for(i=0;bi!='0'i+)printf("%c&

8、quot;,bi);printf("n");5、下面程序是对10个整数排序。#include<stdio.h>sort(intx,intn)/函数sort中用数组名做为形参,也可以用指针变量,inti,j,k,t;/如果用指针变量函数的首部可以改成(sort(int*x,intn)for(i=0;i<n-1;i+)k=i;for(j=i+1;j<n;j+)if(xj>xk)k=j;if(k!=i)t=xi;xi=xk;xk=t;voidmain()int*p,i,a10;p=a;for(i=0;i<10;i+)scanf("%d

9、”,p+);p=a;sort(p,10);for(p=a,i=0;i<10;i+)(printf("%d",*p);p+;这里是用的(选择法)对10个整数排序的(选择法还是起泡法)编程题(30分,每题10分):1、写一个判断素数的函数,在主函数输入一个整数,输出是否素数的信息。#include<stdio.h>#include<math.h>voidmain()(intprime(int);函数原型声明intm;printf("nInputaninteger:");scanf("%d",&m);i

10、f(prime(m)printf("n%disaprime.",m);elseprintf("n%disnotaprime.",m);intprime(intn)(intflag=1,i;for(i=2;i<sqrt(n)&&flag=1;i+)if(n%i=0)flag=0;return(flag);2、输入a、b两个整数,按先大后小顺序输出。用指针方法处理。#include<stdio.h>voidmain()int*p1,*p2,*p,a,b;scanf("%d,%d",&a,&

11、b);p1=&a;p2=&b;if(a<b)p=p1;p1=p2;p2=p;printf("na=%d,b=%dnn”,a,b);printf("max=%d,min=%dn”,*p1,*p2);3、假设有一个a数组,整型,有10个元素。用至少以下一种方法输出各元素。(1、下标法2通过数组名计算数组元素地址,找出元素的值3用指针变量指向数组元素0)1下标法#include<stdio.h>voidmain()inta10;inti;for(i=0;i<10;i+)scanf("%d",&ai);printf("n");for(i=0;i<10;i+)printf("%d",ai);2通过数组名计算数组元素地址,找出元素的值#include<stdio.h>voidmain()inta10;inti;for(i=0;i<10;i+)scanf("%d",&ai);printf("n");for(i=0;i<

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论