77范文网 - 专业文章范例文档资料分享平台

C语言程序设计教程第七道第十二章课后练习题(2)

来源:网络收集 时间:2018-11-17 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

6 / 23

A.用户若需调用标准库函数,调用前必须重新定义

B.用户可以重新定义标准库函数,若如此,该函数将失去原有含义 C.系统根本不允许用户重新定义标准库函数 D.用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调用

(2)以下不正确的说法是(B)

A.实参可以是常量,变量或表达式 B.形参可以市常量,变量或表达式 C.实参可以为任何类型

D.形参应与对应的实参类型一致

(3)一下正确的函数定义形式是(A)

A.double fun(int x,int y) B.double fun(int x; int y) C.double fun(int x,int y); D.double fun(int x,y);

(4)以下正确的说法是(D)

A.定义函数时,参数的类型说明可以放在函数体内 B.return后边的值不能为表达式

C.如果函数值的类型与返回值类型不一致,以实参类型为准 D.如果形参与实参类型不一致,以实参类型为标准 (5)在C语言中,函数的隐含存储类别是(A)

A.auto B.static C.extern D.无存储类别

(6)凡是函数中未指定的存储类别的局部变量,其隐含的存储类别为(A) A.自动(auto) B.静态(static) C.外部(extern) D.寄存器(register)

(7)若是用一位数组名作为函数实参,则以下正确的说法是(A) A.必须在主调函数中说明此数组的大小 B.实参数组类型与形参数组类型可以不匹配 C.在被调用函数中,不需要考虑形参数组的大小 D.是参数组名誉形参数组名必须一致

(8)已有如下数组定义和f函数调用语句,则在f函数的说明中,对形参数组array正确定义方式为(B)

int a[3][4]; f(a);

