c语言raverage加r的作用,南昌大学计算机C语言答案9

81、以下函数sstrcat()的功能是实现字符串的连接,即将t所指字符串复制到s所指字符串的尾部。例如:s所指字符串为abcd,t所指字符串为efgh,函数调用后s所指字符串为abcdefgh。请填空。

# include 

void sstrcat(char *s, char *t)

{ int n;

n= strlen(s);

while (*(s+n)= 【 】 ){s++; t++;}

}

教师批改:*t

82、以下程序输出的是 【

main( )

{ int a[10]={19,23,44,17,37,28,49,36}, *p;

p=a;

printf("%d\n",(p+=3)[3]);

}

教师批改:49

83、以下fun函数的功能是:累加数组元数中的值.n为数组中元素的个数, 累加的和值放入x所指的存储单元中,请填空.

fun(int b[ ],int n, int *x)

{ int k,

r=0;

for(k=0;k

【2】 =r;

教师批改:【1】r+b[k]或b[k]或*(b+k)+r 【2】*x

84、若有以下定义和语句,则使指针p指向值为36的数组元素的表达式是【 】 。

int

a[10]={19,23,44,17,37,28,49,36},*p;

p=a;

教师批改:p=p+7

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

float

average(int * pa,int n)

{ int

i;

float

avg=0.0;

for(i=0;i

avg=【2】;

return

avg; }

main()

{ int

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

float

mean;

mean=average(a,5); printf("mean=%f\n",mean);}

教师批改:【1】*(pa+i)或 pa[i] 【2】avg/n 或avg/(float)n 或 avg/(double)n

86、下面程序的输出是 【 】 。

main()

{ int

a[]={ 2,4,6}, *prt=&a[0], x=8,y,z;

for(y=0;

y<3; y++)

z=(*(prt+y)

printf("%d\n", z);}

教师批改:6

87、以下程序求a数组中的所有素数的和,函数isprime用来判断自变量是否为素数。素数是只能被1和本身整除且大于1的自然数。

#include

main()

{ int

i,a[10],*p=a,sum=0;

printf("Enter 10 num:\n");

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

scanf("%d",&a[i]);

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

if(isprime(*(p+ 【1】 )) = = 1){ printf("%d",*(a+i)); sum+=*(a+i);

}

printf("\nThe sum=%d\n",sum); }

isprime(x)

int

x;

{ int i;

for(i=2;i<=x/2;i + + )

if(x%i = = 0) return (0); 【2】 ; }

教师批改:【1】I 【2】return

1

88、以下程序中,fun函数的功能是求3行4列二维数组每行元素中的最大值.请填空.

void fun(int, int, int (*)[4],int *)

main()

{

int a[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;

fun(3,4,a,b);

for(i=0;i<3;i++)

printf("%4d",b[i]);

printf("\n");

}

void

fun(int m,int n,int ar[][4],int *br)

{

int i,j,x;

for(i=0;i

{ x=ar[i][0];

for(j=0;j

if(x

【 】 =x;

}

教师批改:br[i]

89、以下程序中,函数

sumColumM的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。请填空。

#define M 2

#define N 4

void

SumColumMin(int a[M][N],int *sum)

{ int

i,j,k,s=0;

for(i=0;i

{ k=0;

for(j=1;j

if(a[k][i]>a[j][i])k=j;

s+= 【1】 ;

}

【2】 =s;

}

main()

{ int

x[M][N]={3,2,5,1,4,1,8,3},s;

SumColumMin( 【3】 );

printf("%d\n",s);

}

教师批改:【1】a[k][i] 【2】*sum 【3】x,&s

90、fun函数的功能是:首先对a所指的N行N列的矩阵,找出各行中的最大的数,再求这N个最大值中的最小的那个数作为函数值返回。请填空。

#include 

#define N 100

int fun(int(*a)[N])

{

int row,col,max,min;

for(row=0;row

{

for(max=a[row][0],col=1;col

if( 【1】 )max=a[row][col];

if( row==0)min=max;

else if( 【2】 )min=max;

}

return min;

}

教师批改:【1】a[row][col]>max 或

a[row][col]>=max 或

max<=a[row][col] 【2】Maxmax 或

max<=min 或 min>=max

91、以下程序中,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

for(j=0;j

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

*n=

【1】;

return

【2】;

}

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);

}

教师批改:【1】row 【2】a[row][colum]

92、设有以下定义的语句:

int a[3][2]={10,20,30,40,50,60}, (*p)[2];

p=a;

则 *(*(p+2)+1)值为【 】 。

教师批改:60

93、以下程序运行后的输出结果是【 】 。

#include 

char *ss(char *s)

{ char *p, t;

p=s+1; t=*s;

while(*p) { *(p-1) = *p; p++;}

*(p-1)=t;

return s;

}

main()

{ char *p, str[10]="abcdefgh";

p = ss(str) ;

printf("%s\n",p);

}

教师批改:bcdefgha

94、以下程序运行后的输出结果是 【 】

#include

"string.h"

void

fun(char *s,int p,int k)

{ int i;

for(i=p;i

s[i]=s[i+2];

}

main()

{ char s[]="abcdefg";

fun(s,3,strlen(s));

puts(s);

}

教师批改:abcfg

95、以下程序中函数huiwen的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串:yes

yes!,否则函数返回字符串:no!,并在主函数中输出.所谓回文即正向与反向的拼写都一样,例如:adgda.请填空.

#include "string.h"

char *huiwen(char *str)

{

char *p1,*p2; int i,t=0;

p1=str; p2=

【1】

for(i=0;i<=strlen(str)/2;i++)

if(*p1++!=*p2--)

{ t=1; break; }

if(【2】) return ("yes!");

else return

("no!");

}

main()

{

char str[50];

printf("Input:"); scanf("%s",str);

printf("%s\n",

【3】);

}

教师批改:【1】str+strlen(str)-1 【2】t==0或!t

【3】huiwen(str)

96、以下程序运行后的输出结果是 【 】 。

main

()

{ char

a[]="Language",b[]="Programe";

char *p1,*p2; int k;

p1=a; p2=b;

for(k=0;k<=7;k++)

if(*p1+k)==*(p2+k)} printf("%c",*(p1+k))_;

]

教师批改:gae

97、以下程序运行后的输出结果是 【 】 。

main()

{ char

a[]="123456789",*p; int i=0;

p=a;

while(*p)

{ if(i%2==0) *p=‘*‘;

p++;i++;

}

puts(a);

}

教师批改:*2*4*6*8*

98、以下sstrcpy(

)函数实现字符串复制,即将t所指字符串复制到s所指向内存空间中,形成一个新的字符串s。请填空。

void

sstrcpy(char *s,char *t)

{

while(*s++=【 】);}

main(

)

{ char str1[100],str2[]=”abcdefgh”;

sstrcpy(str1,str2);

printf(“%s\n”,str1);

}

教师批改:*t++

99、下列程序的运行结果是:【 】

#include

char

*ss(char *s)

{ return

s+strlen(s)/2;}

main(

)

{ char *p,*str=”abcdefgh”;

p=ss(str); printf(“%s\n”,p);

}

教师批改:efgh

100、以下程序运行后输入:3,abcde<回车>,则输出结果是 【 】

#include 

move(char *str, int n)

{

char temp ; int i;

temp=str[n-1];

for(i=n-1;

i>0;i--) str[i]=str[i-1];

str[0]=temp;

}

main()

{ char s[50]; int n, i, z;

scanf("%d,%s",&n, s);

z=strlen(s);

for(i=1;

i<=n; i++) move(s,z);

printf("%s\n",s);

}

教师批改:cdeab

101、以下函数的功能是删除字符串s中的所有数字字符。请填空。

void

dele(char *s)

{ int

n=0,i;

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

if(【1】)

s[n++]=s[i];

s[n]=【2】;

}

教师批改:【1】s[i]‘9‘

!(s[i]>=‘0‘&&s[i]<=‘9‘)

【2】 ‘\0‘或 0 或 NULL

102、函数sstrcmp()的功能是对两个字符串进行比较。当s所指字符串和t所指字符串相等时,返回值为0;当s所指字符串大于t所指字符串时,返回值大于0;当s所指字符串小于t所指字符串时,返回值小于0(功能等同于库函数strcmp())。请填空。

#include 

int

sstrcmp(char *s,char *t)

{ while(*s&&*t&& *s== 【1】 )

{ s++;t++;}

return 【2】;

}

教师批改:【1】*t 或 t[0] 【2】*s-*t 或 *s-t[0] 或 s[0]-*t

或 s[0]-t[0]

103、以下程序的输出结果是【 】 。

main()

{ char *p="abcdefgh",*r;

long *q;

q=(long*)p;

q++;

r=(char*)q;

printf("%s\n",r);

}

教师批改:efgh

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

int mystrlen(char *str)

{

int i;

for(i=0;

【1】!=‘\0‘;i++);

return(【2】);

}

教师批改:【1】*(str+i)str[i]

【2】i

105、以下函数把b字符串连接到a字符串的后面,并返回a中新字符串的长度。请填空。

Strcen(char a[],

char b[])

{ int num=0,n=0;

while(*(a+num)!= 【1】) num++;

while(b[n]){*(a+num)=b[n]; num++;

【2】;}

return(num);

}

教师批改:【1】

‘\0‘或0 【2】n++或n+=1或n=n+1

106、以下程序的功能是:将无符号八进制数字构成的字符串转换为十进制整数。例如,输入的字符串为:556,则输出十进制整数366。请填空。

#include

main()

{ char *p, s[6];

int n;

p=s;

gets(p);

n=*p-‘0‘;

while(【 】!=‘\0‘)n=n*8+*p-‘0‘;

printf("%d \n",n);

}

教师批改:*(++p)

107、下列程序的输出结果是【 】 。

#include

main( )

{ char b[30],*chp;

strcpy(&b[0],"CH");

strcpy(&b[1],"DEF");

strcpy(&b[2],"ABC");

printf("%s \n",b);

}

教师批改:CDABC

108、下面程序的输出结果是 【 】

char b[]="ABCD";

main()

{ char *chp;

for(chp=b; *chp: chp+=2) printf("%s",chp);

printf("\n");

教师批改:ABCDCD

109、以下程序输出的是【 】

main( )

{ int i=3, j=2;

char *a="DCBA";

printf("%c%c\n",a[i],a[j]);

}

教师批改:AB

110、函数mycmp (char*s,chat *t)的功能是比较字符串s和t的大小,当s等于t

时返回0,否则返回s和t的第一个不同字符的ASCOII码的差值,即当s>t时返回正值, 当s等于t

时返回0,否则返回s和t的第一个不同字符的ASCOII码的差值,即当s>t时返回正值,

当s

mycmp(char *s,char *t)

{

while(*s==*t)

{if(*s==‘\0‘) return 0;

++s; ++t;}

return (【

】); }

教师批改:*s=*t

111、下列程序的输出结果是【 】

main()

{ char

b[]="ABCDEFG";

char *chp=&b[7];

while(--chp>&b[0]) putchar(*chp);

putchar(‘\n‘);

}

教师批改:GFEDCB

112、阅读程序:

#include

"string.h"

#include

"stdio.h"

strle(char a[],char b[])

{ int

num=0,n=0;

while(*(a+num)!=‘\0‘),num++;

while(b[n]){ *(a+num)=b[n];num++;n++;}

return (num);

}

main()

{ char

str1[81],str2[81],*p1=str1,*p2=str2;

gets(p1); gets(p2);

printf("%d\n",strle(p1,p2));

}

运行上面程序,如果从键盘上输入字符串qwerty和字符串abcd则程序的输出结果是【 】 。

教师批改:10

113、阅读程序:

main()

{ char

str1[]="how do you do" ,str2[10];

char *p1=str1,*p2=str2;

scanf("%s",p2); printf("%s",p2); printf("%s\n",p1);

}

运行上面的程序,输入字符串HOW DO YOU DO 则程序的输出结果是【 】 。

教师批改:HOW how do you do (说明:HOW

和how之间有无空格均可)

114、下面程序的输出结果是【 】 。

#include

main()

{ static

char b[]="Goodbye";

char *chp=&b[7];

while( --chp >=&b[0]) putchar(

*chp);

putchar(‘\n‘);

}

教师批改:eybdooG

115、下面程序的输出结果是 【 】 。

#include

void fun(

char *a1, char *a2, int n)

{ int

k;

for( k=0; k

a2[k]=( a1[k]-‘A‘-3+26)%26+‘A‘;

a2[n]=‘\0‘;

}

main()

{ char

s1[5]="ABCD", s2[5];

fun( s1,

s2, 4);

puts(

s2);

}

教师批改:XYZA

116、下面程序的输出结果是 【 】 。

#include

main()

{ char

*p[]={ "BOOL", "OPK", "H", "SP"};

int

i;

for(i=3;

i>=0; i--,i--) printf( "%c",

*p[i]);

printf("\n");

}

教师批改:SO

第11章 结构体与共用体

1、设有以下定义或语句,则输出的结果是?(用small模式编译,指针变量占2个字节)

struct date

{

long *cat;

struct date *next;

double dog;

}too;

printf("%d",sizeof(too)); A.20 B.16

C.1D D.12

[D] 教师批改:D

2、设有以下说明语句

struct ex

{ int x ; float y; char z ;} example;

则下面的叙述中不正确的是 A.struct结构体类型的关键字 B.example是结构体类型名

C.x,y,z都是结构体成员名 D.struct

ex是结构体类型

[B] 教师批改:B

3、已知有共用体变量data1定义如下:

union data

{ int i;

char ch;

float f;

} data1;

则变量data1所占的内存存储空间可表示为: A.sizeof(int) B.sizeof(char)

C.sizeof(float) D.sizeof(int)+sizeof(char)+sizeof(float)

[C] 教师批改:C

4、以下对枚举类型名的定义中正确的是 A.enum a={one,two,three}; B.enum a{one=9,two=-1,three};

C.enum a={″one″,″two″,″three″}; D.enum

a{″one″,″two″,″three″};

[B] 教师批改:B

5、以下关于typedef的叙述中错误的是: A.用typedef可以增加新的类型 B.用typedef可以定义各种类型名,但不能用来定义变量

C.用typedef只是将已有的类型用新的标识符来代表 D.使用typedef有利于程序的通用和移植

[A] 教师批改:A

6、当说明一个结构体变量时系统分配给他的内存是__。

A) 各成员所需内存量的总和。 B) 结构中第一个成员所需内存量。

C) 成员中占内存量最大者所需内存量。 D) 结构中最户一个成员所需内存量。

[A] 教师批改:A

7、设有以下语句

struct stu

{int a;

float b;

}stutype;

则下面叙述不正确的是__。

A) struct

是结构体类型的关键字。 B) struct

stu是用户定义的结构体类型。

C) stutype

是用户定义的结构体类型名。 D) a和b都是结构体成员名。

[C] 教师批改:C

8、在16位IBM-PC机上使用的C语言,若有如下定义:

struct data

{int i;

char ch;

double f;

}b;

则结构变量b占用内存的字节数是__。

A) 1 B) 2

C) 8 D) 11

[D] 教师批改:D

9、以下程序的运行结果是__。

#include

“stdio.h”

main()

{struct

date

{int

year,month,day;

}today;

printf(“%d\n”,sizeof(struct date));

}

A) 6 B) 8

