C考试系统题库1(9)

2019-08-30 15:07

F3.下列给定程序中,函数fun的功能是:从n个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在形参aver所指的存储单元中。例如,若输入8名学生的成绩:

80.5 60 72 90.5 98 51.5 88 64 则低于平均分的学生人数为4(平均分为:75)。 #include #include #define N 20

int fun (float *s,int n,float *aver) {float ave,t=0.0; int count=0,k,i; for (k=0;k

;(不可使用复合的赋值运算符) ave=t/n; *aver=ave;

for (i=0;i

if (s[i]; }

main()

{float s[30],aver; int m,i;

printf(\ printf(\ for (i=0;i

printf(\ printf(\)

N4.下列程序用递归算法实现,输入任意一个整数,然后按从高到低输出各个位上的数字。

#include void main() {

long int n;

void func(long); scanf(\ ; }

void func( long m ) {

if(m>=10)

; printf(\

}

R5下面函数的功能是从键盘输入一组小写字母,并保存在字符数组str 中。通过fun()函数把字符数组str中ASCII码为奇数的小写字母转换成对应的大写字母,结果仍保存在原数组中。例如,输入”abcdefg”,输出“AbCdEfG”。 vodi fun(char s[]) {

int i;

for(_i = 0; s[i] != '\\0' ;i++) {

if(s[i]>=’a’<&&>s[i]<=’z’) s[i] =s[i]<-> 32; } }

F6.以下函数返回数组s中最大元素的下标,数组中元素的个数由t传入。

Findmax(int s[],int t) {

int m,n;

for(n=0,m=n;ns[m]) ; return ; }

F7、下面程序的功能是:主函数调用了sub函数,实现在3行4列的二维数组中,找出每一行上的最小值,请填空。

void sub(int b[3][4]) {int i,j,t,min; for(i=0;i<3;i++)

{t=0;

for(j=1;j<4;j++)

if(b[i][j]<<>b[i][t]) t=j;

printf(“i=%d,min=%d\\n”,i,); } } main()

{int a[3][4]={1,7,5,4,9,10,8,15,43,24,25,17}; sub(a); }

F8、以下程序中,select函数的功能是:在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标,请填空。

#define N 3 #define M 3

select(int a[N][M],int *n) { int i,j,row=1,colum=1; for(i=0; i

if(a[i][j]>a[row][colum]) { row=i; colum=j; }

*n=;

return ; } main()

{ int a[N][M]={9,11,23,6,1,15,9,17,20},max,n; max=select(a,&n);

printf(“max=%d,line=%d\\n”,max,n); }

R9、mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回,请填空。

int mystrlen(char *str) { int i;

for(i=0; str[i]'\\0';i++); return();

}

F10、下面的程序通过函数average 计算数组中各元素的平均值,请填空。

float average(int *pa,int n) { int i;

float avg=0.0; for(i=0;i

avg =+ pa[i]; avg =; return avg; }

main( )

{ int i; a[5]={2,4,6,8,10}; float mean;

mean=average(a,5);

printf(“mean=% f \\n”,mean); }

第五章 指针

一、 判断题

R1.变量的指针,其含义是指该变量的地址。 N2.有以下语句

static int a[]={0,1,2,3,4},*p; p=&a[2];

则表达式(*p)++执行后,指针p指向的元素值是2。( f ) R3.变量的指针,其含义是指该变量的数值。( ) 4. 有以下语句

static int a[]={0,1,2,3,4},*p; p=&a[1];

则表达式(*p)++执行后,指针p指向的元素值是2。( )

5.若 p 是指向结构体 s 的指针,则 (*p).n 和 (&s)->n 等效。() 6、char *p[10];p是指向数组的指针。 (9)设:char *px;则赋值表达式px=\正确

N(10)设:int a[3]={1,2,3},*pa;则赋值表达式px=&a正确 7. int *p[5]定义的是一个指针数组。( ) 8. int (*p)[5]定义的是一个指针数组。( ) 9.当main函数带有形参时,传给形参的值只能从命令行中得到。()

下列说法中不正确的是( )

R10.指针是一个变量 11.指针中存放的是地址值

12.指针可以进行加、减等算术运算 13.指针变量不占用存储空间

设变量定义为“int x, *p=&x;”,则&*p相当于___________。

N18)p 19)*p 20)x 21)*&x

设变量定义为“int a[4];”,则表达式 不符合C语言语法。

22)*a 23)a[0] 24)a 25)a++

已知:int *p, a;则语句“p=&a; ”中的运算符“&”的含义是( )

26、位与运算 27、逻辑与运算 28、取指针内容 29、取变量地址

int n=0,*p=&n,**q=&p;则正确的赋值语句是

30 p=1; 31) *q=2; 32) q=p; 33) *p=5;

二、 单项选择题

1有以下程序(设其文件名为2-5.c)

#include

void main(int argc,char *argv[]) { int i; char *p; printf(\ if(argc>2) p=argv[1]; puts(p+1); }

若运行该程序时,在命令行提示符后输入 2-5 file1 file2 file3

则执行printf(“%d”,argc);时,输出结果为( 4) A 1 B 2 C 3 D 4

2有以下程序(设其文件名为2-5.c)

#include

void main(int argc,char *argv[]) { int i; char *p; printf(\ if(argc>2) p=argv[1]; puts(p+1); }

若运行该程序时,在命令行提示符后输入 2-5 file1 file2 file3

则执行puts(p+1);时,输出结果为( ile1) A file1 B file2 C ile1 D ile2

R3. 变量I的值为3,I的地址为1000,若欲使p为指向I的指针变量,则下列赋值正确的是___________。

A)&I=3 B)*p=3 C)*p=1000 D)p=&I 4.

有如下程序

#include

void fun1(int *x,int *y) { int *z;

z=x;x=y;y=z; }

void fun2(int *x,int *y) { int z;

z=*x; *x=*y; *y=z;


C考试系统题库1(9).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: