程序设计基础复习题专科.docx

上传人:b****6 文档编号:3295795 上传时间:2022-11-21 格式:DOCX 页数:19 大小:40.06KB
下载 相关 举报
程序设计基础复习题专科.docx_第1页
第1页 / 共19页
程序设计基础复习题专科.docx_第2页
第2页 / 共19页
程序设计基础复习题专科.docx_第3页
第3页 / 共19页
程序设计基础复习题专科.docx_第4页
第4页 / 共19页
程序设计基础复习题专科.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

程序设计基础复习题专科.docx

《程序设计基础复习题专科.docx》由会员分享,可在线阅读,更多相关《程序设计基础复习题专科.docx(19页珍藏版)》请在冰豆网上搜索。

程序设计基础复习题专科.docx

程序设计基础复习题专科

《程序设计基础》复习题(专科)

一、单项选择题

1.以下叙述中正确的是()

A.C程序中注释部分可以出现在程序中任意合适的地方

B.花括号"{"和"}"只能作为函数体的定界符

C.构成C程序的基本单位是函数,所有函数名都可以由用户命名

D.分号是C语句之间的分隔符,不是语句的一部分

2.在一个C语言程序中()

A.main函数必须出现在所有函数之前

B.main函数可以在任何地方出现

C.main函数必须出现在所有函数之后

D.main函数必须出现在固定位置

3.判断下面标识符中哪个是C语言中合法的用户定义标识符()

A.a-bB.#abdC.typedefD._max

4.为表示关系X≥Y≥Z,应使用C语言表达式()  

A.(X≥Y)&&(Y≥Z)B.X>=Y>=Z

C.(X>=Y)‖(Y>=Z)D.(X>=Y)&&(Y>=Z)

5.以下选项中,不能作为合法常量的是

A.1.234e04B.1.234e0.4C.1.234e+4D.1.234e0

6.若有两条语句:

staticcharx[]=”abcde”;

        staticchary[]={‘a’,’b’,’c’,’d’,’e’};   

则下列说法中正确的是()

A.x数组和y数组长度相同B. x数组长度大于y数组长度

C. x数组长度小于y数组长度D. 以上三种说法均错误。

7.返回值为void的函数,其含义是()

A.调用函数之后,被调用的函数没有返回值;

B.调用函数之后,被调用的函数不返回

C.调用函数之后,被调用的函数返回值为任意类型

D. 以上三种说法均不正确。

8.对于语句,intx,y,z[10],*px,*py;指出下列哪个语句是不正确的()

 A.px=&x,py=pxB.px=xC.py=&yD.px=z

9.在printf语句中按字符串输出的格式是()

A.“%s”B.“%c”C.“%f”D.“%d”

10.C语言中,运算对象必须是整型的运算符是()

A.% B. /C. %和/D. >=

11.以下说法正确的是()

A.C语言程序总是从第一个定义函数开始执行;

B.在C语言程序中,要使用的函数必须在main()函数中定义;

C.C语言程序总是从main()函数开始执行;

D.C语言程序的main()函数必须在程序的开始部分。

12.已定义以下函数

intfun(int*p)

{

return*p;

}

该函数的返回值是()

A.不确定的值B.形参p中存放的值

C.形参p所指存储单元中的值D.形参p的地址值

13.对于scanf(“A=%d”,&a)语句,输入10的正确的输入形式是()

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

14.当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是()

 A.c=b=a;B.(a=c)‖(b=c);C.(a=c)&&(b=c);D.a=c=b;

15.在C语言中,不正确的int类型的常数是()

A.32768B.0C.037D.0xAF

16.若有以下说明语句(已知int占2个字节,long占4个字节),则下面printf的输出结果是()

A.24B.26C.20D.30

unionuarea

{

intx;

longy;

};

structstr

{

chars[20];

unionuareaz;

};

voidmain()

{

printf(“%d\n”,sizeof(structstr));

}

17.下列关于switch和break语句的讨论中,只有()是正确的。

A.break语句是switch语句的一部分

B.在switch语句中可以根据需要使用或不使用break语句

C.switch语句中必须使用break语句

D.以上三种说法都不正确。

18.以下不能正确定义二维数组的选项是()

A.inta[2][2]={{1},{2}};B.inta[2][]={{1,2},{3,4}};

C.inta[2][2]={{1},2,3};D.inta[][2]={1,2,3,4};

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

A.–1B.1C.8D.0

voidmain()

{

inty=11;

while(--y)

y--;

printf(“%d\n”,y--);

}

20.voidmain()

{

inta=5,*b,**c;

c=&b;

b=&a;

……

}

程序在执行了c=&b;b=&a;语句后,表达式:

**c的值是()

A.变量a的地址B.变量b中的值

C.变量a中的值D.变量b的地址

21程序设计的三种基本程序设计结构是:

________

A.if、while和for;B.switch、do-while和for;

C.while、do-while和for;D.顺序结构、分支结构和循环结构。

22算法的特征不包括:

______。

B.有穷性B.可行性C.确定性D.有1个或者多个输入。

23.C语言源程序的基本组成单位是______。

C.函数B.语句C.声明和语句D.文件

24.下列标识符中,只有______是合法的。

D.ifB.3abC.IntD.A-4

25下列常量中,只有______是合法的。

E.3e-0.3B.‘abc’C.02a1D.‘\377’

26下列说法中正确的是:

______。

F.C语言中的for语句的三个表达式都可以省略,而且分号也可以省略。

G.宏替换比函数调用的执行速度慢。

H.实质上,C语言中的指针就是一个变量的地址。

I.C语言中的任何函数都可以由程序员命名。

27C语言中,运算对象必须是整型的运算符是_______。

J./B.%C.+D.-

28以下叙述中错误的是_______。

K.C语句必须以分号结束

L.复合语句在语法上被看作一条语句

M.空语句出现在任何位置都不会影响程序运行

N.赋值表达式末尾加分号就构成赋值语句

29以下叙述中正确的是_______。

A.调用printf函数时,必须要有输出项

B.在C语言中,整数可以以十二进制、八进制或十六进制的形式输出

D.调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码

30以下关于函数的叙述中正确的是_______。

A.每个函数都可以被其它函数调用(包括main函数)

B.每个函数都可以被单独编译

C.每个函数都可以单独运行

D.在一个函数内部可以定义另一个函数

31有以下程序段

typedefstructNODE{

intnum;

structNODE*next;

}OLD;

以下叙述中正确的是_______。

A.以上的说明形式非法

B.NODE是一个结构体类型

C.OLD是一个结构体类型

D.OLD是一个结构体变量

32以下叙述中错误的是_______。

A.C语言中对二进制文件的访问速度比文本文件快

B.C语言中,随机文件以二进制代码形式存储数据

C.语句FILEfp;定义了一个名为fp的文件指针

D.C语言中的文本文件以ASCII码形式存储数据

33当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是_______。

A.k%2B.k%2==1C.(k%2)!

=0D.!

k%2==1

34以下不能正确计算代数式

值的C语言表达式是_______。

A.1/3*sin(1/2)*sin(1/2)B.sin(0.5)*sin(0.5)/3

C.pow(sin(0.5),2)/3D.1/3.0*pow(sin(1.0/2),2)

35以下能正确定义且赋初值的语句是_______。

A.intn1=n2=10;B.charc=32;

C.floatf=f+1.1;D.doublex=12.3E2.5;

36以下程序的功能是:

当a

#include

voidmain()