C) 10 D) 12

[A] 教师批改:A

10、下面程序的运行结果是__。

main()

{

struct

cmplx{int x;

int y;

}cnum[2]={1,3,2,7};

printf(“%d\n”,cnum[0].y/cnum[0].x*cnum[1].x);

} A) 0 B) 1

C) 3 D) 6

[D] 教师批改:D

11、 有如下定义:

struct sk

{int n;

float x;

}dara,*p;

若要使p指向data中的n域,正确的赋值语句是__。

A) p=&data.n; B) *p=data.n;

C) p=(struct sk *)&data.n; D) p=(struct sk *)data.n;

[C] 教师批改:C

12、若有以下说明和语句:

struct student

{int age;

int

num;

}std.*p;

p=&std;

则以下对结构体变量age引用不正确的是__。

A) std.age B) p->age

C) (*p).age D) *p.age

[D] 教师批改:D

13、若有以下说明和语句,则对pup中sex域的正确引用方式是__。

struct pupil

{char name[20];

int

sex;

}pup,*p;

p=&pup;

A) p.pup.sex; B) p->pup.sex;

C) (*p).pup.sex D) (*p).sex

[D] 教师批改:D

14、以下对结构体变量stul中成员age的非法引用是__。

struct student

{int age;

int

num;

}stu1,*p;

p=&stu1;

A) stu1.age B) student.age

C) p->age D) (*p).age

[B] 教师批改:B

15、C语言共用体类型变量在程序运行期间__。

A) 所有成员一直驻留在内存中。 B) 只有一个成员驻留在内存中。

C) 部分成员驻留在内存中。 D) 没有成员驻留在内存中。

[B] 教师批改:B

16、在16位IBM-PC机上使用C语言,若有如下定义:

union data

{int i;

char ch;

double f;

}b;

则共用体变量b占用内存的字节数是__。

A) 1 B) 2

C) 8 D) 11

[C] 教师批改:C

17、下面对typedef的叙述不正确的是__。

A) 用typedef可以定义各种类型名,但不能用来定义变量。 B) 用typedef可以增加新类型

C) 用typedef只是将已存在的类型用一个新的标识符来代表 D) 使用typedef有利于程序的同意和移植

[B] 教师批改:B

18、以下程序的运行结果是__。

struct n{

int x;

char c;

};

main()

{ struct n

a=(10,’x’);

func(a);

printf(“%d,%c”,a.x,a.c);

}

func(struct n b)

{b.x =20;

b.c=’y’;

}

教师批改:10,x

第13章 文件

1、若fp是指向某文件的指针,且feof(fp)的返回值是非零值,则表示:

