C语言考试题及答案.docx

上传人:b****2 文档编号:1910428 上传时间:2022-10-25 格式:DOCX 页数:14 大小:18.81KB
下载 相关 举报
C语言考试题及答案.docx_第1页
第1页 / 共14页
C语言考试题及答案.docx_第2页
第2页 / 共14页
C语言考试题及答案.docx_第3页
第3页 / 共14页
C语言考试题及答案.docx_第4页
第4页 / 共14页
C语言考试题及答案.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

C语言考试题及答案.docx

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

C语言考试题及答案.docx

C语言考试题及答案

一、单项选择题:

〔10分,每题2分〕

1.char*p[10];该语句声明了一个:

A)指向含有10个元素的一维字符型数组的指针变量p

B)指向长度不超过10的字符串的指针变量p

C)有10个元素的指针数组p,每个元素可以指向一个字符串

D)有10个元素的指针数组p,每个元素存放一个字符串

2.假设int*;且有下面的程序片断,则输出结果为:

for(*=3;*<6;*++)

{

printf((*%2)""**%d":

"**%d\n",*);

}

A)**3B)**3C)**3D)**3**4

**4**4**4**5**5

**5**5

3.在while〔!

*〕语句中的!

*与下面条件表达式等价的是:

A)*!

=0B)*==1C)*!

=1D)*==0

4.

structpoint

{

int*;

inty;

};

structrect

{

structpointpt1;

structpointpt2;

};

structrectrt;

structrect*rp=&rt;

则下面哪一种引用是不正确的________。

A))(*rp).pt1.*C)rp->pt1.*D)rt->pt1.*

5.假设二维数组a有m行n列,则下面能够正确引用元素a[i][j]的为:

A)*(a+j*n+i)B)*(a+i*n+j)C)*(*(a+i)+j)D)*(*a+i)+j

CDDDC

二、分析程序并写出运行结果。

(25分,每题5分)

1.*include

main()

{intn;

staticchar*monthName[]=

{"Illegalmonth","January","February",

"March","April","May","June","July","August",

"September","October","November","December"};

for(n=1;n<=12;n++)

{

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

}

}

运行结果是:

January

February

March

April

May

June

July

August

September

October

November

December

2.*include

*defineARR_SIZE7

voidYH(inta[][ARR_SIZE],intn);

voidPrintYH(inta[][ARR_SIZE],intn);

main()

{inta[ARR_SIZE][ARR_SIZE];

YH(a,ARR_SIZE-1);

PrintYH(a,ARR_SIZE-1);

}

voidYH(inta[][ARR_SIZE],intn)

{inti,j;

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

{

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

{

if(j==1||i==j)

{

a[i][j]=1;

}

else

{

a[i][j]=a[i-1][j-1]+a[i-1][j];

}

}

}

}

voidPrintYH(inta[][ARR_SIZE],intn)

{

inti,j;

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

{

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

{

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

}

printf("\n");

}

}

运行结果是:

1

11

121

1331

14641

15101051

3.

*include

main()

{

inti,n;

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

{

printf("Pleaseentern:

");

scanf("%d",&n);

if(n<=0)continue;

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

}

printf("Programisover!

\n");

}

程序运行时输入:

1-23-45↙

运行结果是:

n=1

Pleaseentern:

Pleaseentern:

n=3

Pleaseentern:

Pleaseentern:

n=5

Programisover!

4.

*include

voidFunc(intn);

main()

{

inti;

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

{

Func(i);

}

}

voidFunc(intn)

{

staticintt=1;

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

}

运行结果是:

t=1

t=2

5.

*include

intFunc(inti);

main()

{

inti;

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

{

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

}

printf("\n");

}

intFunc(inti)

{

staticintk=10;

for(;i>0;i--)

{

k++;

}

return(k);

}

运行结果是:

1317

三、阅读并完成程序,在标有下划线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。

〔20分,每空2分〕

1.下面程序用于读入10个字符串,然后找出最大的字符串并打印。

*include

*include

main()

{

charstr[10][80],ma*string[80];

inti;

printf("Entertenstrings:

\n");

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

{

scanf("%s",str[i]);

}

strcpy(ma*string,str[0]);

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

{

if(strcmp(ma*string,str[i])<0)或strcmp(str[i],ma*string)>0

{

strcpy(ma*string,str[i]);

}

}

printf("Thema*stringis:

%s\n",ma*string);

}

2.下面这个程序用于交换两个数组的对应元素的值。

*include

*defineARRAY_SIZE10

voidSwap(int**,int*y);

voidE*change(inta[],intb[],intn);

voidInputArray(inta[],intn);

voidPrintArray(inta[],intn);

main()

{

inta[ARRAY_SIZE],b[ARRAY_SIZE],n;

printf("Inputarraylenthn<=10:

");

scanf("%d",&n);

printf("Inputarraya:

\n");

InputArray(a,n);

printf("Inputarrayb:

\n");

InputArray(b,n);

E*change(a,b,n);

printf("Afterswap:

\n");

printf("Arraya:

\n");

PrintArray(a,n);

printf("Arrayb:

\n");

PrintArray(b,n);

}

voidSwap(int**,int*y)

{

inttemp;

temp=**;

**=*y;

*y=temp;

}

voidE*change(inta[],intb[],intn)

{inti;

for(i=0;i

Swap(&a[i],&b[i]);

}

voidInputArray(inta[],intn)

{inti;

for(i=0;i

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

}

voidPrintArray(inta[],intn)

{inti;

for(i=0;i

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

printf("\n");

}

3.从键盘任意输入一个年号,判断它是否是闰年。

假设是闰年,输出"Yes",否则输出"No"。

符合以下条件之一者是闰年:

能被4整除,但不能被100整除。

能被400整除。

*include

main()

{intyear,flag;

printf("Enteryear:

");

scanf("%d",&year);

if(year%4==0&&year%100!

=0||year%400==0)

flag=1;

else

flag=0;

if(flag)

printf("Yes!

\n");

else

printf("No!

\n");

}

四、在下面给出的4个程序中,共有15处错误〔包括语法错误和逻辑错误〕,请找出其中的错误,并改正之。

〔在错误的代码下边画一根横线,把正确的代码写在旁边;漏掉的代码正确插入适宜的位置。

30分,每找对1个错误,加1分,每修改正确1个错误,再加1分。

1.编程计算矩阵相乘之积。

*include

*defineROW2

*defineCOL3

//voidMultiplyMatri*(inta[ROW][COL],intb[COL][ROW],intc[ROW][ROW]);

main()

{inta[ROW][COL],b[COL][ROW],c[ROW][ROW],i,j;

printf("Inputarraya:

\n");

for(i=0;i

for(j=0;j

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

printf("Inputarrayb:

\n");

for(i=0;i

for(j=0;j

scanf("d",&b[i][j]);

MultiplyMatri*(a,b,c);

printf("Results:

\n");

for(i=0;i

for(j=0;j

printf("%6d",&c[i][j]);//c[i][j]

printf("\n");

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

当前位置:首页 > 外语学习 > 韩语学习

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

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