湖南工程学院C语言程序考试复习题有答案 下载本文

精品文档

B) 在函数外部定义的变量只在本函数范围内有效 C) 在函数内的复合语句定义的变量在本函数内有效 D) 形式参数是局部变量

39. 以下关于变量的作用域叙述不正确的是( C )

A) 在函数内部定义的变量是局部变量 B) 函数中的形式参数是局部变量

C) 全局变量的作用范围仅限于其所在的文件 D) 局部变量的作用范围仅限于本函数 40. 以下关于C函数参数说法不正确的是( B )

A) 实参可以是常量、变量和表达式 B) 形参可以是常量、变量和表达式 C) 实参可以为任意数据类型 D) 形参应与对应的实参类型一致

41. 以下关于C函数返回值的叙述正确的是( D )

A) 被调函数中只有使用return语句才能返回主调函数 B) 使用一个return语句可以返回多个函数值

C) 函数返回值类型取决于return语句中的表达式类型 D) 函数返回值类型取决于定义该函数时所指定的类型 42. 在C中,“a>b>c”属于哪种表达式?( A )

A) 关系

B) 赋值

C) 逻辑

D) 非法

43. 以下不合法的C表达式是( C )

A) 10 || 8

B) 12==9+1

C) ++5

D) x!=y

44. 给定以下程序段:

int n=10; while (n>6) {

n--;

printf(\}

以上程序段输出结果是( D ) A) 10 9 8

B) 9 8 7

C) 10 9 8 7

D) 9 8 7 6

45. 若i,j已定义为int型,则以下程序段中内循环总的执行次数是( C )

for (i=5; i>0; i--)

for (j=1; j<6; j++) {……}

A) 30

B) 24

C) 25

D) 20

46. 若已定义:float *p, m=3.14159; 则使p指向m正确的赋值语句是( B )

A) p=m;

5欢迎下载 。

B) p=&m; C) *p=m; D) *p=&m;

精品文档

47. 若已定义:char s[10]; 则下面表达式中不能表示s[1]地址的是( A )

A) s++ 二、填空题

1. 函数是C程序的基本构成单位,C程序总是从 main函数____开始执行的。 2. 赋值表达式x*=y+5的另一种书写形式为 x=x*(y+5) 3. 已知a=10,b=20,c=3,则表达式a>b || c的值为 1

4. 整数m既能被3整除又能被4整除的逻辑表达式为 (m%3= =0)&&(m%4= =0)

5. 若有定义:double a[10][5]; 则数组a中行下标最大值为 9 ,列下标最大值为 4 。 6. 若有定义:int a[ ]={1,4,6,5,8,9}; 则 *(a+5) 的值为 9

7. 设有如下定义int a[5][6],*p; 取数组元素a[4][2]的地址放到p中的语句为 p=&a[4][2]; 8. 未加特别说明(说明为静态的)的全局变量是外部的,能被其它文件中的函数使用,而在引用

它的文件中,需要用关键字extern说明。 9. 已知a=10,b=20,则表达式!a>b的值为 0 10. 写出0

11. 若有定义:int a[10],*p=a; 则元素a[5]的值用p表示的形式是 *(p+5) 12. 若有定义:int *p[4]; 则标识符p表示 数组长度为4的一维指针数组 13. 凡是函数中未指定存储类型的局部变量,其默认的存储类型为 auto

B) s+1 C) &s[0]+1

D) &s[1]

三、程序填空

1. 下面程序的功能是:从键盘输入一个字符,若是大写字母,则转换为小写字母并输出,若为小

写字母则直接输出,请在_____处填上合适内容,使程序完整。

#include void main( ) { char ch; ch=getchar( ); if (ch>='A'&&ch<='Z') ch+=32; printf(\}

2. 下面程序的功能是:求1~100间的偶数和,请在_____处填上合适内容,使程序完整。

#include void main( ) { int num, sum=0;

for (num=2; num<=100; num=num+2) sum=sum+num ;

printf(\间的偶数和是:%d\\n\}

3. 下面程序段是求n!的递归函数,请将函数补充完整。

double fac(int n) {

double result;

6欢迎下载 。

精品文档

if (n= =1) }

4. 以下程序的功能是:输入一整数n,判断是否为素数。

#include #include void main( ) {

int i, n; scanf(\

for (i=2; i<=sqrt(n); i++)

if (n%i==0)

break;

if (i>sqrt(n))

printf(\else

printf(\

}

result=1;

result=n*fac(n-1); else

return(result);

四、阅读程序

1. #include

void main( )

{ }

若输入“This is a C program.”,运行结果:COUNT=13

char ch;

int cnt1=0,cnt2=0;

while ((ch=getchar( ))!='\\n')

if (ch>='a'&&ch<='z') cnt1++; else cnt2++;

printf(\

2. #include

void main( )

{

int i,j,temp;

int a[ ]={0,1,2,3,4,5,6,7,8,9}; for(i=0,j=9;i

{temp=a[i];a[i]=a[j];a[j]=temp;}

7欢迎下载 。

精品文档

}

for(j=0;j<10;j++)

printf(\

运行结果:9 8 7 6 5 4 3 2 1 0

3. #include

#include void main( )

{ }

运行结果:string1=goodmorning

char str1[20]=\int i,j;

for (i=strlen(str1),j=0;str2[j]!='\\0'; i++, j++)

str1[i]=str2[j];

str1[i]='\\0';

printf(\

4. #include

void main( )

{ }

本程序的功能是:从键盘输入10个数存到数组a中,求10个数的最大值及其位置

当程序运行时,从键盘输入“1 0 2 9 3 8 4 7 5 6”,运行结果:Max=9.000000,position:3 5. #include

float average(int x[ ], int n)

{ }

void main( )

8欢迎下载 。

int i,j,pos; float val,a[10]; for(i=0;i<10;i++)

scanf(\

val=a[0];

for(j=0;j<10;j++)

if (a[j]>val)

{val=a[j];pos=j;}

printf(\

int i; float sum=0; for(i=0;i

sum+=x[i];

return (sum/n);