A. f(int array[][6]) B.f(int array[3][]) B. f(int array[][4]) D.f(int array{[2][5]) (9)若用数组名作为函数的实参,传递给形参的是(A) A.数组的首地址 B.数组的第一元素的地址 C.数组中全部元素的地址 D.数组元素的个数 (10)函数调用不可以(D)

A.出现在执行语句中 B.出现在一个表达式中 C.作为函数的实参 D.作为函数的形参 (11)C语言规定函数返回值类型是由(D) A.return语句中表达式类型所决定 B.调用该函数时的主调函数类型决定

7 / 23

C.调用该函数时的系统临时决定

D.在定义该函数时所制定的函数类型决定

(12)C语言规定:简单变量做实参时,他和对性餐之间的数据传递方式是(B) A.地址传递 B.单向值传递

C.有实参传给形参,在有形参传回给实参 D.有用户指定传递方式

(13)一下只有在使用时才为该类型变量分配内存的存储类说明是(B) A.Auto和static B.auto和register C.register和static D.extern和register (14)以下叙述中不正确的是(D)

A.在不同的函数中可以使用相同名字的变量 B.函数中形式参数是局部变量

C.在一个函数内定义变量只在本函数的范围内有效

D.在一个函数内的复合语句中定义的变量只在本函数范围内有效 (15)有以下程序,程序运行后的输出结果是(D) float fun(int x,int y) {return(x+y);} void main() {

Int a=2.b-5,c=8;

Printf(“%3.0f\\n”,fun((int)fun(a+c,b),a-c));; }

A.编译出错 B.9 C.21 D.9.0 (16)下列程序执行后的输出结果是(C) char st[]=\void func1 (int i) {

printf(\if(i<3){i+=2;func2(i);} }

void func2(int i) {

printf(\if(i<3){i+=2;func1(i);} }

void main() {

int i=0;func1(i);printf(\

}A.hello B.hel C.hlo D.hlm (17)有以下程序,程序运行后的输出结果是(B) int f(int n) {

if(n==1) return 1;

8 / 23

else return f(n-1)+1; }

void main() {

int i,j=0;

for(i=1;i<3;i++) j+=f(i); printf(\}

A.4 B.3 C.2 D.1 (18)以下程序的输出结果是(C) void incre(); int x=3; void main() { int i;

for(i=1;i

void incre() {

static int x=1; x*=x+1;

printf(\}

A.3 3 B. 2 2 C. 2

(19)以下程序的输出结果是(A) int a=3; main() {

int s=0;

{int a=5; s+=a++; } s+=a++;printf(“%d\\n”,s); }

A.8 B.10 (20)以下程序的输出结果是(A) void f(int a[],int i,int j) { int t;

if(i

void main() {

int i,a[5]={1,2,3,4,5}; f(a,0,4);

6 D. 2 C.7 5 D.11 9 / 23

for(i=0;i<5;i++) printf(“%d,”,a[i]); }

A.5,4,3,2,1 B.5,2,3,4,1 C.1,2,3,4,5 D.1,5,3,4,2

习题9

选择题

(1) 下面能正确的进行字符串赋值的操作是(B)

A. char s[5]={“ABCDE”}; B. char s[5]={‘A’,’B’,’C’,’D’,’E’}; C. char *s,s=”ABCDE”; D. Char *s;scanf(“%s”,s);

(2)对于基类型相同的两个指针变量之间,不能进行的运算是(C) A.< B.= C.+ D.- (3)下面说明不正确的是()

A. char a[10]=”china” B. char a[10],*p;p=”china”; C.char *a;a=”china”; D.char a[10];*p;p=a=”china”; (4)若有下面的程序段,则下列叙述正确的是(C) char s[]=”china”; char *p;p=s;

A. s和p完全相同

B. 数组s中的内容和指针变量p中的内容相同 C. s数组长度和p所指向的字符串长度相等 D. *p与是s[]相等

(5) 若有说明;int *p,m=5,n;以下正确的程序段是(D) A.p=&n,scanf(“%d”,&n); B. p=&n;scanf(“%d”,*p); C.scanf(“%d”,&n); *p=n; D.p=&n,*p=m;

(6)若有语句int *point,a=4;和point=&a;下面均代表地址的一组选项是(D) A.a,point,*&a B.&*a,&a,*point C.*&point,*point,&a D.&a,&*point,point

(7)变量的指针,其含义是指该变量的(B)

A.值 B.地址 C.名 D.一个标志

(8)已有定义int k=2;int *ptr1,*ptr2;且prt1和ptr2均指向变量k,下面不能正确执行赋值语句的是(C)

A.k=*ptr1+*ptr2; B.ptr2=k;

C.ptr1=ptr2; D.k=*ptr1*(*ptr2); (9)若有说明:int i,j=2,*p=&i;则能完成i=j赋值成功的语句是(B) A.i=*p ; B.*p=*&j; C.i=&j; D.i=**p;

(10)若有定义:int a[8];则以下表达式中不能代表数组元素a[1]的地址的是(A) A.&a[0]+1 B.&a[1] C.&a[0]++ D.a+1

(11)若有以下语句且0<=k<6,则正确表示数组元素地址的语句是(C) static int x[]={1,3,5,7,9,11},*ptr=x,k;

A. x++ B.&ptr C.&ptr[k] D.&(x+1)

10 / 23

(12)设已有定义:char *st=”how are you”;下列程序段中正确的是(C) A. char a[11],*p;strcpy(p=a+1,&st[4]); B. char a[11],strcpy(++a,st);; C. char a[11];strcpy(a,st);

D. char a[],*p;strcpy(p=a[1],st+2);

(13)下面程序段的运行结果是(C) char s[]=”abcdefgh”,*p=s; p+=3;

printf(“%d\\n”,strlen(strcpy(p,”ABCD”)));

A.8 B.12 C.4 D.7 (14)下面程序段中,for循环的执行次数是(C) char *s=”\\ta\\018bc”;

for(;*s!=’\\0’;s++) printf(“*”);

A.9 B.5 C.6 D.7

(15)以下程序的输出结果是(D)

void main() {

char *p=”abcdefgh”,*r; long *q; q=(long*)p; q++;

r=(char*)q; printf(“%s\\n”,r); }

A.bcdefgh B.cdefgh C.defgh D.efgh

(16)设有语句 int array[3][4];,则下面几种引用下标i和j的数组元素的方法中不正确的方法是(C)

A.array[i][j] B.*(*(array+i)+j) C.*(array[i]+j) D.*(array+i*4+j) (17)一下程序的运行结果是(B) void sub(int x,int y,int *z) { *z=y-x;} void main() {

Int a,b,c; sub(10,5;&a); sub(7,a;&b); sub(a,b;&c);

printf(“%d,%d,%d\\n”,a,b,c); }

A.5,2,3 B.-5,-12,-7 C.-5,-12,-17 D.5,-2,-7 (18)在说明语句int *f();中,标识符f代表的是(A) A.一个用于指向整型数据的变量 B.一个用于指向一维数组的行指针

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C语言程序设计教程第七道第十二章课后练习题(2)在线全文阅读。

C语言程序设计教程第七道第十二章课后练习题(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/282508.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: