昆明理工大学C语言程序设计课后习题答案 下载本文

内容发布更新时间 : 2024/12/23 4:46:22星期一 下面是文章的全部内容请认真阅读。

a[0][0]位于数组的第一个位置上。)

A.i*m+jB.j*m+i C.i*m+j-1 D.i*m+j+1 18.以下对C语言字符数组描述错误的是______。

A.字符数组可以存放字符串

B.字符数组中的字符串可以整体输入或输出

C.可以在赋值语句中通过赋值运算符”=”对字符数组整体赋值 D.不可以用关系运算符对字符数组中的字符串进行比较 19.以下合法的数组定义是______。

A.int a[]=\ B.int a[5]={0,1,2,3,4,5}; C.char a=\ D.char a[]={\20.下面程序的运行结果是______。

#include #include main()

{char a[7]=\strcpy(a,b);

printf(\

A.空格 B.\\0 C.f D.不确定 21.下面程序的运行结果是______。

#include #include main()

{char a[30];

strcpy(&a[0],\strcpy(&a[1],\strcpy(&a[2],\printf(\system(\

A.chdefabc B.cda C.cdabc D.abcdef

22.设有定义:char a[80];int i=0;,以下不能将一行带有空格的字符串(不超过80个字

符)正确读入的是______。 A.gets(a);

B.while(( a[i++]=getchar())!='\\n'); a[i]='\\0'; C.scanf(\

D.do{scanf(\23.下面程序的运行结果是______。

#include main()

{char str[]=\int k;

for(k=2;(c=str[k])!='\\0';k++) {switch(c)

{case 'I':++k;break; case 'L':continue;

default:putchar(c);continue; }

putchar('*');

} }

A.SSW* B.SW*C.SW*A D.SWA* 24.设char s[10]= \,则s和t在内存中分配的字节数分别是______。

A. 6和5 B. 6和6 C. 10和5 D. 10和6 25.下面程序的运行结果是______。

#include main()

{ char a[]=\int i,j;

for(i=j=0; a[i]!='\\0';i++)

if(a[i]!='l') a[j++]=a[i]; a[j]='\\0'; puts(a);}

A.Hello World B.Heo World

C.Heo Word D.没有任何输出内容 26.下面程序的运行结果是______。

#include main()

{char str1[]=\int i,s; i=0;

while((str1[i]==str2[i])&&(str1[i]!='\\0')) i++; s=str1[i]-str2[i]; printf(\A.-1 B.0 C.1 D.不确定 27.下面程序的运行结果是______。

#include main()

{ char s[]=\int i,n=0;

for(i=0;s[i]!=0;i++)

if(s[i]>= 'a'&&s[i]<= 'z') n++; printf(\

A.0 B.2 C.3 D.5 28.下面程序的运行结果是______。

#include main()

{ int a[]={2,3,5,4},i; for(i=0;i<4;i++) switch(i%2)

{ case 0:switch(a[i]%2)

{case 0:a[i]++;break; case 1:a[i]--;} break;

}

for(i=0;i<4;i++) printf(\printf(\

A.3 3 4 4 B.2 0 5 0 C.3 0 4 0 D.0 3 0 4 29.下面程序的运行结果是______。

#include #include main()

{ char a[10]=\A.7,4 B.4,10 C.8,8 D.10,10 30.下面程序的运行结果是______。

#include #define MAX 10 main()

{int i,sum,a[]={1,2,3,4,5,6,7,8,9,10}; sum=1;

for(i=0;i

第6章 函数

二、习题

(一)是非题

1.在C程序中,main()函数必须有且只有一个。

A.对 B.错

2.如果某个函数在定义时省略了存储类型,则默认的存储类型是int。

A.对 B.错

3.C程序中,定义函数时的参数是“实际参数”,调用函数时的参数是“形式参数”。

A.对 B.错

4.函数的定义可以嵌套,但函数的调用不可以嵌套。

A.对 B.错

5.若函数定义的头部为:double cacl(float x,float y),则该函数是外部函数。

A.对 B.错

6.若用数组名作为函数调用的实参,传递给形参的是数组中的第一个元素的值。

A.对 B.错

7.C程序中所有的全局变量都是静态存储的。

A.对 B.错

8.函数中的多个return语句,可以实现调用该函数后,多个值同时被返回。

A.对 B.错

9.如果在一个函数中的复合语句内定义了一个变量,则该变量在该函数中都有效。

A.对 B.错

10.有参的宏,其参数参与运算,宏替换要先完成参数的计算,然后再执行替换。

A.对 B.错

11.在函数之间数据传递的方式有三种,即返回值、参数、全局变量。

A.对 B.错

12.在C语言中,除了main()函数外,其余所有的函数都能够被调用。

A.对 B.错

13.在main()函数中定义的变量称为全局变量。

A.对 B.错

14.在C语言中形参与实参共用内存单元。

A.对 B.错

15.在C语言中定义的auto变量,若没有对其进行显式初始化,则初值是一个不确定的值。

A.对 B.错 (二)选择题

1.以下说法中正确的是________。

A.C语言程序总是从第一个定义的函数开始执行

B.在C语言程序中,要调用的函数必须在main()函数中定义 C.C语言程序总是从main()函数开始执行

D.C语言程序中的main()函数必须放在程序的开始部分

2.在C语言中,函数值类型在定义时可以缺省,此时函数值的隐含类型是________。 A.void B.int C.float D.double

3.在C语言中,函数返回值的类型最终取决于________。 A.函数定义时在函数值首部所说明的函数类型 B.return语句中表达式值的类型

C.用函数时主调函数所传递的实参类型 D.函数定义时形参的类型

4.以下程序的执行结果为________。 #include \float fun(int x,int y) { return(x*y); } main()

{ int a=2,b=5,c=8;

printf(\ A.-24 B.24 C.-168 D.168 //嵌套调用。 fun(2+5,8) 返回得到 56; fun(56,2-5) 56*(-3)=-168

5.以下程序运行后的输出结果是________。 #include \int f(int x); main()

{int n=1,m; m=f(f(f(n)));

printf(\int f(int x) {return x*2;}

A.1 B.2 C.4 D.8

6.如下函数调用语句中,含有的实参个数是________。

fun(arg1,arg2+arg3,(arg4,arg5)); //实参可以是表达式 A.3 B.4 C.5 D.有语法错误 7.以下程序的输出结果是________。 #include \main()

{ int w=5;fun(w); } fun(int m)

{ if(m>0)fun(m-1); printf(\

A.5 4 3 2 1 B.0 1 2 3 4 5 C.1 2 3 4 5 D.5 4 3 2 1 0 8.在一个C源程序文件中所定义的全局变量,其作用域为________。 A.所在文件的全部范围 B.所在程序的全部范围

C.所在函数的全部范围 D.由具体定义位置和extern说明来决定范围 9.以下程序的运行结果是________。

#include \int a=1; int f(int c) {static int a=2; c=c+1;

return (a++)+c;} main()

{int i,k=0;

for(i=0;i<2;i++) {int a=3; k+=f(a); } k+=a;

printf(\

A.13 B.14 C.15 D.16 10.以下程序执行后变量w的值是________。

#include \int fun1(double a) {return a*=a;}

int fun2(double x,double y) { double a=0,b=0;

a=fun1(x);b=fun1(y);return(int)(a+b); } main()

{ double w;