{

inta,b,c;

scanf(“%d%d%d”,&a,&b,&c);

if(a

printf(“%o%o%o”,a,b,c);

}

程序不能得到正确结果的的原因是_______。

A.注释语句书写位置错误

B.a、b、c不能以八进制进行输出

C.没有按照八进制进行输入

D.if语句的条件表达式错误

37设有定义:

intk=1,m=2;floatf=7;,则以下选项中错误的表达式是_______。

A.k=k>=kB.-k++C.k%int(f)D.k>=f>=m

38设有定义:

inta=2,b=3,c=4;,则以下选项中值为0的表达式是_______。

A.(!

a==1)&&(!

b==0);B.(a

c||1;

C.a&&b;D.a||(b+b)&&(c-a)

39有以下程序段

intk=0,a=1,b=2,c=3;k=a

b:

a;k=k>c?

c:

k;

执行该程序段后,k的值是_______。

A.3B.2C.1D.0

40设变量a、b、c、d和y都已正确定义并赋值。

若有以下if语句

if(a

if(c==d)y=0;

elsey=1;

该语句所表示的含义是_______。

A.

B.

C.

D.

 

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

1、有以下程序

#include

voidmain()

{

inti=0,s=0;

do

{

if(i%2)

{

i++;

continue;

}

i++;

s+=i;

}while(i<9);

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

}

执行后输出的结果是

2、有以下程序

#include

intfunc(intx)

{

if(x==1)

return2;

else

returnx*func(x-1);

}

voidmain()

{

printf(“%d\n”,func(4));

}

执行后输出的结果是

3、定义如下变量和数组 

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

则下列语句

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

printf(“%d”,x[i][2-i]);

的输出结果是  

4、voidmain()

{

inta[10]={1,2,3,4,5,6,7,8,9,0},*p;

p=a;

printf(“%d”,*p);

printf(“%d\n”,*(p+8));

}

输出结果是   

5、

#include

voidmain()

{

inta=1,b=2,c=3;

if(c==a)

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

else

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

}

6、

#include

voidmain()

{

intn='c';

switch(n++)

{

case'a':

case'A':

case'b':

case'B':

printf("good");break;

case'c':

case'C':

printf("pass");

case'd':

case'D':

printf("warn");

default:

printf("error");break;

}

}

7、

#include

voidmain()

{

inta[4][4]={{3,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,12,-33,0}};

inti,j,s=0;

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

{

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

{

if(a[i][j]<0)

continue;

if(a[i][j]==0)

break;

s+=a[i][j];

}

}

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

}

8、

#include

voidmain()

{

inta=100,b=10;

int*p1=&a,*p2=&b;

*p1=b;

*p2=a;

printf(“%d,%d,”,a,b);

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

}

 

三、程序改错题注:

下列每小题有一个错误,找出并改正

1.#include"stdio.h"

voidmain()

{

charc,*ch=&c;

while((c=getchar())!

=’\n’)

{

if(ch>=’a’&&ch<=’z’)

putchar(*ch-’a’+’A’);

else

putchar(*ch);

}

}

2.求100以内的正整数中为13的倍数的最大值。

voidmain()

{

inti;

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

if(i%13==0)

printf("%d",i);

}

3.求1+2+3+…+100

voidmain()

{

inti=1;

do

{

sum+=i;

i++;

}while(i<=100);

printf("%d",sum);

}

4.计算1+1/2+1/3+…+1/10

voidmain()

{

doublet=1.0;

inti;

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

t+=1/i;

printf("t=%f\n",t);

}

四、把以下的程序补充完整

1.以下程序中,select函数的功能是:

在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标。

请填空。

#defineN3

#defineM3

intselect(inta[N][M],int*n)

{

inti,j,row=1,colum=1;

for(i=0;i

for(j=0;j

if(a[i][j]>a[row][colum])

{

row=i;

colum=j;

}

*n=

;

return

;

}

2.函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下:

1

11其构成规律是:

121

(1)第0列元素和主对角线元素均为1

1331

(2)其余元素为其左上方和正上方元素之和

14641(3)数据的个数每行递增1

请将程序补充完整。

#defineN6

voidyanghui(intx[N][N])

{

inti,j;

x[0][0]=1;

for(i=1;i

{

x[i][0]=

=1;

for(j=1;j

x[i][j]=

;

}

}

3、以下程序的功能是:

给r输入数据后计算半径为r的圆面积s。

注:

该题目有3个错误之处,找出并改正

#include

#definePI3.1415926;

voidmain()

{

intr;

floats;

scanf("%d",r);

s=PI*r**r;

printf("s=%f\n",s);

}

4、以下程序用于计算一个一维数组各元素平方根的和。

注:

该题目有3个错误之处,找出并改正。

#include

voidmain()

{

inta[10],i,sum;

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

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

i=0;

while(!

(i=9))

{

sum+=sqrt(a[i]);

i++;

}

}

5、下程序是从键盘上输入若干学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。

注:

该题目有1个错误之处,找出并改正。

#include

voidmain()

{

floatx,amax,amin;

scanf(“%f”,&x);

amax=x;

amin=x;

while(x<0)

{

if(x>amax)amax=x;

if(x

scanf(“%f”,&x);

};

printf(“amax=%f\namin=%f\n”,amax,amin);

}

6、以下程序用于通过指针对数组进行输入和输出。

注:

该题目有2个错误之处,找出并改正。

#include

voidmain()

{

inta[10];

int*p=a;

inti;

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

scanf(“%d”,*p++);

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

printf(“%5d”,*p++);

}

 

四、把以下的程序补充完整

1、以下程序的功能是计算:

s=1+12+123+1234+12345。

请填空。

#include

voidmain()

{

intt=0,s,i;

____

_____;

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

{

t=i+__

____;

s=s+t;

}

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

}

 

2、以下程序的功能是输出如下形式的方阵:

13141516

9101112

5678

1234

请填空。

#include

voidmain()

{

inti,j,x;

for(j=4;__

_____;j--)

{

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

{

x=(j-1)*4+__

____;

printf("%4d",x);

}

printf("\n");

}

}

3、以下程序的功能是计算:

s=1+12+123+1234+12345。

请填空。

#include

voidmain()

{

intt=0,s,i;

____

_____;

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

{

t=i+__

____;

s=s+t;

}

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

}

 

4、以下程序的功能是输出如下形式的方阵:

13141516

9101112

5678

1234

请填空。

#include

voidmain()

{

inti,j,x;

for(j=4;__

_____;j--)

{

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

{

x=(j-1)*4+__

____;

printf("%4d",x);

}

printf("\n");

}

}

 

五、编程题

1.判断某一年是否为闰年。

(规则:

如果某年份能被4整除而不能被100整除,该年份为闰年;如果某年份能被4整除,且又能被400整除,该年份也为闰年。

除此之外,都不是闰年。

2.写一个函数,在主函数中输入一个数,然后调用该函数判断该数是否是素数,最后输出判断结果。

(判断一个数m是否是素数可让该数m被2,3,4…

去除,如果m能被其中的任何一个整数整除,则证明它不是素数;相反,如果m不能被2~

之中的任何一个整数整除,则证明m为素数。

3.编写函数,将整型数组中的各元素按相反顺序存放(不使用辅助数组)。

要求采用两种方法:

(1)函数中采用下标运算;

(2)函数中利用指针自加或自减间接访问数组单元。

要求:

输入、输出在主函数中完成。

main函数和子函数都要写出。

4设整型变量a、b、c分别从键盘输入3个整数,编写程序,按照从大到小的顺序排列这3个数,使a成为最大的,c成为最小的,并且按序输出这3个数。

5已知一个整型数组X[4],它的各元素值分别为3、11、8、22。

使用指针表示法编写程序,求各数组元素之积。

6、编写一个C的递归程序,求解如下函数:

参考答案

一、选择题

1-5:

ABDDB

6-10:

BABAA

11-15:

CCBCA

16-20:

ABBDC

21-25:

DDACD

26-30:

CBCBB

31-35:

CCDAB

36-40:

DCABC

二、略

三、略

四:

五:

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

当前位置:首页 > 小学教育 > 语文

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

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