程序设计基础复习题专科Word文档下载推荐.docx
《程序设计基础复习题专科Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《程序设计基础复习题专科Word文档下载推荐.docx(19页珍藏版)》请在冰豆网上搜索。
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=&
语句后,表达式:
**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<
b<
c时,以八进制形式输出a、b、c的值。
#include<
stdio.h>
voidmain()
{
inta,b,c;
scanf(“%d%d%d”,&
a,&
b,&
c);
if(a<
c)
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<
b)&
!
c||1;
C.a&
b;
D.a||(b+b)&
(c-a)
39有以下程序段
intk=0,a=1,b=2,c=3;
k=a<
b?
b:
k=k>
c?
c:
k;
执行该程序段后,k的值是_______。
A.3B.2C.1D.0
40设变量a、b、c、d和y都已正确定义并赋值。
若有以下if语句
if(a<
b)
if(c==d)y=0;
elsey=1;
该语句所表示的含义是_______。
A.
B.
C.
D.
二、写出下列程序的执行结果
1、有以下程序
#include<
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);
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、
inta=1,b=2,c=3;
if(c==a)
printf("
c);
else
b);
6、
intn='
c'
;
switch(n++)
case'
a'
:
A'
b'
B'
good"
);
break;
C'
pass"
d'
D'
warn"
default:
error"
7、
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;
4;
i++)
for(j=0;
j<
j++)
if(a[i][j]<
0)
if(a[i][j]==0)
s+=a[i][j];
printf("
8、
inta=100,b=10;
int*p1=&
a,*p2=&
*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的倍数的最大值。
inti;
for(i=100;
i>
=0;
i--)
if(i%13==0)
%d"
i);
3.求1+2+3+…+100
inti=1;
do
sum+=i;
}while(i<
=100);
sum);
4.计算1+1/2+1/3+…+1/10
doublet=1.0;
for(i=2;
=10;
t+=1/i;
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;
N;
for(j=0;
M;
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;
x[i][0]=
=1;
for(j=1;
i;
x[i][j]=
;
}
3、以下程序的功能是:
给r输入数据后计算半径为r的圆面积s。
注:
该题目有3个错误之处,找出并改正
#include<
#definePI3.1415926;
intr;
floats;
scanf("
r);
s=PI*r**r;
s=%f\n"
4、以下程序用于计算一个一维数组各元素平方根的和。
该题目有3个错误之处,找出并改正。
inta[10],i,sum;
for(i=0;
scanf(“%d”,&
a[i]);
i=0;
while(!
(i=9))
sum+=sqrt(a[i]);
i++;
5、下程序是从键盘上输入若干学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。
该题目有1个错误之处,找出并改正。
floatx,amax,amin;
scanf(“%f”,&
x);
amax=x;
amin=x;
while(x<
0)
if(x>
amax)amax=x;
if(x<
amin)amin=x;
scanf(“%f”,&
printf(“amax=%f\namin=%f\n”,amax,amin);
6、以下程序用于通过指针对数组进行输入和输出。
该题目有2个错误之处,找出并改正。
inta[10];
int*p=a;
inti;
for(i=0;
10;
scanf(“%d”,*p++);
printf(“%5d”,*p++);
1、以下程序的功能是计算:
s=1+12+123+1234+12345。
intt=0,s,i;
____
_____;
for(i=1;
i<
=5;
i++)
t=i+__
____;
s=s+t;
}
s=%d\n"
2、以下程序的功能是输出如下形式的方阵:
13141516
9101112
5678
1234
inti,j,x;
for(j=4;
__
j--)
for(i=1;
=4;
i++)
x=(j-1)*4+__
%4d"
x);
\n"
3、以下程序的功能是计算:
4、以下程序的功能是输出如下形式的方阵:
五、编程题
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
二、略
三、略
四:
略
五: