C语言复习题.docx

上传人:b****4 文档编号:4344847 上传时间:2022-11-30 格式:DOCX 页数:16 大小:18.99KB
下载 相关 举报
C语言复习题.docx_第1页
第1页 / 共16页
C语言复习题.docx_第2页
第2页 / 共16页
C语言复习题.docx_第3页
第3页 / 共16页
C语言复习题.docx_第4页
第4页 / 共16页
C语言复习题.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

C语言复习题.docx

《C语言复习题.docx》由会员分享,可在线阅读,更多相关《C语言复习题.docx(16页珍藏版)》请在冰豆网上搜索。

C语言复习题.docx

C语言复习题

一、填空共17题(共计60分)

第1题(2.0分)

运行以下程序时,输出结果是【1】

longfit(intn)

{if(n>2)return(fit(n-1)+fit(n-2));

elsereturn(3);}

main()

{printf("%ld\n",fit(4));}

第2题(2.0分)

以下程序运行后的输出结果是【1】.

 

#include

 

voidmain()

 

{charch[]="abc",x[3][4];inti;

 

for(i=0;i<3;i++)strcpy(x[i],ch);

 

for(i=0;i<3;i++)printf("%s",&x[i][i]);

 

printf("\n");

 

}

 

第3题(2.0分)

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

 

#include

 

main()

 

{charb[30];

 

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

 

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

 

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

 

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

 

}

 

第4题(2.0分)

运行以下程序时,输出结果是【1】

#include

intb;

intfun(inta)

{staticintc=2;

return((++a)+(++b)+(++c));

}

voidmain()

{inti,a=1;

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

printf("%5d",fun(a));

}

第5题(2.0分)

在函数内部声明局部变量时缺省了存储类型,则该变量存储类型是【1】.

第6题(2.0分)

有以下定义和语句

 

structdate

 

{intday;

 

intmonth;

 

intyear;

 

union

 

{intshare1;

 

floatshare2;

 

}share;

 

}a;

 

则sizeof(a)的值是【1】.

第7题(2.0分)

以下程序的运行结果是【1】

main()

{inta[3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}};

inti;

int(*p)[4]=a;

printf("a[2][3]=%d\n",i,j,*(*(p+i)+j));

}

第8题(2.0分)

以下程序的运行结果是【1】

voidswap(int**r,int**s)

{int*t;

t=*r;

*r=*s;

*s=t;

}

main()

{inta=1,b=2,*p,*q;

p=&a;

q=&b;

swap(&p,&q);

printf("%d,%d\n",*p,*q);

}

第9题(4.0分)

以下程序运行时,输出结果的第一行是【1】,第二行是【2】.

 

#include

 

voidf(int*x,inty)

 

{*x=y+1;y=*x+2;}

 

main()

 

{inta=2,b=2;

 

f(&a,b);

 

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

 

}

第10题(4.0分)

设有以下main函数

 

main(intargc,char*argv[])

 

{while(argc>1)

 

{++argv;

 

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

 

--argc;

 

}

 

}

 

经过编译、连接后得到可执行文件名为c1.exe,

 

若在系统的命令状态下输入命令行:

c1nanjingxiaozhuangcollege<回车>,

 

则在第一行输出【1】,第三行输出【2】.

第11题(4.0分)

请填空以使程序完整。

有一个m*n的矩阵,以下程序的功能是求出其中值最大的元素的值,以及相应得行号和列号。

#defineM4

#defineN3

main()

{

inti,j,row=0,colum=0,max;

inta[M][N]={{1,23,3},{4,8,6},{17,6,1},{0,11,17}};

【1】;

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

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

if(【2】)

{

max=a[i][j];

row=i;

colum=j;

}

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

}

第12题(4.0分)

以下程序的功能是:

将无符号八进制数字构成的字符串转换为十进制整数.例如,输入的字

 

符串为:

556,则输出十进制整数366.请填空.

 

#include

 

main()

 

{chars[6];

 

intn,i=0;

 

gets(s);

 

n=【1】-'0';

 

while(【2】!

='\0')n=n*8+s[i]-'0';

 

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

 

}

第13题(6.0分)

该程序功能是:

将有10个元素的整型数组a中下标值为偶数的元素从大到小排列,其他元素不变。

请填空以使程序完整。

#definek10

main()

