0?p/10:p%3));}66、若想通过以下输入语句使a=5.0,b=4,c=3,则输入数据的形式应该是__5.0,4,c=3____。intb,c;floata;scanf("%f,%d,c=%d",&a,&b,&c)27、请在以下程序第一行的下划线处填写适当内容,使程序能正常运行。_d" />

C语言填空题整理

C语言填空题整理
C语言填空题整理

一.(25)

116、以下程序运行后的输出结果是__3____。

main()

{ int p=30;

printf("%d\n",(p/3>0 ? p/10 :p%3));

}

66、若想通过以下输入语句使a=5.0,b=4,c=3,则输入数据的形式应该是__5.0,4,c=3____。 int b,c; float a;

scanf("%f,%d,c=%d",&a,&b,&c)

27、请在以下程序第一行的下划线处填写适当内容,使程序能正常运行。

_double max或extern double max_____( double,double);

main()

{ double x,y;

scanf("%1f%1f",&x,&y);

printf(%1f\n",max(x,y));

}

double max(double a,double b)

{ return(a>b ? a:b);}

57、以下程序的输出结果是__246____。

void fun()

{

static int a = 0;

a += 2;

printf("%d",a);

}

main()

{

int cc;

for(cc = 1;cc < 4; cc++) fun();

printf("\n");

}

43、以下程序运行后的输出结果是_81_____。

#define S(x) 4*x*x+1

main()

{ int i=6,j=8;

printf("%d\n",S(i+j));

}

73、以下函数inverse的功能是使一个字符串按逆序存放。inverse(str)

char str[];

{

char m;

int i,j;

for(i=0,j=strlen(str);i

m=str[i];

str[i]=_str[j-1]_____;

_str[j-1]=m_____;

}

}

144、以下程序的输出结果_efgh_____。

#include

#include

char *fun(char *t)

{ char *p=t;

return(p+strlen(t)/2);

}

main()

{ char *str="abcdefgh";

str=fun(str);

puts(str);

}

67、下列程序的输出结果是__5 6____。

int t(int x,int y,int cp,int dp)

{ cp=x * x+y*y;

dp=x*x-y*y;

}

main( )

{ int a=4,b=3,c=5,d=6;

t(a,b,c,d);

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

}

19、若有如下结构体说明:

struct STRU

{ int a,b;char c: double d;

struct STRU *p1,*p2;

};

请填空,以完成对t数组的定义,t数组的每个元素为该结构体类型。

__struct STRU____t[20]

100、以下程序用来统计文件字符的个数,请填空。

#include "stdio.h"

main()

{ FILE *fp; long num=O;

if((fp=fopen("fname.dat","r"))==NULL)

{ PRINTF("Open error\n");exit(0);}

while(__fgetc(fp)!=EOF或!feof(fp)____)

{num++; }

printf("num=%ld\n",num);

fclose(fp);

}

93、以下程序段用于构成一个简单的单向链表,填空。

struct STRU

{ int x,y;

float rate;

__struct STRU *____ p;

}a,b;

a.x=0;a.y=0;a.rate=0;a.p=&b;

b.x=0;b.y=0;b.rate=0;b.p=NULL;

42、以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和,请填空。main()

{ int i,a[20],sum,count;

sum=count=0;

for(i=0;i<20;i++) scanf("%d",_&a[i]_____ );

fro(i=0;i<20;i++)

{ if(a[i]>0)

{ count++;

sum+= _a[i]_____ ;

}

}

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

}

74、以下函数fun用于求两个整数a和b的最大公约数。fun(a,b)

int a,b;

{int i,j,m,n;

if(a>b)

{m=a;a=b;__b=m____;}

i=a;j=b;

while((n=_j%i_____)!=0)

{j=i;i=_n_____;}

return(i);

}

41、以下程序中, for循环体执行的次数是____4__。#define N 2

#define M N+1

#define K M+1*M/2

main()

{ int i;

for(i=1;i

{ ... }

...

}

49、以下程序运行后的输出结果是_13431_____。struct NODE

{ int k;

struct NODE *link;

};

main()

{ struct NODE m[5],*p=m,*q=m+4;

int i=0;

while(p!=q){

p->k=++i; p++;

q->k=i++; q--;

}

q->k=i;

for(i=0;i<5;i++) printf("%d",m[i].k);

二.(12)

95、以下程序的输出结果是_261_____。

main()

{ int a=177;

printf("%o\n",a);

}

83、以下程序通过函数指针p调用函数fun,请在填空栏内,写出定义变量p的语句。 void fun(int*x,int*y)

{ …… }

main()

{ int a=10,b=20;

__void (*p)() 或void(*p)(int*, int*)____

p=fun; p(&a,&b);

……

}

17、下列程序的输出结果是__0____。

void fun(int *n)

{ while((*n)--);

printf("%d",++(*n));

}

main()

{ int a=100;

fun(&a);

}

29、以下程序运行后的输出结果是__30 25____。

int a=5;

fun(int b)

{ static int a=10;

a+=b++;

printf("%d ",a);

}

main()

{ int c=20;

fun(c);

a+=c++;

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

}

117、以下程序的功能是输出如下形式的方阵:

13 14 15 16

9 10 11 12

5 6 7 8

1 2 3 4

请填空。

main()

{ int i,j,x;

for(j=4;j_>0_____;j--)

{ for(i=1;i<=4;i++)

{ x=(j-1)*4+__i__;

printf("%4d",x);

}

printf("\n");

}

92、若有定义语句:char s[100],d[100];int j=0,i=0;且s中已赋字符串,请填空以实现拷贝。(注:不使用逗号表达式)

while(s[i]){d[j]=_s[i++]_____;j++;}

d[j]=0;

37、下面rotate函数的功能是:将n行n列的矩阵A转置为A',例如:

|1 2 3 4 |

|5 6 7 8 |

当A=|9 10 11 12|

|13 14 15 16|

|1 5 9 13|

|2 6 10 14|

则A'=|3 7 11 15|

|4 8 12 16|

请填空。

#define N 4

void rotate(int a[][])

{ int i,j,t;

for(i=0;i

for(j=0;_j<=i_____;j++)

{t=a[i][j];

___a[i][j]=a[j][i]___;

a[j][i]=t;

}

}

52、已知字符A的ASCII码为65,以下程序运行后的输出结果是__67G____。

main()

{ char a,b;

a='A'+'5'-'3'; b=a+'6'-'2';

printf("%d%c\n",a,b);

}

115、已有文本文件test.txt,其中的内容为:Hello,everyone!。以下程序中,文件test.txt已正确为"读"而打开,由此文件指针fr指向文件,则程序的输出结果是_Hell_____。

#include

main()

{ FILE *fr; char str[40];

......

fgets(str,5,fr);

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

fclose(fr);

}

10、函数mycmp(char *s,char *t)的功能是比较字符串s和t的大小,当s等于t时返回0,当s>t返回正值,当s

mycmp( char *s,char *t)

{ while (*s==*t)

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

++s;++t;

}

return(_*s=*t_____);

}

136、以下程序的功能是:利用指针指向三个整型变量,并通过指针运算找出三个数中的最大值,输出到屏幕上。请填空。

main()

{ int x,y,z,max,*px,*py,*pz,*pmax;

scanf("%d%d%d",&x,&y,&z);

px=&x; py=&y; pz=&z; pmax=&max;

*pmax=x______;

if(*pmax<*py) *pmax=*py;

if(*pmax<*pz) *pmax=*pz;

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

}

46、已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33<回车>,则输出结果是__1 B____。#include

main()

{ char a,b;

a=getchar();scanf("%d",&b);

a=a-'A'+'0';b=b*2;

printf("%c %c\n",a,b);

}

三.(11)

6、以下程序通过函数SunFun和f(x),x=0到10,这里f(x)=x^2+1,由F函数实现,请填空。

main()

{ printf("The sun=%d\n",SunFun(10));}

SunFun(int n)

{ int x,s=0;

for(x=0;x<=n;x++)s+F(______);

return s;

}

F(int x)

{ return (______);}

131、下面程序的运行结果是__18____。

#include

int f (int a[], int n)

{ if(n>1)

return a[0]+f(a+1,n-1);

else

return a[0];

}

main()

{int aa[10]={1,2,3,4,5,6,7,8,9,10}, s;

s=f (aa+2,4); printf("%d\n",s); }

97、以下程序的输出结果是_efgh_____。

main()

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

long *q;

q=(long*)p;

q++;

r=(char*)q;

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

}

141、执行以下程序时输入1234567,则输出结果是_12 34_____。

#include

main()

{ int a=1,b;

scanf("%2d%2d",&a,&b); printf("%d %d\n",a,b);

}

79、若有以下结构类型说明和变量定义,则变量a在内存所占字节数是_22_____。

struct stud

{ char num[6];

int s[4];

double ave;

} a,*p;

40、以下程序运行后的输出结果是_*2*4*6*8*_____。

main()

{ char a[]="123456789",*p;

int i=0;

p=a;

while(*p)

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

p++;i++;

}

puts(a);

}

158、以下程序按下面指定的数据给x数组的下三角置数,并按如下形式输出,请填空。

4

3 7

2 6 9

1 5 8 10

#include

main()

{ int x[4][4],n=0,i,j;

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

for(i=3;i>=j; _i- -_____) {n++;x[i][j]= __n___;}

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

{ for(j=0;j<=i;j++) printf("%3d",x[i][j]);

printf("\n");

}

}

135、以下程序的功能是:求出数组x中各相邻两个元素的和依次存放到a数组中,然后输出。请填空。main()

{ int x[10],a[9],i;

for(i=0;i<10;i++) scanf("%d",&x[i]);

for( _i=1____; i<10;i++)

a[i-1]=x[i]+ x[i-1]______;

for(i=0;i<9;i++ ) printf("%d",a[i] ) ;

printf("\n" );

}

12、下列程序中字符串中各单词之间有一个空格,则程序的输出结果是_How does she _____。

# include

main( )

{ char str1[ ]="How do you do", *p1=str1;

strcpy(str1+strlen(str1)/2,"es she");

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

156、以下程序的输出结果是__3____。

#include

#define N 5

int fun(int *s,int a,int n)

{ int j;

*s=a; j=n;

while(a!=s[j]) j--;

return j;

}

main()

{ int s[N+1]; int k;

for(k=1;k<=N;k++) s[k]=k+1;

printf("%d\n",fun(s,4,N));

}

9、以下程序的输出结果是___7___。

#define MAX(x,y) (x)>(y)?(x):(y)

main()

{

int a = 5, b = 2,c = 3, d = 3, t;

t = MAX(a + b, c + d)*10;

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

}

四.(9)

149、以下程序的输出结果是_13_____。

#include

void fun(int x)

{ if(x/2>0) fun(x/2);

printf("%d",x);

}

main()

{ fun(3); printf("\n");

}

153、若整型变量a和b中的值分别为7和9,要求按以下格式输出a和b的值:

a=7

b=9

请完成输出语句:printf("_a=%d\nb=%d_____",a,b); 。

139、设有说明

struct DATE { int year;int month;int day;};

请写出一条定义语句,该语句定义 d 为上述结构体类型变量,并同时为其成员 year、month、day依次赋初值2006、10、1:_struct DATE d={2006,10,1};_____。

123、以下isprime函数的功能是判断形参a是否为素数,是素数,函数返回1,否则返回0。请填空。

int isprime(int a)

{ int i;

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

if(a%i==0) _return 0_____;

_if(i>a/2) return 1_____;

}

128、以下程序的功能是:将输入的正整数按逆序输出。例如:若输入135则输出531。请填空。

#include

main()

{ int n, s;

printf ("Enter a number: "); scanf ("%d",&n);

printf ("Output: ");

do

{ s = n%10; printf ("%d",s); n=n/10______; }

while (n!=0);

printf ("\n");

}

154、以下程序的输出结果是_1_____。

#include

main()

{ int i,j,sum;

for(i=3;i>=1;i--)

{ sum=0;

for(j=1;j<=i;j++) sum+=i*j;

}

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

}

152、设变量a和b已正确定义并赋初值。请写出与a-=a+b等价的赋值表达式__a=-b____。

137、以下程序的输出结果是__10____。

int fun(int *x,int n)

{ if(n==0) return x[0];

else return x[0]+fun(x+1,n-1);

}

main()

{ int a[]={1,2,3,4,5,6,7}; printf("%d\n",fun(a,3)); }

24、以下程序的输出结果是_16_____。

#define MCRA(m) 2*m

#define MCRB(n,m) 2*MCRA(n)+m

main()

{ int i=2,j=3;

printf("%d\n",MCRB(j,MCRA(i)));

}

34、下面程序的运行结果是:____6__。

int f(int a[],int n)

{ if(n>1) return a[0]+f(&a[1],n-1);

else return a[0];

}

main()

{ int aa[3]={1,2,3},s;

s=f(&aa[0],3); printf("%d\n",s);

}

7、以下程序中,函数SumColumMin的功能是:求出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+=____a[k][i]__ ;

}

_____sum_ =s;

}

main()

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

SumColumMin(_____x,&s_);

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

}

109、若有程序

main()

{ int i,j;

scanf("i=%d,j=%d",&i,&j);

printf("i=%d,j=%d\n ",i,j);

}

要求给i赋10,给j赋20,则应该从键盘输入______。

60、下列程序的运行结果是__4,8____。

main()

{ union EXAMPLE

{ struct

{ int x; int y; } in;

int a;

int b;

}e;

e.a=1;e.b=2;

e.in.x=e.a*e.b;

e.in.y=e.a+e.b;

printf("%d,%d\n",e.in.x,e.in.y);

}

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

int mystrlen(char *str)

{ int i;

for(i=0;______!='\0';i++);

return( ______ );

}

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

______=x;

}

}

94、以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。

file *myf; long f1;

myf=__ __("test.t","rb");

fseek(myf,(),SEEK_END);f1+ftell(myf);

fclose(myf);

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

119、以下程序的输出结果是_30_____。

main()

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

for(i=0;i<3;i++) s+=a[i][i]+ a[i][3-i-1];

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

}

相关文档
最新文档