首页 理论教育 C语言程序设计强化训练2:计算机类知识点复习指导

C语言程序设计强化训练2:计算机类知识点复习指导

时间:2023-10-25 理论教育 版权反馈
【摘要】:A.a\bre\'hi\'y\\\bouB.a\bre\'hi\'y\bouC.re'hi'youD.abre'hi'ybou5.有以下程序main(){char a1='M',a2='m';printf;}以下叙述中,正确的是()。main(){char a='1',b='2';printf;printf;}A.3.2B.50.2C.2.2D.2.509.以下程序运行后的输出结果是()。main(){char a='a',b;printf;printf;}A.b,bB.b,cC.a,bD.a,c10.有以下程序,若运行时从键盘输入;6,5,65,66<回车>,则输出结果是()。A.4B.1C.2D.5二、程序填空题1.函数sum使用递归完成表达式的运算:sum=12+23+n(n+1)。

C语言程序设计强化训练2:计算机类知识点复习指导

1.以下程序的输出结果是( )。

main()

{ int n=4;

while(n--)

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

}

A.20 B.31 C.321 D.210

2.设有如下定义和执行语句,其输出结果为( )。

int a=2,b=3;

a=--b+1;

printf("%d %d",a,b);

A.3 2 B.4 2 C.5 2 D.0 3

3.有如下语句:

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

执行语句后的最终结果为( )。

A.COMPUTER,CMP .B)COMPUTER, CO M.

C.COMPU, CM P.D)COMPU,COM .

4.语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是( )。

A.a\bre\'hi\'y\\\bou B.a\bre\'hi\'y\bou

C.re'hi'you D.abre'hi'ybou

5.有以下程序

main()

{ char a1='M',a2='m';

printf("%c\n",(a1,a2));

}

以下叙述中,正确的是( )。

A.程序输出大写字母M B.程序输出小写字母m

C.格式说明符不足,编译出错 D.程序运行时产生出错信息

6.设a、b 和z 均为int 型变量,则执行语句a=(b=(c=10)+5)-5;后,a,b,c 的值是( )。

A.a=10 B.a=10 C.a=10 D.a=10

b=15b=10b=10b=5

c=10c=10c=15c=10

7.有以下程序,当运行时输入;a<回车>后,以下叙述正确的是( )。

#include <stdio.h>

main()

{ char c1='1',c2='2';

c1=getchar();c2=getchar();putchar(c1);putchar(c2);

}

A.变量c1 被赋予字符a,c2 被赋予回车符

B.程序将等待用户输入第二个字符

C.变量c1 被赋予字符a,c2 中仍是原有字符

D.变量c1 被赋予字符a,c2 中将无确定值

8.数字字符0 的ASCII 码值为48,若有以下程序,程序运行后的输出结果是( )。

main()

{ char a='1',b='2';

printf("%c.",b++);

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

}

A.3.2 B.50.2 C.2.2 D.2.50

9.以下程序运行后的输出结果是( )。

main()

{ char a='a',b;

printf("%c,",++a);

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

}

A.b,b B.b,c C.a,b D.a,c

10.有以下程序,若运行时从键盘输入;6,5,65,66<回车>,则输出结果是( )。

main()

{ char a,b,c,d;

scanf("%c,%c,%d,%d",&a,&d,&c,&d);

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

}

A.6,5,A,B B.6,5,65,66 C.6,5,6,5 D.6,5,6,6

11.已定义ch 为字符型变量,以下赋值语句中,错误的是( )。

A.ch=' \ ' B.ch=62+3; C.ch=NULL; D.ch=' \ xaa';

13.下面程序段,( )(每行代码前面的数字表示行号)。

1 int a[3]={3∗0};

2 int i;

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

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

5 printf("%d\n",a[0]);

A.第一行有错误 B.第五行有错误 C.第三行有错误 D.没有错误

14.下面程序段,( )。

1 float a[10]={0.0};

2 int i;

3 for(i=0;i<3;i++)scanf("%f",&a[i]);

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

5 printf("%d\n",a[0]);

A.没有错误 B.第一行有错误 C.第三行有错误 D.第五行有错误

15.下面程序段中有错误的行号是( )。

1 int a[3]={1};

2 int i;

3 scanf("%d",&a);

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

5 printf("a[0]=%d\n",a[0]);

A.1 B.4 C.5 D.3

16.下面程序段,( )。

1 int a[3]={0},i;

2 for(i=0;i<3;i++)scanf("%d",&a[i]);

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

4 printf("%d\n",a[0]);

A.没有错误 B.第一行有错误 C.第二行有错误 D.第三行有错误

17.以下程序的输出结果是( )。

main()

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

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

}

A.1 5 9 B.1 4 7 C.3 5 7 D.3 6 9

18.以下关于数组的描述正确的是( )。

A.数组的大小是固定的,但可以有不同类型的数组元素

B.数组的大小是可变的,但所有数组元素的类型必须相同

C.数组的大小是固定的,但所有数组元素的类型必须相同

D.数组的大小是可变的,但可以有不同类型的数组元素

19.下面程序段运行时输出结果是( )。

char s[12]="A book";

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

A.12 B.8 C.7 D.6

20.在执行int a[][3]={1,2,3,4,5,6};语句后,a[1][0]的值是( )。

A.4 B.1 C.2 D.5

