您的当前位置:首页c语言程序阅读题目(带解释)

c语言程序阅读题目(带解释)

2022-04-11 来源:飒榕旅游知识分享网


阅读程序模拟题

1.下面程序执行结果是

#include

void swap(int *,int *);

void main()

{

int a=5, b=7, *ptr1, *ptr2;

ptr1=&a, ptr2=&b;

swap (ptr1,ptr2);

printf(“*ptr1=%d,*ptr2=%d\\n”,*ptr1,*ptr2);

printf(“a=%d,b=%d\\n”,a,b);

}

void swap (int *p1, *p2)

{

int p;

p=*p1;

*p1=*p2;

*p2=p;

}

2.输入we are students ,下面程序运行结果 3

#include *(求输入的单词数)

void main()

{ char string[81];

int i,num=0,word=0;

char c;

gets(string);

for(i=0;(c=string[i])!='\\0';i++)

if(c==' ') word=0;

else if(word==0)

{

word=1;

num++;

}

printf(\" %d\\n\

}

3.下面程序的运行结果是 2 4 5 7 6 0 11 9 7 3

#include (求已输入数据的反置式子)

void inv(int x[], int n);

void main()

{ int i,a[10]={3,7,9,11,0,6,7,5,4,2};

inv(a,10);

printf(\"The array has been reverted:\\n\");

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

printf(\"%d,\

printf(\"\\n\");

}

void inv(int x[], int n)

{ int t,i,j,m=(n-1)/2;

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

{

j=n-1-i;

t=x[i];

x[i]=x[j];

x[j]=t;

}

}

4.下面程序的运行结果是 char *a=I am a teacher

char *b=I am a teacher

#include

void copy_string(char *,char *);

void main()

{ char *a=\"I am a teacher.\";

char *b=\"You are a student.\";

copy_string(a,b);

printf(\"\\nstring_a=%s\\nstring_b=%s\\n\

}

void copy_string(char *from,char *to)

{ for(;*from!='\\0';from++,to++)

*to=*from;

*to='\\0';

}

5.下面程序的运行的功能是 BASIC

Computer

FORTRAN

Follow me

Great Wall

(按从小到大排列单词)

#include

#include

void sort(char *name[],int );

void print(char *name[],int);

void main()

{

char *name[]={\"Follow me\

\"Great Wall\

int n=5;

sort(name,n);

print(name,n);

}

void sort(char *name[],int n)

{ char *temp;

int i,j,k;

for(i=0;i{ k=i;

for(j=i+1;jif(strcmp(name[k],name[j])>0(若换成<0则是按从大到小)) if(k!=i)

{

temp=name[i];

name[i]=name[k];

name[k]=temp;}

}

}

void print(char *name[],int n)

k=j;

{

int i;

for(i=0;iputs(name[i]);

}

6. 输入5回车后,下面程序的执行结果是 120

#include(求阶乘)

long int fac(int );

void main()

{

int n;

scanf(\"%d\

printf(\"%d\\n\

}

long int fac(int m)

{

long int f;

if(m<0)

printf(\"data error!\\n\");

else if(m==0||m==1)

f=1;

else

f=fac(m-1)*m;

return f;

}

7.下面程序执行的结果是: li 3

Zhang 3

Wang 2

统计选票数目

输入如下数据:

Li

Zhang

Li

Li

Wang

Zhang

Wang

Zhang

#include

struct person

{

char name[20];

int count;

}leader[3]={ \"Li\

void main()

{ int i,j;

char leader_name[20];

for(i=1;i<=8;i++)

{

scanf(\"%s\

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

if(strcmp(leader_name,leader[j].name)==0)

leader[j].count++;

}

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

printf(\"%5s:%d\\n\

}

8.输入17,下面程序执行的结果是 17 is a prime number

#include(判断一个数是否是素数)

#include

void main()

{

int m,i,k;

scanf(\"%d\

k=sqrt(m);

for(i=2;i<=k;i++)

if(m%i==0)break;

if(i>k)

printf(\"%d is a prime number\\n\

else

printf(\"%d is not a prime number\\n\

}

9.下面程序执行的结果是

#include

#include

void main()

{

int a[3][3], i, j;

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

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

{

switch(abs(i-j))

{

case 0: if(i==0||i==2)

a[i][j]+=3;

else

a[i][j]++;

break;

case 1: a[i][j]+=2; break;

case 2: a[i][j]+=3;

}

}

printf(\"%d , %d , %d\

}

10.写出下面程序的运行结果: 8,17

#include

int func (int ,int );

void main ( )

{

int k=4,m=1,p1,p2;

p1=func(k,m) ;

p2=func(k,m) ;

printf(“%d,%d\\n”,p1,p2) ;

}

int func (int a,int b)

{

Static(静态变量,执行完成后保留值) int m=0,i=2;

i+=m+1;

m=i+a+b;

return (m);

}

11.以下程序执行后输出的结果是 123,0

#include

void main( )

{

FILE *fp;

int i,k=0,n=0;

fp=fopen(\"d1.dat\

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

fprintf(fp, \"%d\

fclose(fp);

fp=fopen(\"d1.dat\

fscanf(fp, \"%d%d\

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

fclose(fp);

}

12.以下程序执行后输出的结果是 3个空格 1 3个空格2

3个空格3 3个空格4

3个空格5 3个空格6

#include

void main()

{

int a[2][3]={{1,3,5},{2,4,6}};

int b[3][2],i,j;

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

{

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

{

b[j][i]=a[i][j];

}

}

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

{

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

printf(\"%4d\j]);(输出4列,不足的前头补空)

printf(\"\\n\");

}

}

13.若输入的值是-75,以下程序的运行结果是 -3*5*5

#include(求一个数的乘法分解)

#include

void fun(int );

void main( )

{ int n;

scanf(\"%d\

if(n<0) printf(\"-\");

n=abs(n);

fun(n);

}

void fun(int x)

{

int k,r;

for(k=2;k{ r=x%k;

while(r==0)

{

printf(\"%d\

x=x/k;

if(x>1) printf(\"*\");

r=x%k;

}

}

if(x!=1) printf(\"%d\\n\

}

14.以下程序的运行结果是 4

#include

#include

struct NODE

{

int num;

struct NODE *next;

};

void main( )

{

struct NODE *p,*q,*r;

int sum=0;

p=(struct NODE*) malloc(sizeof(struct q=(struct NODE *) malloc(sizeof(struct r=(struct NODE *) malloc(sizeof(struct p->num=1;

q->num=2;

r->num=3;

p->next=q;

q->next=r;

r->next=NULL;

NODE));

NODE));

NODE));

sum+=q->next->num;

sum+=p->num;

printf(\"%d\\n\

}

15.输入87653142,下面程序运行的结果是 7531

#include(取出数字中的奇数并组成新的数字)

void fun(long int , long int *);

void main()

{

long s, t;

scanf(\"%ld\

fun(s, &t);

printf(\"%ld\\n\

}

void fun(long int s, long int *t)

{

int d;

long s1=1;

*t=0;

while(s>0)

{

d=s%10;

if(d%2!=0)(若改成=0,则输出数字中的偶数,并组成新的数字)

{

*t=d*s1+*t;

s1*=10;

}

s/=10;

}

}

16.下面程序运行的结果 13431

#include

struct NODE

{

int k;

struct NODE *link;

};

void main()

{

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

int i=0;

while(p!=q)

{

p->k=++i;/*p指向k*/

p++;

q->k=i++;

q--;

}

q->k=i;

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

printf(\"%d\

printf(\"\\n\");

}

因篇幅问题不能全部显示,请点此查看更多更全内容