C语言程序设计-第1-7章选择、填空习题及答案.docx
《C语言程序设计-第1-7章选择、填空习题及答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计-第1-7章选择、填空习题及答案.docx(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、一、选择题C.语句D.字符B.先说明后引用D.引用和说明依次无关B.执行语句之前D.位置无关B.符号语言D.面对对象的语言1. C程序的基本单位是(A)oA.函数B.文件2. C程序中的变量(B )oA.不用说明C.先引用后说明3. 变量的说明在(B )oA.执行语句之后C.执行语句当中4. C语言是一种(C)oA.机器语言C.高级语言二、填空题1. 一个C程序总是从 主函数 起先执行。2 .结构化程序由依次、选择、循环三种基本结构构成。3 . 一个C程序只有一个名为main的主函数。4 . C程序中的每个语句以 分号结束。5 . C程序中,函数由函数首部 和函数体 组成。6 .每个基本结构有
2、一个入口和一个出口,没有死循环和死语句7 .算法是 计算机解决问题所依据的步骤。一、选择题1 .下列数据中属于字符串常量的是(B)oA. ABCB. ABCC.abcD.A2 .在计算机内存中,n占用的字节数是(C)oA. 4B. 3C. 1D. 23 .字符串ABC在内存中占用的字节数是(D)oA. 6B. 8C. 3D. 44 .在C语言中,合法的长整型常数是(B)oA. 568701400 B. 0L5 .char型常量在内存中存放的是(A)oA. ASCH代码值C.十进制代码值6 .下列各项中正确的标识符是(I)。A. ?bbB. a=87 .下列不正确的转义字符是(D)oA. B.
3、0C. 0. 03546287D. 2.654ellB. BCD代码值D.内码值C. b. BD. b_4C. D. 0x4for (i=0;i10;i + +)scanf (,&ai);max=min=a0;for(i=l;i10;i+) if(maxai) min=ai ;)printf (最大值=fn”,max);printf (11最小值=%fn,min);)7.以下程序求二维数组中每行元素的最大值。# include # define M 4# define N 5main () int aM Nramaxz i,j;for(i=0;iM;i+)for (j=0;jN;j+)scan
4、f(d,&ai j);for(i=0;iM;i+) amax=ai0;for (j=l;jamax) amax=ai j; printf(H%d %dn”,i,amax);)习题六一、选择题1.以下叙述不正确的是(I) )oA.B.C.D.一个C源程序可由一个或多个函数组成一个C源程序必需包含一个main。函数C程序的基本组成单位是函数C程序中的注释说明只能位于一条语句的后面2.以下关于C语言函数参数的说法不正确的是(B )oA.实参可以是常量、变量或表达式C.实参可以为随意类型B.形参可以是常量、变量或表达式D.形参应与其对应的实参类型一样3.C语言规定,简洁变量做实参时,它和对应形参之间的
5、数据传递方式是(C )。A.地址传递C.单向值传递B.由实参传给形参再由形参传回给实参D.由用户指定传递方式4.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是(B )oA. float 型B. int 型C. long 型D. double 型5.6.C语言规定,函数返回值的类型是由(A. return语句中的表达式类型所确定C.调用该函数时系统临时确定在C语言程序中,以下正确的描述是()0B.D.)。调用该函数时的主调函数类型所确定 定义函数时所指定的函数类型所确定函数的定义和调用均可以嵌套 函数的定义和调用均不行以嵌套A.函数可以嵌套定义,但不行以嵌套调用B.C.函数不行以嵌套定义
6、,但可以嵌套调用D.7.若用数组名作为函数调用的实参,传递给形参的是(A )oA.数组的首地址B.数组第一个元素的值C.数组中全部元素的值D.数组元素的个数8 .假如在一个函数中的复合语句中定义了一个变量,以下关于该变量正确的说法是(A )。A.只在该复合语句中有效B.在该函数中有效C.在本程序范围内均有效D.为非法变量9 .以下不正确的说法为(D )。A.在不同函数中可以运用相同名字的变量B.形式参数是局部变量C.在函数内定义的变量只在本函数范围内有效D.在函数内的复合语句中定义的变量在本函数范围内有效10 .以下程序的正确运行结果是(A )0#include main () int k=4
7、,m=l,p;p=func(k,m);printf(”d,”,p); p=func(k,m);printf(dn”,p);) func(int a,int b) static int m=0z i=2;i+=m+l; m=i+a+b; return(m);)A. 8, 17B. 8, 16C. 8,20D. 8,811 .在“文件包含”预处理语句的运用形式中,当#include后面的文件名用。(尖括号)括起 时,找寻被包含的文件的方式是(C )o A.仅仅搜寻当前书目B.先在源程序所在书目搜寻,再按系统设定的标准方式搜寻C.干脆按系统设定的标准方式搜寻书目D.仅仅搜寻源程序所在书目12 .以下
8、程序的正确运行结果是(A )0 int d=l;fun (int p) int d=5; d+=p+; printf(”d,d);)main () int a=3; fun(a); d+=a+; printf(dn,d);)A. 84B. 99C. 95D. 4413.若有以下调用语句,则不正确的fun()函数的首部是(D )。 main () .int a50,n; fun(n,&a9);)B. void fun(int s, int h41)I), void fun (int n, int a)A. void fun(int m, int x)C. void fun(int p, int
9、*s)14.下面的程序执行后输出的结果是(A )0f (int a) int b=0;static int c=3;b+;C+;return(a+b+c);main () int a=2,i; for(i=0;i3;i+) printf(n%d )A. 7 8 9B. 7 9 1115 .以下程序执行后的输出结果是(B )o int a, b; void fun() a=100;b=200; main () int a=5,b=7;fun(); printf(n%d,%d n”, a,b);)A. 100,200B. 5,716 .下列不属于编译预处理的是(D )0A.包含文件B.条件编译17
10、 .下列语句中正确的是(D )。A. #define MYNAME二ABCC. for(i=0;i10;i+);18.下列语句中错误的是(A )oA. #define PI = 3. 1415926C. if (2);nzf (a);C.C.C.B.D.7 10 13200,100宏定义includeD.D.D.7,5连接string, hD. ttinclude B. #include math. h for (;)if (1)break;19 .设有以下宏定义,则执行语句“z=2*(N+Y(5+D);”后,z的值为(B )。 #define N 3 #define Y (n)(N+l)*n
11、)A.出错B. 42C. 48D. 5420 .以下程序中的for循环执行的次数是(C )o #include nstdio.hn #define N 2 #define M N+l #define NUM (M+l)*M/2 main () int i,n=0;for (i=l;i=NUM;i + +) printf(Hnn);)A. 5B. 6C. 8D. 9二、填空题1 . C语言中的函数,从能否可以返回值上可分为有返回值 函数和无返回值函数。2 .定义函数时,在函数头中除有函数名称外,还应有函数类型、参数类型和名称等信息。3 .必需对函数定义才能确立函数可实现的功能,只有对函数调用才能
12、实现函数的功能。4 . C语言中,函数的调用有函数语句、函数表达式和函数实参三种方式。5 .C语言中,每个变量都有作用域和生存期,变量的作用域是变量有效范围,变量的生存期 是变量作用域。6 .对函数或变量的上明_是告知系统此程序段要用到在其后面才定义的函数或变量,使函数 或变量的作用域得以扩展。7 . C语言中,变量的存储类型有一种,存储方式有2种。8 .以下程序的输出结果是246。void fun() static int a=0;a+=2; printf(n%dn,a); ) main () int cc;for(cc=l;cc4;cc+) fun() printf (”n);)9 .以下
13、程序的运行结果是111。main () increment();increment(); increment();) increment() int x=0;x+=l; printf(n%dnzx);)10 .以下程序执行后输出的结果是34。#include f (int a) int b=0;static c=3: a=c+,b+; return (a);) main () int a=2,i,k;for(i=0;i2) return(fib(n-1)+fib (n-2); else return(2);) main () printf(n%dnnzfib(3); 12 .以下程序执行后输出
14、的结果是14。#include long sum(register int x,int n) long s;int i; register int t; t=s=x;for (i=2; i = n; i + + ) t*=x;s+=t; return (s);) main () int x=2, n=3;printf(ns=%ldnnr sum(x, n); )13 .设有定义如下:ttdefine F(N) 2*N,则表达式F(2+3)的值是 7。14 .下面程序的执行结果是是6, 12。#include int fx (int x,int y) int s;s=(x+)+(+y); ret
15、urn s;) main () int a,b,k; a=5;b=6; k=fx(a,b); printf(H%d %d %dn”,a,b,k);)15 .下面程序for循环执行 6次,程序的运行结果是12345。#include#define M 3 ttdefine FMN M+M main () int i,n=0;for(i=0;iFMN;i+) n+;printf(n%dn , n) ; )16 .下面程序的执行结果是 0。#include #define SR(x) x*x main () int a,m=5,n=2;a=SR(m-n)/SR(m+n); printf(n%dnn,
16、a); )17 .设数组a有50个元素,函数funl()的功能是按依次分别给数组a中的元素赋以从2起先的 偶数值,函数fun2()则按依次每五个元素求一个平均值,并将求得的值放在数组s中,在空 白处完成该程序。#include#define N 50 funl(float a) int kz i;for (i=0,k=2;iN;i+)ai= k ;k+=2; )fun2 (float a,float s ) float sum=0; int i,k;for(i=0zk=0;iN;i+) sum+=ai;if ( (i + l)%5=0) sk=sum/5;k+; sum=O ; ) ) mai
17、n () float aN,sN/5; int i; funl (a);fun2(a,s);for(i=0;iN;i+)printf(n%5.1f n, ai); printf(nnn);for(i=0;iN/5;i+) printf (n%5.If n,s i); )18 .下面程序的运行结果是abcxyz。#include#include main () int k=0;char si10=nabcn,s210=nxyzn;strcat (si,s2);while(sik+!=f0,) s2k=slk;puts (s2); )19 .下面程序经宏绽开后,程序运行结果是200。#define
18、 PR printf(nsum=%dnnz sum)#define ADD sum+=i main () int iz sum=0;for(i=10;i20;i+) ADD;PR; )习题七一、选择题1 .变量的指针,其含义是指该变量的(B )0A.值B.地址C.名D. 一个标记2 .以下程序中调用scanf()函数给变量a输入数值的方法是错误的,错误缘由是(B )。 main () int *p,*q,a,b;p=&a; printf(ninput a :n); scanf(”d”,*p); I I I)A. *p表示的是指针变量p的地址B. *p表示的是变量a的值,而不是变量a的地址C.
19、*p表示的是指针变量p的值D.*p只能用来说明p是一个指针变量3 .以下程序错误的缘由是(A )0main () int *p,i;char *q,ch;p=&i; q=&ch;*p=40;*p=*q;I I I)A. p和q的类型不一样,不能执行*p二*q;语句B. *p中存放的是地址值,因此不能执行*p=40;语句C.q指向具体的存储单元,所以*q没有实际意义D.q虽然指向了具体的存储单元,但该单元中没有确定的值,所以不能执行*p二*q;语句4.已有定义int k=2; int *ptrl, *ptr2;且ptrl和ptr2均已指向变量k,下面不能正确执 行的赋值语句是(B )。B. pt
20、r2=k;A. k=*ptrl+*ptr2;C. ptrl=ptr2;D. k=*ptrl*(*ptr2);5.以下程序运行结果是(B )osub (int x ,int y r int *z) *z=y-x;main () int a ,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf(n%4d,%4d,%4dnn/a,b,c); )A. 5,2,3B. -5,-12,-76.下面程序段的运行结果是(A )ochar *s=nabcden;s+=2;printf(n%dnzs);A. cdeC. -5,-12,-17D. 5,-2,-7B.字符c
21、C.字符c的地址D.无确定的输出结果7 .若有以下定义,则对a数组元素地址的正确引用是(B )。int a 5,*p=a;A. *&a5B. a+2C. * (p+5)8 .若有以下定义,则对a数组元素地址的正确引用是(A )。 int a5,*p=a;A. p+5B. *a+lC. &a+l9 .若有以下定义,则p+5表示(A )0 int a 10,*p=a;A.元素a5的地址B.元素a5的值1) . *(a+2)D. &a0C.兀素a6的地址D.兀素a6的值10.若有以下定义,且0Wi6,则正确的赋值语句是(D )。int s4 6,t6 4, (*p) 6;A. p=t;B. p=s;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 选择 填空 习题 答案
限制150内