admin 管理员组文章数量: 1086019
2025年1月1日发(作者:matlab中e怎么输入)
含答案程序设计基础及语言复习提纲
一、选择题
1
•以下叙述中错误的是(A)。
A.
使用三种基本结构构成的程序只能解决简单问题
(P28)
B.
结构化程序由顺序、分支、循环三种基本结构组成
(P26)
C・C
语言是一种结构化程序设计语言
D・
结构化程序设计提倡模块化的设计方法
(P34)
2.
以下叙述正确的是(A)。
A. C
语言函数可以嵌套调用,例如:
fun(funfx))
B. C
语言程序是由过程和函数组成的
(PIO C
语言程序是由函数组成的)
C. C
语言函数不可以单独编译
D. C
语言中除了
main
函数,其他函数不可作为单独文件形式存在
3.
有以下程序
#include
main()
{int a=0, b=0;
/*给
a
赋值
a=10;
b=20;
给
b
赋值 */
printf('
,
a+b=%dn
,
a+b); /*
输出计算结果 */
}
1 / 56
程序运行后的输出结果是
(E)
。
A.
出错
B.a+b=O C.a+b=10 D.a+b=30
4.
以下叙述中正确的是(A)。
A.
每个后缀为
.C
的
C
语言源程序都可以单独进行编译
含答案程序设计基础及语言复习提纲
B.
每个后缀为
.C
的
C
语言源程序都应该包含一个
main
函数(若在一个项目中,
后缀为
.C
的
C
语言源可以不包含
main)
C.
在
C
语言程序中,
main
函数必须放在其他函数的最前面
D.
在
C
语言程序中,只有
main
函数才可单独进行编译
5.
按照
C
语言规定的用户标识符命名规则,不能出现在标识符中的是(D)。
A.
大写字母
E.
下划线
C.
数字字符
D.
连接符
6.
以下选项中能表示合法常量的是
(D)o (p39)
A.
7.
有以下程序
#include
main()
{
int sum, pad, pAd;
sum = pad = 4;
pAd = ++sum, pAd++, ++pad;
1,200 B.1.5E2.0 C.0118 D.”007"
2 / 56
printf(
n
%dn
u
, pad );
}
程序的输出结果是(
A.
8.
有以下程序
#include
main()
{ int a;
4
B)o
B.5C.6 D.7
含答案程序设计基础及语言复习提纲
a = (int)(-1.65*3);
prmtf(
H
%dn
M
, a);
}
程序的运行结果是(B)
o
(直接取整数部分)
A. -3 B.-4C.-5 D.
结果不确定
9.
关于
H
while(
条件表达式)循环体“,以下叙述正确的是
(E)
。
A.
循环体的执行次数总是比条件表达式的执行次数多一次
B.
条件表达式的执行次数总是比循环体的执行次数多一次
C.
条件表达式的执行次数及循环体的执行次数一样
D.
条件表达式的执行次数及循环体的执行次数无关
10.
若有定义语句
:int year=2009, *p=&year
;以下不能使变量
year
中的值 增至
2010
的语句是⑻。
A. (*p)++; B.*p++;
3 / 56
C.++(*p); D. *p+=l;
11.
有以下程序
#include
int fun( int a, int b)
{ return a+b; }
main()
{ int x=6, y=7, z=8, r ;
r = fun (fun(x,y), z-
);
printf (“ %dn" , r );
程序运行后的输出结果是(A)。
含答案程序设计基础及语言复习提纲
A. 21 B. 15 C. 20 D. 31
12.
在以下给出的表达式中,及
while(E)
中的
(E)
不等价的表达式是
(E)
。
A. (E>0| |E<0) B. (E==0) C. (! E==0) D. (E!=0)
13.
由以下
while
构成的循环,循环体执行的次数是(D)。
int k= 1;
while ( k=2 ) k++;//
请注意:若改为
while ( k==2 ),
则如何? (B)
A.
有语法错,不能执行
C.
14.
若有以下定义
int x[10], *pt=x;
B.
一次也不执行
执行一次
D.
无限次
4 / 56
则对
x
数组元素的正确引用是(D)。
(p236)
A. pt+3
15.
有以下程序
#include
main()
{ int "6]={10,20,30,40,50,60}, *p,*s;
p = c; s = & c[5];
printf(
u
%dn
n
, s-p );
}
B. *&x[10] C. *(pt+10) D. *(x+3)
程序运行后的输出结果是(A)。
A. 5 B. 4C. 20 D. 16
16.
以下叙述中正确的是
(E)
。
A.
—条语句只能定义一个数组
5 / 56
含答案程序设计基础及语言复习提纲
B.
每个数组包含一组具有同一类型的变量,这些变量在内存中占有连续的存储 单
元
C.
数组说明符的一对方括号中只能使用整型常量,而不能使用表达式
D.
在引用数组元素时,下标表达式可以使用浮点数(整型)
17.
以下叙述中正确的是
(D)
。
A.
数组下标的下限是
1 (0)
B.
数组下标的下限由数组中第一个非零元素的位置决定
C.
数组下标的下限由数组中第一个被赋值元素的位置决定
D. char cl, c2, *c3, c4[40];
是合法的变量定义语句
18.
有如下程序
#include
main()
{
char name[10] = {'S', T, R, 'F, N, G};
name[3] = 'E'; name[5] = 0;
printf("%sn", name);
}
程序运行后的输出结果是(A)。
A. STREN B. STRIEG C. STRENG
19.
下列定义数组的语句中,正确的是(A)。
D. STRENO
6 / 56
含答案程序设计基础及语言复习提纲
A. #define N 10
int x[N];
C. int x[0..10]; D. int x[];
20.
设有定义
double a[10] ,*s=a;
B. int N=10;
int x[N];
以下能够代表数组元素
a[3]
的是
(E)
。
A. (*s)[3]
21.
有以下程序
#include
#include
main()
{ char str[12] = { , T , F , 'n' , 'g'};
B. *(s+3) C. *s[3] D. *s+3
printf(
,,
%dn
u
, strlenf str ));
}
程序运行后的输出结果是(D)。
A. 12 B. 11 C. 7 D.6
22.
设有函数定义:
void subfint k,char ch){…}
则以下对函数
sub
的调用 语句中,正确
的是(A)。
A. sub(l,97); B. sub(2;97
,
); C. n=sub(3,
,
a
,
); D. sub(4,”a”);
23.
若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是
(A)
o
7 / 56
含答案程序设计基础及语言复习提纲
A.
函数的形参和实参分别占用不同的存储单元
B.
形参只是形式上的存在,不占用具体存储单元
C.
同名的实参和形参占同一存储单元
D.
函数的实参和其对应的形参共占同一存储单元
24.
以下叙述中错误的是(D)。
8 / 56
含答案程序设计基础及语言复习提纲
A. C
程序必须由一个或一个以上的函数组成
B.
函数调用可以作为一个独立的语句存在
C.
若函数有返回值,必须通过
“turn
语句返回
D.
函数形参的值也可以传回给对应的实参
25.
以下关于
C
语言函数参数传递方式的叙述正确的是(A)。
A.
数据只能从实参单向传递给形参
B.
数据可以在实参和形参之间双向传递
C.
数据只能从形参单向传递给实参(实参可以传递形参但形参不可以传递实参)
D. C
语言的函数参数既可以从实参单向传递给形参,也可以在实参和形参之间 双
向传递,可视情况选择使用
26.
以下关于函数的叙述中正确的是(A)。
A.
函数形参的类型及返回值的类型无关
B.
函数必须要有形参
C.
函数必须要有返回值
D.
函数调用必须传递实参
27
..若有说明和语句:
char str[]="Hello", *p; p=str;,
则此时
*(p+5)
中的值
为(A)。
A. *0' B. 'o'
c. o
的地址
D.
不确定的值
28.
以下选项中的编译预处理命令行
A. # define PI 3.14
正确的是
(A)
。
B. # #define
eps
int
0.001
INT D・ # define
29.
若程序中有宏定义行:
9 / 56
含答案程序设计基础及语言复习提纲
# define N 100
10 /
含答案程序设计基础及语言复习提纲
则以下叙述中正确的是(B)。
A.
B.
C.
D.
宏定义行中定义了标识符
N
的值为整数
100
在编译程序对
C
源程序进行预处理时用
100
替换标识符
N
上述宏定义行实现将
100
赋给标示符
N
在运行时用
100
替换标识符
N
30.
设有定义:
struct complex
{int real, unreal; } datal ={1,8}, data2;
则以下赋值语句中错误的是(A )。
A. data2 = (2,6);
C. data2. real = data 1. real;
B. data2 = datal;
D. data2. real = data 1. unreal;
31.
下面结构体的定义语句中,错误的是(A )。
A.
B.
C.
struct
struct
struct
struct
ord
ord
ord
{int
{int
{int
{int
x; int
x; int
x; int
y; int Z; } struct ord a;
y; int Z; }; struct ord a;
y; int Z; } a;
D. x; 1 int y; i int z; } a;
32.
设有定义:
struct {int n; float x;} s[2],m[2]={{10,2.8},{0,0.0}};
则以下赋值语句中正确的是(A)。
A. s[0]=m[l]; B. s=m; C. s.n=m.n; D. s[2].x=m[2].x;
33.
下列关系表达式中,结果为“假“的是(D)。
11 / 56
A. 3 <= 4
4”
为真为
1)
B. (3 < 4) == 1 C. (3 + 4) > 6 D. (3 != 4) > 2 (“3 !=
34.
若变量已正确定义,以下选项中非法的表达式是(D)。
含答案程序设计基础及语言复习提纲
A. a!=4 | |'b* BA + 32
*a'= 1 / 2*(x=y=20,x*3)
34.
若
a
是数值类型,则逻辑表达式
(a==l)| |(a!=l
啲值是(A)。
A. 1 B. 0 C. 2 D.
不知道
a
的值,
C. 'a' % 4 D.
不能确定
35.
下关于逻辑运算符两侧运算对象的叙述中正确的是(A)。
A)
可以是任意合法的表达式
B)
只能是整数
0
或非
0
整数
C)
可以是结构体类型的数据
D)
只能是整数
0
或
1
36.
有以下程序
#include
main()
{ int c,d;
c= 13&5; d=10&&5;
printf("%d,%dn", c, d);
12 / 56
}
程序的运行结果是(A)。
A) 5,1
37.
有以下程序
#include
main()
{ int x=35, B; char z='B';
B) 1,1 C) 18,1 D) 13,1
含答案程序设计基础及语言复习提纲
B = ((x ) && ( z <'b'));
printf(
H
%dn", B );
}
程序运行后的输出结果是(A)。
A) 1 B) 0 C) 35 D) 66
37.
有以下程序
#include
main()
{ int a[ ]={ 10,20,30,40 }, *p=a, i ;
for( i=0; i<=3; i++ ) { a[i] = *p; p++; }
printf("%dn
,
', a[2]);
}
程序运行后的输出结果是(C)
13 / 56
A. 10
38.
有以下程序
#include
main()
{
B. 20 C. 30 D. 40
int a[10] = { 11,12,13,14,15,16,17,18,19,20 },*p=a,i=9 ;
printff "%d,%d,%dn",a[ p-a ], p[i],*( &a[i]));
}
程序运行后的输出结果是(A)。
A. 11,20,20 B. 12,20,20 C. 11,19,19 D. 12,19,20
14 / 56
含答案程序设计基础及语言复习提纲
39.
有以下程序
#include
main()
{
int *p, x=100;
p=&x; x=*p+10;
printf(
,,
%dn
H
, x);
}
程序运行后的输出结果是(A)。
A. 110 B. 120
40.
有如下程序
#include
main()
{
int a = 0, *ptr;
ptr = &a;
*ptr = 3;
a = (*ptr) ++;
printf(”%d,%diT, a, *ptr);
}
C. 100
C. 1,4
15/56
D. 90
D. 0,4
含答案程序设计基础及语言复习提纲
程序运行后的输出结果是(A)。
A. 4,4 B. 0,1
41.
以下叙述中正确的是
C— o
A) break
语句只能用于
switch
语句中
B) continue
语句的作用是:使程序的执行流程跳出包含它的所有循环
C) break
语句只能用在循环体内和
switch
语句体内
D)
在循环体内使用
break
语句和
continue
语句的作用相同
42.
若有说明
int a[][3]={l, 2, 3, 4, 5, 6, 7};
则
a
数组第一维的大小是
B _ o
A) 2 B) 3 C) 4 D)
无确定值
43.
有如下程序,该程序段的输出结果是
B— o
void main (void)
{ int n=5;
while(n>2)
{
n-;
printf( “%d” ,n);
}
}
16 / 56
A) 543 B)432 C)4321 D)5432
44.
下列四种数组定义,合法的数组定义是
A— o
A) char a[ ]="hello";
C) char a="hello" ;
B) int a[4]={4,3,2,l,0};
D) char a[4]= "hello";
45.
若已定义
x
和
y
为实型变量,则表达式
x=l,y=x+3/2
的值是(
D
)。
A)1B) 2 C) 2.0D) 2.5
46.
下列语句中,正确的是
D— o
17 / 56
含答案程序设计基础及语言复习提纲
含答案程序设计基础及语言复习提纲
A) #define PI=3.14159
C) define M 3
B) include "stdio.h”
D) #define PI 3.14159
47.
判断字符型变量
ch
是否为大写英文字母的表达式为
E — o
A) 'A' <=ch<= 'Z' B) ch>= 'A' && chv=
<
Z
,
C) ch> 'a' && chv= 'z' D) ch>= 'A' | | ch<= "Z'
48.
设
x
为整型变量,
p
是指向整型的指针变量,则下列赋值表达式正确的是
A
A) p=&x B) p=x C) *p=&x D) *p=*x
49.
设有定义:
int k=3,*p=&k;
则表达式S的值是
_D_
O
A) 1 B)0 C)2 D)3
50.
要将字符串
str2
复制到字符串
strl
中,应使用的函数是A— 。
A) strcpyfstrl, str2);
C) strcat (str 1, str2);
51.
以下叙述错误的是BD —
o
A)
一个
C
源程序可由一个或多个函数组成
B)
一个
C
源程序必须包含一个
main
函数
C) C
程序的基本组成单位是函数
D)
在
C
程序中,注释说明只能位于一条语句的后面
52.
函数调用语句
func ((expl,exp2),(exp3,exp4,exp5))
冲,实参的个数为
18 / 56
B) strcpy(str2, strl);
D) strcmp(str2, strl);
B_ _
o
A) 1 B) 2 C) 4 D) 5
53.
下面字符数组初始化语句正确且及语句
char c[]=
H
string";
等价的是虫
_ O
A)charc[]={O, T,
丫,
'n;
創;
19 / 56
含答案程序设计基础及语言复习提纲
B) char c[]=rs t, F, T, g,
、
0'};
C) char c[]={'string'};
D) char c[]
=,
string';
54.
运行下面程序段后,
i
的值是
C—
。
int i=10;
whilefi—);
printf(
M
%d", i);
A) 0
A) 1
B) 1
B) 2
C)-l
i-1
的值为
C
C) 3
D) 10
o
55
.设
int i=4;
则表达式
(i==2)?i:
D) 4
D) ”
d
的值为
A
56
.下面不正确的字符串常量是
A
A) 'ABC' B) ”5678“
57
o
C)
n
2
n
.若定义
int d, c=l;
则执行下面的语句后,
switch(—c)
{ case 0: d=0; break;
case 1:
case 2: d=l;
case 3:
case 4: d=2; break;
default: d=3; }
A) 0 B) 1 C) 2 D) 3
5&
以下能正确定义变量
a, b
和
c
并为它们赋值的语句是匸_
A)int a=5; b=5; c=5; B)int a,b,c=5;
C)a=5,b=5,c=5; D)int a=5, b=5, c=5;
59.
当定义一个结构体变量时,系统为它分配的内存空间是
R
A)
结构中一个成员所需的内存容量
20 / 56
B)
结构中第一个成员所需的内存容量
C)
结构体中占内存容量最大者所需的容量
D)
结构中各成员所需内存容量之和
60.
有下列程序段落:
int i,a[5];
21 / 56
含答案程序设计基础及语言复习提纲
含答案程序设计基础及语言复习提纲
for(i=0;i<5;i++)
scanf( "%d”,&a[i]);
若要使数组元素的值分别为
1, 2, 3, 4, 5,
应从键盘输入
A)l,2,3,4,5/ B) 1 2 3 4 5/
C)12345/ D) 1;2;3;4;5/
二、填空题
1
•算法是为解决一个问题而采取的方法和步骤。
2. C
语言的数据类型分为基本数据类型和构造类型两大类。
3.
程序的三种控制结构是:顺序结构、选择结构和循环结构。
4
.在循环语句中,
break
语句的作用是提前结束循环语句的执行°
5.C
语言规定,函
数返回值的类型是由所定义函数的类型决定的。
6.
若用数组名作为函数调用的实参,则传递给形参的是数组的苴地扯。
7.
按照作用范围可以把变量分为局部变量和全厦变量。
8.
在
C
语言中,实参和及其对应的形参各占独立的存储单元
9.
某函数直接或间接调用自身称为该函数的递归调用。
10.
表达式
(int)((double)9/2)-9%2
的值是—
3 _____________________
。//后有详解
11. C
语言规定,二维数组元素在内存中是按登优先的顺序存储的。
12.
设
x
为
int
型变量,请写岀一个关系表达式
x%7==0&&x%3==0,
用以判 断
x
同
时为
3
和
7
的倍数时,关系表达式的值为真。
13
.设
y
为
int
型变量,请写出描述”
y
是奇数”的表达式
y%2!=0
。
14
.若定义
int b[7],*p=b;
则
p+3
表示
&b
⑶。
15.
计算机能直接执行的程序是机器语言程序。
22 / 56
16. C
语言主要是借助函数来实现程序模块化
17. C
语言的函数由两部分构成,分别是函数苴部和函数体。
18. C
语言本身不提供输入输出语句,输入和输出操作是由屋函数来完成的。
19.
按照
C
语言规定的用户标识符命名规则,构成
C
标识符的字符只能是字母,
23 / 56
含答案程序设计基础及语言复习提纲
数字,下划线三类字符。
20. C
语言规定,标识符的第一个字符只能字母开头。
21.
按照作用范围,可以把
C
语言的变量分为全同变量和局部变量。
22.
编译时分配存储单元,作用范围结束后还占据原来存储单元的变量,是用关
F
键字
static
定义的。
23. C
语言规定,二维数组元素在内存中是按照』或称为行优先)的 顺序存储的。
24.
若有定义
int a[2][3]={{2},{3}};
则值为
3
的数组元素是
a
【
l][O]
。
25.
若有定义语句:
intx = 5;,
则表达式
x+=x-=x*x
的值为虫。//后有详解
26.
将数学表达式写成
C
语言表达式,为卜
b+sqrt(bWa*c))/(2S)
。
27.
存放其他变量地址的变量称为指锂变重。
28.
若有说明
int a[10]={l,2,3,4,5,6,7,8,9,10},*p=&a[2];,
则
*(p+4)
的值是 乙。//后有详
解
29.
如果函数先被调用,后被定义,应该在调用之前进行廈型吏明。
30. C
语言中,按变量地址访问变量的方式称为直接访问。
31. C
语言中,按照指针变量访问其他变量的方式称为间按访问。
32.
函数调用语句
:fun( ( exp 1, exp2 ), ( expl, exp2, exp3));
含有的实参个 数是
2
。
//后有详解
33.
若定义函数时未指定返回值的数据类型,则
C
语言规定:函数返回值的类型
为
into
34.
若要求从键盘读入含有空格字符的字符串,应使用函数
gets
()。
35. C
语言允许用户自己建立由不同类型数据组成的组合型的数据结构,称为结 构
体类型,在其他一些高级语言中称为“记录”。
36.
使几个不同的变量共享:同一段内存的结构称为左輕结构。
37.
若有联合数据类型定义如下:
union
{int a;
24 / 56
int b;
}x,y;
25 / 56
含答案程序设计基础及语言复习提纲
执行语句
x.a=5;x.b=x.b+3;y.a=x.a*5;
后,则
y.b
的值为 40。
38.
设文件指针
fp
已定义,执行语句
fp=fopen(”file“,”w”);
后,对文本文件
file
操 作是只写。
39.
在
C
语言中调用
fopen()
就可把程序中要读、写的文件及磁盘上实际的数据文
件联系起来。
40.
当程序中对
fp
指针指向的文件的所有写操作完成之后,必须调用
fcolse ()
函数
关闭文件。
41. _____________________________________________________
若程序中使用了
函数
sqrt(),
则必须包含的头文件名为 ___________________________ math.h _______
42. C
语言源程序中主函数名由系统规定为
main,
程序员是不能改变的。
43.
若定义
int b[5],*p=b;
则
p++
表示&b[0]。
44.
按照作用范围可以把变量分为全局变量和融变量。
45.
按照存储类别可以把变量分为自动存储类别的变量和 静态,外部,寄存器 四
种存储类别。
46
.程序的三种控制结构是:顺序结构、选择结构和循环结构。
47.
若用数组名作为函数调用的实参,则传递给形参的是数组的苴地址
48. —
个函数直接或间接调用自身称为 递归调用。
49.
在
C
语言中,用零来表示逻辑“假”,用韭箜来表示逻辑“真”
o 50
.循环的嵌
套是指二鰹墮旬中乂包含另二个完整循坯
51. C
语言规定,程序中用到的变量必须“先说明,后使用”。
52. C
语言规定,函数返回值的类型是由定义函数声明类型决定的。
53
.若定义
int b[7],*p=b;
则
P+3
表示数组
b
中第四个函数的地址。
5 4.
指针变量是存放其他变
it
地址的变量
o
55.
调用函数时,在函数名后面列出的参数称为实參。
56.
定义函数时,在函数名后面的圆括号中出现的参数称为形参。
26 / 56
57. C
源程序中,凡是行首以#标识的控制行都是编译预处理指令 。
三、读程序写结果//后有详解
1.
以下程序运行后,如果输入的是
1 2 3 4 5 Ov
回车〉,输出结果为:24689
含答案程序设计基础及语言复习提纲
#inelude
main()
{ int s;
scanf( "%d” ,&s);
while(s>0)
{switch(s)
{default :printf(“%d” ,s+4);break;
case l:printf( "%d” ,s+l);break;
case 2:printf(
u
%d
,,
,s+2);break;
case 3:printf(“%d” ,s+3);
}
scanf(“%d”,&s);
}
}
2.
写出下列程序结果:n=9
#include
void main()
27 / 56
{
char s[]=”23d6xy7s809flw4“;
int i,n=O;
for(i=0;s[i]!
=,
O' ;i++)
if(s[i]>=
,
0
,
&&s[i]v=9) n++;
printf(
n
n=%dn",n);
28 / 56
含答案程序设计基础及语言复习提纲
3.
有以下程序程序的执行结果是:CdEfGh
#include
void main()
{ char b,c; int i;
b='C';c='c';
for(i=0;i<6;i++)
putchar(i+b);
else
putchar(i+c);} printf(
n
n
K
);
}
4.
以下程序执行后输出结果是:k=ll,s=16
#include
void main()
{int k, s;
for(k=2, s=l; k<20; k+=3)
if (s>k) break ;
else s+=k; printf("k=%d,s=%dn", k, s);
}
5.
运行下面的程序段,输出结果是d56def。
int i=0;
char sl[10]=
n
456
M
, s2[10]=
n
def
M
;
29 / 56
strcat(sl,s2);
含答案程序设计基础及语言复习提纲
while (sl[i++]!='0‘)
s2[i]=sl[i];
puts(s2);
6.
运行下面的程序段,输出结果是2, 3, 1。
#in elude
main()
{int x, y, z;
x=y=l;
z=x++, y++, ++y;
printf("%d, %d, %dn", x, y, z);
}
7.
运行下面的程序段,输出结果是1,0,0,1。
#include
main()
{ int a=O,b=O,c=O,d=O;
(a++ && b++) ? c++ : d++;
printf("%d,%d,%d,%dn", a,b,c,d);
}
8.
运行下面的程序段,输出结果是0,-1。
30 / 56
#include
main()
{ int a=-l, b=-l;
while(++a)
++b;
含答案程序设计基础及语言复习提纲
printf(
,
'%d,%dn'
r
, a,b);
}
9.
运行下面的程序段,输出结果是乜。
#include
main()
{ int y=10;
while(y-);
prmtfC
,
y=%dn*
,
,y);
}
程序执行后的输出结果是(A)
A. y=-l B. y=O C. y=l D. while
构成无限循环
10.
运行下面的程序段,输出结果是7月。
# includ e
# define
# define
PT 3.5
S
図
PT*x*x
31 / 56
int main()
{int a=l,b=2;
含答案程序设计基础及语言复习提纲
printf(
H
%4.1fn
,,
,S(a+b));
return 0;
11
•运行下面的程序段,输出结果是6,6,1。
#include
main()
{ int a=6, b=0, c=0;
for ( ;a&&(b==O);)
{ b += a; a -= c++;
printf("%d,%d,%diT, a,b,c);
}
}
则程序的输出结果是
A) 5,6,0 B) 6,0,0 C) 6,6,1
D) 5,6,1
12.
运行下面的程序段,输出结果是1,3,3。
#include
main()
{ int a=l,b=2,c=3,d=0;
if (a==l && b++==2)
辻
(b!=2| |c-!=3) printf("%d,%d,%dn",a,b,c);
else printf("%d,%d,%dn",a,b,c); else printf("%d,%d,%dn",a,b,c);
}
32 / 56
含答案程序设计基础及语言复习提纲
13.
运行下面的程序段,输出结果是2,2,2,4。
#include
main()
{ int a=l,b=2,c=3,d=4;
if ((a=2) | | (b=l)) c=2;
if ((c==3) && (d=-l)) a=5; printf("%d,%d,%d,%dn
H
, a,b,c,d);
}
14.
运行下面的程序段,输出结果是
#include
main()
{ int a=l,b=2,c=3,d=4;
if ((a=2) && (b=l)) c=2;
if ((c==3) | | (d=-l)) a=5;
printf("%d,%d,%d,%dn", a,b,c,d); }
15.
以下程序运行后的输出结果是:817。
func(a,b)
int a,b;
{static int m=O,i =2;
i+=m+l; m=i+a+b; return(m);
}
main()
{int k=4,m=l,p;
33 / 56
含答案程序设计基础及语言复习提纲
p=func(k,m); printf( "%d” ,p);
34 / 56
含答案程序设计基础及语言复习提纲
p=func(k,m); prin
廿
(
“%dn” ,p);
}
16.
设从键盘上输入
Hello World!
下面程序
的运行结果为hello world!。
#include
void mainfvoid )
{ char ss[20];
int i;
gets(ss);
for(i=0;ss[i]!='0';i++)
if(ss[i]>='A' && ss[i]<='Z')
ss[i] = ss[i]+32 ;
puts(ss);
}
17.
下面程序的运行结果为6, 45
2, 98
#include
void main(void)
{ int a[10]={78,89,98,66,54,76,45,82,62,95 };
int ka, ki, j;
ka = ki = 0;
35 / 56
for(j=l; jvlO; j++)
36 / 56
含答案程序设计基础及语言复习提纲
if ( a[ki]>a[j] ) ki=j ;
if (a[ka] } printf(“%d, %dn %d, %dn” , ki, a[ki], ka, a[ka]); } 18. 下列程序段的输出是 (峠峠)。 main(){ int k; for(k= 1; k<5; k++) { if(k % 2) printf 「*”) ; else continue; printf( ,, # n ); } } 四、程序填空 1 •猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又 多吃 了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天 早上都吃 了前一天剩下的一半零一个。到第 10 天早上想再吃时,就只剩一个 桃子了。求第 一天共摘了多少个桃子 #include void main() 37 / 56 含答案程序设计基础及语言复习提纲 {int day,peach; (1) peach=l ; //存放桃子数的变量赋初值 (2) day=9; //存放天数的变量赋初值 while(day>0) (3) {peach=2穴(peach+1) ; //计算桃子数 (4) day—; //天数变化 } printf( “total peaches=%dn ,, ,peach); } 2. 求 1!+2!+3 !+4 汁・・・+ 20! #include void main() (5) {float s^O,t=l;// 定义存放和的变量并赋初值 int n; for(n= 1 ;n<21 ;n++) { t=t*n; (6) s=s+t; //求除乘之和 } printf( a l 汁 2!+3 汁 4!+…+20!=%en” ,s); 3. 输出圆面积,面积大于 100 时停止。 #i nclud e< s tdio. h > #define PI 3.14159 voidmainf) 38 / 56 含答案程序设计基础及语言复习提纲 {float area; (7) int r; //定义整型变量 r for(r=l;r<=10;r++) {area=PI*r*r; (8) if(area>100)break;; }//如果面积超过 100 则提前结束循环 printf("r=%d,area=%.2fn",r,area); } 4. 斐波那契数列的第 1 项和第 2 项都是 lo 下面的程序用来计算并输出斐波那 契数 列 1, 1, 2, 3, 5, 8, 13, 21, ...第 9 项的值,请选择正确答案填入程 序空白处。 斐波那契数列的构成规律:/(/)= #include ⑼ long fib(int g) //函数的整型形参声明 {switch(g) {case 0: return 0; case 1: (10) } (11) } return (fib(g-l) +fib(g・2)) case 2: return 丄; //数列的 1 、 2 项*/ //数列的其余各项 39 / 56 main() {long int k; (12) k=fib(9); 含答案程序设计基础及语言复习提纲 //数列的第 9 项 printf("k=%dn", k); 5. 下面的程序的功能是输出 300 〜 500 之间所有素数。本程序中利用自定义函 数 prime() 判断一个整数是否为素数(如果整数 x 不能被 2 〜 x-l 之间的任意一个 数所整 除,则 x 是素数)。要求每行输出 11 个素数。 #include #include (13) int prime(int m); //函数的原型声明 void main() {int k, s=0; (14) for(k=300;kv=500;k++) //判断 300 〜 500 之间的每一个素数 if (prime(k)) { printf("%5d",k); s++; (15) if(s%ll==O) //每行输出 11 个素数 printfCAn 1 '); } printf("ns=%dn M ,s); } int primefint m) {int i; for(i=2;m%i!=0;i++); 40 / 56 含答案程序设计基础及语言复习提纲 (16) return(m==i);} // 返回函数的值 6. 斐波那契数列的第 1 项和第 2 项都是 lo 下面的程序用来计算并输出斐波那 契数 列 1, 1, 2, 3, 5, 8, 13, 21, ...等 20 项的值,请将正确答案填入程 序空白处。 #include void main() {int i; int fib[20]={l,l}; 初始化前两项 41 / 56 // 含答案程序设计基础及语言复习提纲 for(i=2;i<20;i++) + fib[i・2]; for(i=0;i<20;i++) { if ((i+l)%5==0&&i!=0) // 第 i 项的值 //每行五个元素,然后换行 printfr( 'n'); print#" %12d" , fib[i]) } /*for 循环结束*/ } /*程序结束*/ 7. 下面的程序的功能是求出任意两个数的和,并输出。本程序中利用自定义函 数 add() 进行两个数和的求解。 # include float add(floatx, floaty); /*对被调用函数 add 的声明*/ void main () { float a, b, c; scant( “%f ,&a, &b); //输入两个数,并保存在变量 a 和b中 //调用 add 函数,并将结果保存在 c 中 c=float add(a,b); printf ( ” sum is %f n " , c); } float add (float x, float y) { float z; z=x+y; 42 / 56 /*函数首部*/ /* 函数体*/ 含答案程序设计基础及语言复习提纲 return z; //函数值的返 回 五、判断题 1. C 语言中主函数的名字不一定用 main 表示。>< 2. C 语言是一种典型的解释型高级程序设计语言。 V 3. enum a {one=9,two=-1,three}; 是正确的枚举类型定义。 X 4. 若 int x,y;, 则执行以下语句 :x+=y; y=x-y; x-=y; 的功能是交换变量 x 和 y 的值。y 5. 若有声明 int (*funcl)(int,int); 则 fund 是指向返回值为整型且有两个整型 形参的函数的指针。 V 6. C 语言可以使用字符数组或字符指针处理字符串。 V 7. 在一个 C 源程序文件中,若要定义一个允许其他源文件中所有函数使用的全 局 变量,则该变量需要使用的存储类别是 statico X 8. 静态局部变量离开所在函数,其占用的存储空间将释放。 Xo 所在函数的模 块没有被释放掉的情况下,这个静态变量为上次调用的值。 9. 如果函数的形参及实参的类型不一致,以实参类型为准。 X, 同于形参=实 参,按左边的为准 10. 完成编译预处理的工作是在编译前完成的。 V 11. C 程序中用到的所有数值型数据都是精确表示的。 X 12. C 程序中的静态存储类别变量和外部变量的初始化是在编译阶段完成的。 V 13. C 语言中所有的逻辑运算符优先级都是相同的。 X, 逻辑运算符分三种优 43 / 56 先级 44 / 56 含答案程序设计基础及语言复习提纲 14. 若有定义 int a[7]={2, 3, 5, 7}; 则数组元素 a[5] 的值为 0 。 V 15. 在 C 语言中,将按变量地址存取变量值的方式称为“直接访问”方式。 V 16. 按函数在程序中出现的位置来分,可以有三种函数调用方式,分别是函数 语 句、函数表达式和函数参数。 V 17. 如果在同一个源文件中,外部变量及局部变量同名,则在局部变量的作用 范围 内,外部变量被“屏蔽”,即它不起作用。 V 18. 若字符数组 a[20] 中存放着一个字符串,且 a[10] = , 0 , , 函数 strlen(a) 的值为 10 。>< Strlen()并不包含0,并且遇到0就返回长度值,所以应该返回9 19 .若有变量定义 char x; short int y; ,则表达式 x+y 的值为 double o > 型 20 .设 a 、 b 和 h 分别是梯形的上、下底和高,有定义 double a, b, h; 利用 公式 (l/2)*(a+b)*h 不能正确计算出此梯形的面积。 X 21. C 语言中,%运算符要求参加运算的运算对象必须为整数。 V 22. C 语言优先级最低的运算符是逗号运算符。 V 23. 若定义 int n=10; 则用 int a[n]; 定义一维数组是合法的。〈//数组下表 只能是表达式和常量 24. C 语言中,函数既可以嵌套定义,又可以嵌套调用。 X, 不可以嵌套调用 25. 用数组元素作函数实参时,是将实参的值传递给形参,采用“值传递”方 式。 V 45 / 56 含答案程序设计基础及语言复习提纲 26. 在局部变量的作用范围内,如果全局变量及局部变量同名,则全局变量有 效,局部变量被屏蔽。X,全局变量无效 27. C 语言中的寄存器变量,用关键字 register 声明。 V 46 / 56 含答案程序设计基础及语言复习提纲 2& 全局变量的作用域是从变量的定义处开始,到本程序文件的末尾。 V 29. 加 static 声明的外部变量存放在静态存储区,不加 static 声明的外部变量 存放在动态存储区。 X 无论是加static的外部变量还是不加static的外部变量 都是存放在静态存储区 30. 数组名不代表整个数组,只代表数组首元素的地址。y 六、编写程序 1. 计算数列的前 20 项和,并输出运算结果。 2. 采用 do……while 语句实现计算并输出 s=l+2+3+……+100 3. 求 100 200 间的全部素数。要求编写一个判断一个整数是否为素数的 函 数,并在 main 函数中调用该函数,每个数占 5 列宽度,每行输出 7 个素数。 4. 已知百分制成绩(由键盘输入),要求计算并输出五分制成绩等级 'A' 、 < B , 、 'C' 、 'D' 、 'E' o 90 分以上为 'A' , 80 79 分为 'C' 、 '60 89 分为 < B , , 70 69 分为 D' 、 60 分以下为 'E' (请用 if 语句 实现) o 5. 已知百分制成绩(由键盘输入),要求计算并输出五分制成绩等级 'A' 、 < B , 、 < C , 、 'D' 、 'E' o 90 分以上为 'A' , 80 79 分为 'C' 、 '60 89 分为 'E', 70 69 分为 D' 、 60 分以下为 'E' (请用 switch 语句实现)。 6. 请编写程序,其功能是:计算并输出 s = i + 丄+ ? + ^ + ? +…的前 20 项之和 2 3 5 8 7. 编写程序,其的功能是:计算并输出下列级数的和。其中,变量 n 的值由键盘 输 47 / 56 入。 ---- + 1*2 1 1 F F 2*3 3*4 含答案程序设 n(n +1) 计基础及语言复习提纲 例如,当 n=10 时,函数值为 0.909091o &请编写函数 fun, 其功能是:计算并输出下列多项式值: 9. 编程序应用选择法实现对 17 个整数按照从大至小的顺序排序。 10. 编程序,应用冒泡法对通过键盘输入 17 个整数按照从大到小的顺序排序, 并输 出排序前后的数据。 11. 编程实现计算分段函数的值。 %<-5 x~ + 5x — 2 I X 3 +3 X 2 -5 * —10/+7 兀+ 3 填空题详解: 第 10 题:表达式 (int)((double)9/2)-9%2 的值是_ 3— 1. (double)9 强制转化为双精度 2. (double)9 / 2 为小数除以整数,结果为小数,为 4.5 3. (int) ( (double)9/2 ) 即 (int) (4.5),® 制转化为整型,结果为 4 48 / 56 4. (9)%2 取余数,结果为 1 5.4-1 结果为 3 第 25 题: 25 .若有定义语句: intx=5;, 则表达式 x+=x-=x*x 的值为 ・40 。 先计算 x*x = 5*5 =25, 存入临时变量 49 / 56 含答案程序设计基础及语言复习提纲 X 还是 5 再执行亠操作, x-= 25, 执行 x= 5-25 =-20 再执行+=操作, x+=-20, 执行 x=-20-20 = -40 结果 x 变为 -40 32 .函数调用语句 :fun( ( exp 1, exp2 ), ( expl, exp2, exp3)); 含有的实参个 数是 2 。 :分别是 exp2 和 exp3. 逗号表达式,它将以逗号为界,从左到右计算每个表达式的值,最后返回最右 边的表达式的值 3.1 #include main() { int s; scanf(“%d”,&s);① while(s>0) {switch (s) {default :printf( "%d" ,s+4);break;⑨® case l:printf( "%d” ,s+l);break;(3) case 2:printf( "%d” ,s+2);break;@ case 3:printf(“%d” ,s+3);⑦ } scanf(“%d” ,&s);(2)@©(§)(§) } 50 / 56 含答案程序设计基础及语言复习提纲 (D 输入 1 2 3 4 5 0 ②读入 s=l, s>0(3) 输出 s+1; 即 2 读入 s=2; s>0@ 输出 s+2; 即 4 ◎读入 s=3; s>0 ⑦输出 s+3; 即 6 ◎读入 s=4; s>0 (§)输出 s+4; 即 8 ⑨读入 s=5; s>0 砂输出 s+4; 即 9 3.2 #include void main() { char s[]= ,, 23d6xy7s809flw4 ,t ; int i,n=0; for(i=0;s[i]!= , 0 J ;i++) if(s[i]>= , 0 , &&s[i]v=9) n++; //用以计算字符串中数字的个数, //字符串中一共有 9 个数字,即 n=9; printf( u n=%dn",n); } 3.3 51 / 56 #include void main() { char b,c; int i; b=C;c='c: for(i=0;i<6;i++) 含答案程序设计基础及语言复习提纲 {if(!(i%2)) putchar(i+b); else putchar(i+c); } printf( n n"); } 3.4 #include void main() {int k, s; //当 i 等于偶数时执行输出 i+b //反之,输出 i+c; for(k=2, s=l; k<20; k+=3)@(§)⑦ if (s>k) break ;(§) else s+=k; (2)0)(§) printf("k=%d,s=%dn", k, s); 52 / 56 含答案程序设计基础及语言复习提纲 } @)k=2,s=l(?)s+=2, 即 s=3 0k=2v2O;k+=3, 即 k=5(J)s+=5, 即 s=8 (§)k=5v20;k+=3, 即 k=8(§)s+=8, 即 s=16 53 / 56 含答案程序设计基础及语言复习提纲 ⑦ k=8<20;k+=3, 即 k=13 @s>k break 结束循环 输出结果结果 k=ll, s=16 3.5 int i=0; char sl[10]= H 456", s2[10]= ,, def M ; strcat(sl,s2); ① while (sl[i++]! =, 0')(2)④ s2[i]=s 1 [i]; O G puts(s2); Q) 将 s2 加到 si 末尾,即 si: “456def” gsl[0]=4,sl[0]!='0‘ 成立, i=l (3)s2[l]=sl[l],s2[l]=5, 即 s2: 0)sl[l]=5,sl[l]!='0' 成立, i=2 @s2[2]=sl[2],s2[2]=6 即 s2: ©sl[2]=6,sl[2]!-(T 成立, i=3 0s2[3]=sl[3],s2[3]=d 即 s2: @sl[3]=d,sl⑶!='0‘ 成立, i=4 ®s2[4]=sl[4],s2[4]=e 即 s2: ®sl[4]=e,sl⑷!='0' 成立, i=5 Qs2[5]=sl[5],s2[5]=f 即 s2: Q s^5]=f,sl⑸! JO, 成立, i=6 ©s2[6]=sl[6],s2[6]=,( “d56def0” 0s 1 [6]=' 0' ,sl⑹!-(T 不成立; 输出字符串 s2: “d56def0” 含答案程序设计基础及语言复习提纲 #in elude main() 3.6 54 / 56 “d56de” “d56def” “d5f” “d56” “d56d” {int x, y, z; x=y=l; z = x++, y++, ++y; z=x++= 1 ,x=2 ,y=3 printf("%d, %d, %dn", x, y, z); } 3.7 #include main() { int a=O,b=O,c=O,d=O; (a++ && b++) ? C++ : d++; /*a++ 表达式值为 0 造成&&短路, b++ 不执 //逗号运算符运行级别最低,按从左到右执行。 行, a=l (a++ &&b++) 表达式为假,执行 d++,d=l */ printf("%d,%d,%d,%dn", a,b,c,d); } 3.8 #include main() { int a=-l, b=-l; 55 / 56 while(++a) //++a 表达式值为 0, 不进行循环, a=0 56 / 56 含答案程序设计基础及语言复习提纲 ++b; printf("%d,%dn", a,b); } 3.9 #include main() { int y=10; whilefy—) ; //此处循环为空循环,当 y— 表达式为 o 时,跳出循环 ;y=-1. prmtfC , y=%dn ,, ,y); } 3.10 # includ e # define PT 3.5 # define S(x) PT*x*x int main() {int a=l,b=2; printf("%4. lfn",S(a+b)); // 将 a+b 替代 x 再计算 3.5*a+b*a+b = 7.5 3.11 57 / 56 return 0; 3.11 含答案程序设计基础及语言复习提纲 58 / 56 含答案程序设计基础及语言复习提纲 #inelude main() { int a=6, b=0, c=0; for ( ;a&&(b==0); )®(3) { b += a;(2) a -= c++;(3) } printf("%d,%d,%dn", a,b,c); } ① 6&&(0==0) 为真谜入循环. (2)b=0+6=6 (3)a=6-c++=6-0=6, c=l ◎6&&(6==0) 为假,跳出循环,输出结果。 3.11 #include main() { int a= 1 ,b=2,c=3,d=0; if (a== 1 && b++==2)//(J) (1==1&&2==2) 成立, b=3, 执行语句(?) 辻 (b!=2| | C -!=3)(2)3!=2 表达式为真,造成丨|短路,执行语句 printf("%d,%d,%dn",a,b,c); else a=5;(2) 59 / 56 含答案程序设计基础及语言复习提纲 printf("%d,%d,%dn",a,b,c);(3) else printf("%d,%d,%dn",a,b,c); } 3.12 #include main() { int a=l,b=2,c=3,d=4; if ((a=2) | | (b=l)) //a=2 表达式为真,造成| |短路,即不对 b 赋值 1 。 c=2; if ((c==3) && (d=-l) //2==3 假.造成&&短路,即不对 d 赋值 -1. a=5; printf("%d,%d,%d,%dn", a,b,c,d); } 3.13 #include main() { int a=l,b=2,c=3,d=4; if ((a=2) && (b=l)) //a=2 真, b=l 真,执行语句 (D 60 / 56 c=2;① if ((c==3) | | (d=-l)) //2==3 假 d=-l 真, 执行语句辺 含答案程序设计基础及语言复习提纲 printf("%d,%d,%d,%dn", a,b,c,d); } 3.14 func(a,b) int a,b; {static int m=O,i =2; i+=m+l; (2)(§) m=i+a+b; (3) return (m); } main() {int k=4,m=l,p; (T) p=func(k,m); 0) printff u %d n ,p); p=func(k,m); ◎ prin 廿(“ %dn ,, ,p); } a=5;(2) 61 / 56 ®k=4,m=l(2)i=i+m+1=2+0+1=3 (3)m=3+4+l=8 0)p=8, 输出 @i=i+m+1=3+8+1 = 12 ,m=12+4+l = 17©p=l 乙输出. 3.16 #include void mainfvoid ) { char ss[20]; 62 / 56 含答案程序设计基础及语言复习提纲 int i; gets(ss); for(i=0;ss[i]!='0';i++) 辻 (ss[i]>=A && ss[i]<='Z') ss[i] = ss[i]+32 ; puts(ss); } 3.17 #include void main(void) //将大写字母替换为对应的小写字母 { int a[10]={78,89,98,66,54,76,45,82,62,95 }; int ka, ki, j; ka = ki = 0; for(j=l; j<10; j++) { if ( a[ki]>a[j] ) ki=j ;//a[ki] 存储的是最小值
版权声明:本文标题:含答案程序设计基础及语言复习提纲 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1735816366a1691334.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论