二、程序填空题

1.函数sum(n)使用递归完成表达式的运算:sum(n)=1∗2+2∗3+n∗(n+1)。

int sum(n){

if(n==1)

return____①___;

else

return____②___;

}

2.编写函数,通过指针将一个字符串反向。如下程序的输出为:dcba。

void strReverse(char ∗s)

{ char c;

char∗p;

____①___;

while(∗p!='\0')

p++;

____②___;

while(s<=p)

{ c=∗s;

∗s=∗p;

s++;

∗p=c;

____③___;

}

}

main()

{ char a[10]="abcd";

strReverse(a);

printf("%s",a);}

3.打印以下杨辉三角形。(要求打印出5 行)

main()

{ int a[5][5],i,j ; 1

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

{____①___;____②___;} 1 2 1

for(i=2;i<5;i++ ) 1 3 3 1

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

a[i][j]=____③___;

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

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

printf("%5d",a[i][j]);

printf("\n");}

}

}

4.将一个数组中的元素按逆序重新存放。例如原来的顺序为8,5,7,4,1,要求改为1,

4,7,5,8。

#define N 7

void main()

{ int a[N]={12,9,16,5,7,2,1},k,s;

printf("\n 初始数组:\n");

for(k=0;k<N;k++)(www.xing528.com)

printf("%4d",a[k]);

for(k=0;k<____①___;k++)

{s=a[k];a[k]=____②___;____③___=s;}

printf("\n 交换后的数组:\n");

for(k=0;____④___;k++)

printf("%4d",a[k]);

}

5.有一行文字,要求删去某一个字符。此行文字和要删去的字符均由键盘输入,要删去的字符以字符形式输入(如输入a,表示要删去所有的a 字符)。

#include <stdio.h>

void main()

{ /∗str1 表示原来的一行文字,str2 表示删除指定字符后的文字∗/

char str1[100],str2[100];

char ch;

int i=0,k=0;

printf("please input an sentence:\n");

gets(str1);

scanf("%c",&ch);

for(i=0;____①___;i++)

if(str1[i]!=ch)

{str2[____②___]=str1[i];k++;}

str2[____③___]=' \0';

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

}

6.找出10 个字符串中的最大者。

#include <stdio.h>

#include <string.h>

#define N 10

void main()

{ char str[20],s[N][20];

int i;

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

gets(____①___);

strcpy(str,s[0]);

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

if(____②___>0) strcpy(str,s[i]);

printf("The longest string is:\n%s\n",str);

}

三、根据程序写结果

1.程序运行结果是________。

fun1(int a,int b)

{ int c;

a+=a;b+=b;c=fun2(a,b);

returnc∗c;

}

fun2(int a,int b)

{ int c;

c=a∗b%3;

returnc;

}

main()

{ int x=11,y=19;

printf("The final result is:%d\n",fun1(x,y));

}

2.程序运行结果是________。

int x;

main()

{ x=5;

cude();

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

}

cude()

{ x=x∗x∗x;}

3.程序运行结果是________。

#include <stdio.h>

long fun(int n)

{ long s;

if(n==1‖n==2)

s=2;

else s=n+fun(n-1);

return s;

}

main()

{ printf("%1d\n",fun(4));}

4.程序运行结果是________。

main()

{ int i;

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

add();

}

add()

{ int x=0;

static int y=0;

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

x++;y=y+2;

}

5.程序运行结果是________。

main()

{ int k=4,m=1,p;

p=func(k,m);printf("%d,",p);

p=func(k,m);printf("%d\n",p);

}

func(int a,int b)

{ static int m=0,i=2;

i+=m+1;m=i+a+b;

return m;

}

6.程序运行结果是________。

#include <stdio.h>

struct st { int x;int ∗y;} ∗p ;

int dt[4]={10,20,30,40};

struct st aa[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3] };

void main()

{ p=aa;

printf("%d,",++p->x);

printf("%d,",(++p)->x);

printf("%d\n",++(∗p->y));

}

7.程序运行结果是________。

#include <stdio.h>

union myun

{ struct

{int x,y,z;} u;

int k;

} a;

void main()

{ a.u.x=4;a.u.y=5;a.u.z=6;

a.k=0;

printf("%d\n",a.u.x);

}

8.程序运行结果是________。

#include <stdio.h>

struct STU

{ char num[10];float score[3];};

void main()

{ struct STU s[3]={{"20021",90,95,85},{"20022",95,80,75},{"20023",100,95,90}},∗p=s;

int i;float sum=0;

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

sum=sum+p->score[i];

printf("%6.2f\n",sum);

}

9.程序运行结果是________。

#include <stdio.h>

#include <stdlib.h>

struct NODE

{ int num;struct NODE ∗next;};

void main()

{ struct NODE ∗p,∗q,∗r;

p=(struct NODE∗)malloc(sizeof(struct NODE));

q=(struct NODE∗)malloc(sizeof(struct NODE));

r=(struct NODE∗)malloc(sizeof(struct NODE));

p->num=10;q->num=20;r->num=30;

p->next=q;q->next=r;

printf("%d\n",p->num+q->next->num);

}

10.程序运行结果是________。

#include <stdio.h>

typedef union student

{ char name[10];

long sno;

char sex;

float score[4];

} STU;

void main()

{ STU a[5];

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

}

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