A.已读到此文件末尾 B.未读到此文件的末尾

C.此文件已关闭 D.此文件尚未被打开

[A] 教师批改:A

2、系统的标准输入文件是指__。

A) 键盘 B) 显示器

C) 软盘 D) 硬盘

[A] 教师批改:A

3、若执行fopen函数时发生错误,则函数的返回值是__。

A) 地址值 B) 0

C) 1 D) EOF

[B] 教师批改:B

4、若要用fopen打开一个新的二进制文件,该文件既能读也能写,则文件方式字符串应该是__。

A) “ab+” B) “wb+”

C) “rb+” D) “ab”

[D] 教师批改:B

5、当顺利执行了文件关闭操作时,fclose函数的返回值是__。

A) -1 B) TRUE

C) 0 D) 1

[C] 教师批改:C

6、fscanf函数的正确调用形式为__。

A) fscanf(fp,格式字符串,输出列表) B) fscanf(格式字符串, 输出列表,fp)

C) fscanf(格式字符串,输出指针,输出列表) D) fscanf(文件指针,格式字符串,输入列表)

[D] 教师批改:D

7、fwrite函数的一般调用形式为__。

A) fwrite(buffer,count,size,fp); B) fwrite(fp,size,count,buffer);

C) fwrite(“fp,count,size,buffer); D) fwrite(buffer,size,count,fp);