{

inta[k]={1,2,5,7,9,3,4,6,8,10},t;

inti,j;

for(i=0;i

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

for(i=0;i<=【1】;i=i+2)

for(j=i+2;j

if(【2】)

{t=a[i];【3】;a[j]=t;}

for(i=0;i

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

printf("\n");

}

第14题(6.0分)

请填空以使程序完整。

该程序的功能是把从键盘输入的十进制(long型)以16进制数的形式输出。

#include

main()

{

charb[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};

intc[64],d,i=0;

longn;

printf("Enteranumber:

\n");scanf("%ld",&n);

do

{

c[i]=【1】;

i++;

n=【2】;

}while(n!

=0);

printf("Transmitemewbase:

\n");

for(--i;i>=0;--i)

{

【3】;

printf("%c",b[d]);

}

}

第15题(6.0分)

阅读以下程序

 

main()

 

{char*str[3]={"Fortrain","Prolog","Pascal"};

 

char**p;

 

inti;

 

p=str;

 

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

 

printf("%c\n",(*(*p+3)+1));

 

}

 

该程序第1行、第2行及最后一行的输出分别为【1】、【2】和【3】.

第16题(6.0分)

以下程序使用递归方法求数组中的最大值及其下标值,请填空:

#defineM10

voidfindmax(int*a,intn,inti,int*pk)

{if(i

{if(a[i]>a[*pk])【1】;

findmax(a,n,i+1,【2】);

}

}

main()

{inta[M],i,n=0;

printf("\nEnter%ddata:

\n",M);

for(i=0;i

scanf("%d",【3】);

findmax(a,M,0,&n);

printf("Themaximumis:

%d\n",a[n]);

printf("it'sindexis:

%d\n",n);

}

第17题(4.0分)

阅读以下程序

 

main()

 

{char*str[3]={"Basic","VisualC++","Pascal"};

 

char**p;

 

inti;

 

p=str;

 

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

 

printf("%c\n",(*(*p+3)+1));

 

}

 

该程序第1行、第2行及最后一行的输出分别为【1】、【2】和【3】.

二、单项选择共20题(共计40分)

第1题(2.0分)

以下合法的赋值语句是().

A:

x=y=100

B:

d--;

C:

x+y

D:

c=int(a+b);

 

第2题(2.0分)

已知字符A的ASCII码为65,则执行下列函数调用语句时,不能输出字符B的是().

A:

putchar('B');

B:

putchar("B");

C:

putchar(66);

D:

putchar('\x42');

第3题(2.0分)

若以下选项中的变量已正确定义,则正确的赋值语句是().

A:

x1=86.8%3

B:

1+9=x2

C:

x3=0x1f

D:

x4=1+6=7

 

第4题(2.0分)

若有声明"intx=2,y=1,z=0;",则下列关系表达式中有语法错误的是________.

A:

x>y=2

B:

z>y>x

C:

x>y==1

D:

x==(x=0,y=1,z=2)

第5题(2.0分)

有声明intx=2;,以下表达式中值不等于8的是________.

A:

x+=2,x*2

B:

x+=x*=x

C:

(x+7)/2*((x+1)%2+1)

D:

x*7.2/x+1

第6题(2.0分)

若有数组A和B的声明"staticcharA[]="ABCDEF",B[]={'A','B','C','D','E','F'};"

则数组A和数组B的长度分别是________.

A:

7,6

B:

6,7

C:

6,6

D:

7,7

第7题(2.0分)

以下程序运行后的输出结果是________.

main()

{chara[7]="a0\0a0\0";inti,j;

i=sizeof(a);j=strlen(a);

printf("%d%d",i,j);

}

A:

22

B:

72

C:

75

D:

62

第8题(2.0分)

以下不正确的说法为()

A:

在函数内的复合语句中定义的变量在本函数范围内有效

B:

在不同函数中可以使用相同名字的变量

C:

在函数内定义的变量只在本函数范围内有效

D:

形式参数是局部变量

第9题(2.0分)

以下程序运行结果()

longfun(intn)

{longs;

if(n==1||n==2)s=2;

elses=n-fun(n-1);

returns;}

main()

{printf("%d\n",fun(3));

}

A:

2

B:

1

C:

0

D:

10

第10题(2.0分)

下面程序运行后的输出结果是______.

main()

{chararr[2][4];

strcpy(arr[0],"you");

strcpy(arr[1],"me");

arr[0][3]='&';

printf("%s\n",arr[0]);

}

A:

you&me

B:

you

C:

me

D:

err

第11题(2.0分)

以下叙述正确的是().

A:

一个用C语言编写的程序在运行时总是从main函数开始逐条执行

B:

main函数是系统库函数

C:

main函数中每行只能出现一条语句

D:

main函数必须出现在所用其它函数之前

第12题(2.0分)

语句printf("%d",(a=2)&&(b=-2));的输出结果是()

A:

无输出

B:

结果不确定

C:

-1

D:

1

第13题(2.0分)

若有函数fun的定义为

voidfun(…)

{staticinta=1;

……

}

则下列叙述中不正确的是().

A:

在每次调用fun函数时,变量a的值是上次调用结束时a的值

B:

在fun函数之外,可以用变量名a直接引用a的值

C:

在其它函数中,可以出现声明doublea=2.5;

D:

fun函数的形式参数不能取名为a

第14题(2.0分)

以下程序输出结果是()

#include

voidmain()

{

inti,a[10];

for(i=9;i>=0;i--)

a[i]=10-i;

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

}

A:

852

B:

741

C:

862

D:

369

第15题(2.0分)

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

main()

{

inti;

for(i='A';i<=T;i++)printf("%c",i+32);

printf("\n");

}

A:

编译不通过,无输出

B:

ABCDEFGH

C:

abcdefghi

D:

abcdefgh

第16题(2.0分)

以下关于if语句,描述错误的是().

A:

条件表达式可以是任意的表达式

B:

条件表达式只能是关系表达式或逻辑表达式

C:

条件表达式的括号不可以省略

D:

与else配对的if语句是其之前最近的未配对的if语句

第17题(2.0分)

以下程序段循环执行的次数是().

intk=0;

while(k=1)k++;

while

A:

无限次

B:

有语法错,不能执行

C:

一次也不执行

D:

执行1次

第18题(2.0分)

以下正确的叙述是()

A:

在C程序中,语句之间必须要用分号";"分隔

B:

若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型

C:

在C程序中,无论是整数还是实数,都能准确无误地表示

D:

在C程序中,%是只能用于整数运算的运算符

 

第19题(2.0分)

若有以下定义,则对a数组元素的正确引用是()

inta[5],*p=a;

A:

p+5

B:

*(a+2)

C:

a+2

D:

&a+1

第20题(2.0分)

以下程序执行后的输出结果是().

main()

{inti,s=0;

for(i=1;i<10;i+=2)s+=i+1;

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

}

A:

自然数1~9的累加和

B:

自然数1~10的累加和

C:

自然数1~9中的奇数之和

D:

自然数1~10中的偶数之和

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 自然景观

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1