C语言复习题.docx

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

C语言复习题.docx

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

C语言复习题.docx

C语言复习题

一、单项选择题:

(10分,每题2分,评分标准:

正确得2分,错误扣2分)

1.下列对字符串的定义中,错误的是:

A)charstr[7]="FORTRAN";

B)charstr[]="FORTRAN";

C)char*str="FORTRAN";

D)charstr[]={'F','O','R','T','R','A','N',0};

2.针对下面程序段,下面哪些说法是正确的?

#include

voidSwap(int*x,int*y);

main()

{

inta,b;

a=5;

b=9;

Swap(&a,&b);

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

}

voidSwap(int*x,int*y)

{

int*pTemp;

*pTemp=*x;

*x=*y;

*y=*pTemp;

}

A)程序运行结果为乱码;

B)程序运行后将导致程序崩溃;

C)程序编译时出错导致程序无法运行;

D)程序执行了危险的操作;

3.要使下面程序的输出1,2,34,则从键盘输入的数据格式应为。

#include

main()

{

chara,b;

intc;

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

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

}

A)1234B)1,2,34

C)’1’,’2’,34D)1234或1234

4.判断字符串s1与字符串s2相等,应当使用:

A)if(s1=s2)

B)if(strcmp(s1,s2))

C)if(!

strcmp(s1,s2))

D)if(strcmp(s1,s2)=0)

5.二维数组a有m行n列,则在a[i][j]之前的元素个数为()。

A.j*n+iB.i*n+jC.i*n+j-1D.i*n+j+1

6、

#include

#include

main()

{

printf("%d\n",strlen("IBM\n012\t\"\\\0"));

}

则程序运行后的输出结果是。

A)10B)11C)16D)12

7.以下程序的正确输出结果为:

_______。

main()

{

inta=2,c=5;

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

}

A)a=%2,b=%5B)a=2,b=5

C)a=%%d,b=%%dD)a=%d,b=%d

8.以下程序的正确输出结果为:

_______。

main()

{

inta=2,c=5;

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

}

A)a=%2,b=%5B)a=2,b=5

C)a=%%d,b=%%dD)a=%d,b=%d

9.以下程序的正确输出结果为:

_______。

main()

{

inta=2,c=5;

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

}

A)a=2%,b=5%B)a=2,b=5

C)a=d%%,b=d%%D)a=%d,b=%d

10.有如下程序片段:

inti=0;

while(i++<=2);

printf("%d",i);

则正确的执行结果是:

A)2B)3C)4D)程序陷入死循环

11.下面哪个定义是合法的。

A)chara[8]="language";

B)inta[5]={0,1,2,3,4,5};

C)char*a="string";

D)inta[2][]={0,1,2,3,4,5,6};

12.以下不能对二维数组a进行正确初始化的语句是

A)inta[2][3]={0};

B)inta[][3]={{1,2},{0}};

C)inta[2][3]={{1,2},{3,4},{5,6}};

D)inta[][3]={1,2,3,4,5,6};

13.有以下程序片断

floatfun(intx,inty)

{

return(x+y);

}

main(){

inta=2,b=5,c=8;

printf("%3.0f\n",fun((int)fun(a+c,b),a-c));

}

程序运行后的输出结果是:

A)编译出错√B)9

C)21D)9.0

14.若有以下调用语句,则不正确的fun函数的函数原型是

main()

{…

inta[50],n;

fun(n,&a[9]);

}

A)voidfun(intm,intx[]);

B)voidfun(ints,inth[41]);

C)voidfun(intp,int*s);

D)voidfun(intn,inta);

15下列程序执行后的输出结果是

#include

main()

{

inta[3][3],*p,i;

p=&a[0][0];

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

{

p[i]=i+1;

}

printf("%d\n",a[1][2]);

}

A)3

B)6

C)9

D)随机数

16对于一个正常运行和正常退出的C程序,以下叙述正确的是。

A)程序从main函数第一条可执行语句开始执行,在main函数结束

B)程序的执行总是从程序的第一个函数开始,在main函数结束

C)程序的执行总是从main函数开始,在最后一个函数中结束

D)从程序的第一个函数开始,在程序的最后一个函数中结束

17对于以下程序片段,描述正确的是。

intx=-1;

do

{

x=x*x;

}while(!

x);

A)是死循环

B)循环执行两次

C)循环执行一次

D)有语法错误

 

二、写出下列程序的运行结果。

1.

main()

{

inti,j,x=0;

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

{

x++;

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

{

if(j%2)continue;

x++;

}

x++;

}

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

}

程序运行结果是:

 

2.

#include

main()

{

chara[]="Hello";

char*p=NULL;

for(p=a;p

{

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

}

}

程序运行结果是:

 

3.

#include

intfun(intx,inty)

{

returnx>y?

x:

y;

}

main()

{

inta=2,b=5,c=8;

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

}

程序运行结果是:

 

4.

#include

voidFunc(void);

main()

{

inti;

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

{

Func();

}

}

voidFunc(void)

{

staticinta=1;

intb=2,c;

c=a+b;

a++;

b++;

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

}

程序运行结果是:

5.

#include

main()

{

intk=4,n=0;

for(;n

{

n++;

if(n%2==0)continue;

k--;

}

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

}

程序运行结果是:

 

6.

#include

main()

{

inta=5,b=4,x,y;

x=2*a++;

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

y=--b*2 ;

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

}

则程序运行结果是:

 

7.

#include

voidfun1(intx)

{

x=20;

}

voidfun2(intb[4])

{

intj;

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

{

b[j]=j;

}

}

main()

{

intx=10;

inta[4]={1,2,3,4},k;

fun1(x);

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

fun2(a);

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

{

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

}

}

运行结果是:

 

8.

#include

voidFun(int*y)

{

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

*y+=20;

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

}

main()

{

intx=10;

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

Fun(&x);

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

}

程序运行结果是:

 

9.

#include

inta=13,b=8;

intmax(inta,intb)

{

intc;

c=a>b?

a:

b;

return(c);

}

main()

{

inta=5;

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

}

程序运行结果是:

 

10.

main()

{

inti,j,x=0;

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

{

X++;

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

{

if(j%2)continue;

X++;

}

X++;

}

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

}

程序运行结果是:

11.

#include

main()

{

chars[100];

charc,i;

scanf("%c",&c);

scanf("%d",&i);

scanf("%s",s);

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

}

已知字符’a’的ASCII码值为97,那么当程序输入:

a<空格>97<空格>123<回车>,程序运行结果是:

 

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

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

若是闰年,输出“Yes”,否则输出“No”。

已知符合下列条件之一者是闰年:

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

■能被400整除。

#include

main()

{

intyear,flag;

printf("Enteryear:

");

scanf("%d",&year);

if()

{

flag=1;

}

else

{

flag=0;

}

if()

{

printf("Yes\n");

}

else

{

printf("No\n");

}

}

2.编程判断m是否为素数。

#include

#include

intIsPrime(intm);

main()

{

intn,flag;

printf("Inputn:

");

scanf("%d",&n);

flag=IsPrime(n);

if()

{

printf("它是素数\n");

}

else

{

printf("它不是素数\n");

}

}

intIsPrime(intm)

{

inti,k;

if(m<=1)

{

return0;

}

for(i=2;;i++)

{

k=m%i;

if()

{

return0;

}

}

return;

}

 

3.输入一行字符,统计其中的英文字符、数字字符、空格及其它字符的个数。

#include

#include

#defineARR_SIZE80

main()

{

charstr[ARR_SIZE];

intlen,i,letter=0,digit=0,space=0,others=0;

gets(str);

for(i=0;str[i]!

='\0';i++)

{

if()

letter++;

elseif()

digit++;

elseif(')

space++;

else

others++;

}

printf("Englishcharacter:

%d\n",letter);

printf("digitcharacter:

%d\n",digit);

printf("space:

%d\n",space);

printf("othercharacter:

%d\n",others);

}

四、编程

评分原则:

若程序没有实现指定功能,不给分,若实现指定功能,每出现一处简单语法错误扣1分

1.规定一个工人工作时间每个月160小时,每小时工资为5元,如果加班的话,每小时增加4元,请编程计算并打印此工人一个月的工资,要求由键盘输入工作时间(14分)。

2.编程计算1!

+2!

+3!

+……+10!

的值。

(12分)

 

3.编程先输入某班30个学生某门课的成绩,对全班30个学生成绩进行由高到低排序,并打印输出排序结果,要求用函数编程实现排序功能。

(18分)

4.从键盘任意输入某班20个学生的成绩,打印最高分,并统计不及格学生的人数。

(18分)

5.编写程序输出3到10000内的可逆素数。

可逆素数是指:

一个素数将其各位数字的顺序倒过来构成的反序数也是素数。

如157和751均为素数,它们是可逆素数。

要求:

使用子函数实现,至少两个子函数。

其它自便。

(21分)

6.不用函数strcat(),编程实现字符串连接函数MyStrcat(char*dstStr,char*srcStr)将字符串srcStr连接到字符串dstStr的尾部,并编写主函数调用MyStrcat将用户输入的两个字符串相连接。

(14分)

7.从键盘任意输入一个4位数x,编程计算x的每一位数字相加之和(忽略整数前的正负号)。

例如,输入x为1234,则由1234分离出其千位1、百位2、十位8、个位4,然后计算1+2+3+4=10,并输出10。

8.利用公式

=

×…前100项之积计算并打印值。

9.编程计算

的值,要求n由用户从键盘输入。

(14分)

10编程打印如下形式的杨辉三角形,打印的杨辉三角形的行数n(不超过10行)要求由用户从键盘输入。

要求按照如下函数原型进行编程,不能使用全局变量。

(14分)

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

当前位置:首页 > 初中教育 > 初中作文

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

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