[D] 教师批改:D

8、fgetc函数的作用是从指定文件读入一个字符串,该文件的打开方式必须是__.

A) 只写 B) 追加

C) 读或读写 D) 答案B和C都正确

[C] 教师批改:C

9、若调用fputc函数输出字符成功,其返回值是__。

A) EOF B) 1

C) 0 D) 输出的字符

[D] 教师批改:D

10、利用fseek函数可实现的操作数__。

A) 改变文件的位置指针 B) 文件的顺序读写

C) 文件的随即读写 D) 以上答案均正确

[D] 教师批改:D

11、利用fseek函数可实现的操作数__。

A) 改变文件的位置指针 B) 文件的顺序读写

C) 文件的随即读写 D) 以上答案均正确

[D] 教师批改:D

12、函数rewind的作用是__。

A) 使位置指针重新返回文件的开头 B) 使位置指针指向文件所要求的位置

C) 使位置指针指向文件的末尾 D) 使位置指针自动移至下一个字符的位置

[A] 教师批改:A

13、函数ftell(fp)的作用是__。

A) 得到流式文件中的当前位置 B) 移动流式文件的位置指针

C) 初始化流式文件的位置指针 D) 以上答案均正确

[A] 教师批改:A

14、在执行fopen函数时,ferror函数的初值是__。

A) TRUE B) -1

C) 1 D) 0

[D] 教师批改:D

15、在C程序中,文件可以用【1】的方式存取,也可以用【2】方式存取。

教师批改:【1】

顺序(或随机)【2】随机(或顺序)

16、在C程序中,文件的存取以【1】为单位,这种文件被称作【2】文件。

教师批改:【1】字符 【2】流式

17、函数调用语句:fgets(buf,n,fp);从fp指向的文件中读入【1】个字符放到buf字符数组中,函数值为【2】。

教师批改:【1】n-1 【2】buf的首地址

18、feof(fp)函数用来判断文件是否结束,如果遇到文件结束,函数值为【1】,否则为【2】。

教师批改:【1】非零值

【2】0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值