《C语言程序设计》课程期末复习指南

更新时间:2024-01-06 12:30:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《C语言程序设计》课程期末复习指南

复习要点:

一、数据类型与变量定义:

1.基本的数据类型:char、int、float、double; 2.变量的定义及初始化。 二、运算符: 1.常用运算符:

算术运算符 + - * / % 自增、自减运算符 ++ --

赋值运算符和复合的赋值运算符 = += -= 等 关系运算符 > >= < <= == != 逻辑运算符 && || ! 指针运算符 * 地址运算符 &

位址运算符 ~ & | ^ << >> 2.运算符的优先级和结合性; 3.表达式的计算。 三、语句

1.常用语句:

if语句、switch语句

while语句、do-while语句、for语句 2.程序的基本结构:

顺序结构、选择结构、循环结构 四、函数

1.函数声明、函数调用、函数定义; 2.实际参数、形式参数以及参数传递;

3.常用的输入和输出函数:printf、scanf、gets、puts等 4.字符串处理函数:strcat、strcpy、strcmp、strlen等 五、其他的数据形式 1.数组;

1

2.结构体; 3.文件; 六、基本算法

1.累加(如:求数列的若干项的和); 2.累乘(如:求阶乘);

3.排序算法(选择法、冒泡法);

4.查找算法(在个组数据中查找某数据、求最大值、最小值); 5.素数的判断; 6.闰年的判断; 样题1

阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。

【程序说明】求 1 - 1/2 + 1/3 - 1/4 + 1/5 -1/6+ ? 的前20项之和。 运行示例:

sum = 0.668771 【程序】

#include int main() {

double sum; int a=1,k=1;

(1) sum=0; ; do{

sum=sum+ k/(double)a (2) ; a+=1;

(3) k=-k ; }while(a<=20);

printf(\sum=%f\\n \ }

【供选择的答案】 (1) A、sum=0 B、sum=1

C、sum=-1 D、sum=2 (2) A、1/a B、1/double(a)

C、k/double(a) D、k/(double)a (3) A、; B、k=-k;

C、k=k-2; D、k=!k; (4) A、\ B、\

C、\ D、\样题2

2

阅读下列程序说明和程序,在每小题提供的可选答案中,挑选一个正确答案。

【程序说明】

输入10个整数,将它们从大到小排序后输出。

运行示例:

Enter 10 integers: 1 4 -9 99 100 87 0 6 5 34 After sorted: 100 99 87 34 6 5 4 1 0 -9 【程序】

#include void main( )

{ int i, j, t, a[10];

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

scanf( “%d”,&a[i] (5) ); for(i = 1; i < 10; i++)

for( j=0 (6) ; j<10-i (7) ; j++) if( a[j]>a[j+1] (8) ){ t = a[j]; a[j] = a[j+1]; a[j+1] = t; }

printf(\ for(i = 0; i < 10; i++) printf(\ printf(\}

【供选择的答案】 (5) A、\ B、\

C、\、\(6) A、j = 0 B、j = 1 C、j = i D、j = i - 1 (7) A、j > i B、j < 9 - i C、j < 10 - i D、j > i - 1 (8) A、a[i-1] < a[i] B、a[j+1] < a[j+2] C、a[j] < a[j+1] D、a[i] < a[j] 样题3

阅读下列程序说明和程序,在每小题提供的可选答案中,挑选一个正确答案。 【程序说明】

程序输出既出现在数组a中也出现在数组b的元素。 【程序】

#include int main() {

int i,j,a[6]={12,4,17,25,27,16},b[6]={27,13,4,25,23,16};

3

for( i=0 (9) ;i<6;i++) { for(j=0; j<6 (10) ;j++) if(a[i]==b[j]) (11) break ; if( j>5 (12) ) continue; printf(\ }

return 0; }

【供选择的答案】

(9) A、i=0 B、i=1 C、i=2 D、i=3 (10) A、j<5 B、j<6 C、j<7 D、j<8 (11) A、continue B、break C、exit(0) D、exit(1) (12) A、j>5 B、j>6 C、j>7 D、j>8

样题4

阅读下列程序并回答问题,在每小题提供的可选答案中,挑选一个正确答案。

【程序】

#include void main( )

{ int s, x1, y1, z1, x2, y2, z2; printf(\

scanf(\s = f(x2, y2, z2) - f(x1, y1, z1); printf(\}

f(int x, int y, int z) { int k, n;

int tab[2][13] = {

{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} };

n = (x % 4 == 0 && x % 100 != 0 || x % 400 == 0); for(k = 1; k < y; k++) z = z + tab[n][k]; return z; }

(13) 程序运行时,输入1 0 0 0 0 0,输出 (13) 。

4

A、29 B、28 C、0 D、-1 (14) 程序运行时,输入0 0 1 0 0 0,输出 (14) 。 A、29 B、28 C、0 D、-1 (15) 程序运行时,输入2000 2 1 2000 3 1,输出 (15) 。 A、29 B、28 C、0 D、-1 (16) 程序运行时,输入1981 2 1 1981 3 1,输出 (16) 。 A、29 B、28 C、0 D、-1 样题5

阅读下列程序说明和程序,在每小题提供的可选答案中,挑选一个正确答案。

【程序说明】

将指定的一个字符从字符串中删除。

【程序】

# include

# include < (16) > int main() {

int i, j;

(17) ; char ch, s1[30], s2[30] ;

printf(\ gets(s1);

printf(\ scanf(\

for (i=0;s1[i]!='\\0';i++) if (s1[i]!=ch)

(18) ; (19) ; strcpy(s1,s2); puts(s1); return 0; }

(17) A、ctype.h B、math.h C、stdlib.h D、string.h (18) A、j=-1 B、j=0 C、j=1 D、; (19) A、*s1++ = *s2++ B、s2[j++] = s1[i] C、*s2++ = *s1++ D、s2[++j] = s1[i] (20) A、*++s1 = '\\0'; B、*++s2 = '\\0'; C、s2[j] = '\\0'; D、s2[j+1] = '\\0'; 样题6

#include struct card{ char *face; char *suit;

5

};

void filldeck(struct card *wdeck, char *wface[],char *wsuit[]) { int i; for (i = 0; i < 4; i++){ wdeck[i].face = wface[i%2]; wdeck[i].suit = wsuit[i/2]; } }

void deal(struct card *wdeck) { int i; for (i = 0; i < 4; i++)

printf(\}

void main()

{ struct card deck[4]; char *face[]={\

char *suit[]={\ filldeck(deck,face,suit); deal(deck); }

(21) 程序运行时,第1行输出 (21) 。 A、(K of Heart) B、(Q of Heart) C、(K of Club) D、(Q of Club) (22) 程序运行时,第2行输出 (22) 。 A、(K of Heart) B、(Q of Heart) C、(K of Club) D、(Q of Club) (23) 程序运行时,第3行输出 (23) 。 A、(K of Heart) B、(Q of Heart) C、(K of Club) D、(Q of Club) (24) 程序运行时,第3行输出 (24) 。 A、(K of Heart) B、(Q of Heart) C、(K of Club) D、(Q of Club) 样题7 编程题

1、从键盘输入20个学生的成绩,计算平均分,并输出高于平均分的成绩。要求使用数组。

2、编一个名为pari的函数,判断给定参数的奇偶性,如果是奇数则返回5,否则返回6,函数返回值类型是int。在函数main()中输入正整数m,要求调用函数pari判断其该数的奇偶性,并输出判断结果。

3、编写一个函数int pri(int m),判定一个整数是否为素数。如果m是素数,则返回1,否则返回0;然后在main中调用该函数输出800以内的全部素数。

6

};

void filldeck(struct card *wdeck, char *wface[],char *wsuit[]) { int i; for (i = 0; i < 4; i++){ wdeck[i].face = wface[i%2]; wdeck[i].suit = wsuit[i/2]; } }

void deal(struct card *wdeck) { int i; for (i = 0; i < 4; i++)

printf(\}

void main()

{ struct card deck[4]; char *face[]={\

char *suit[]={\ filldeck(deck,face,suit); deal(deck); }

(21) 程序运行时,第1行输出 (21) 。 A、(K of Heart) B、(Q of Heart) C、(K of Club) D、(Q of Club) (22) 程序运行时,第2行输出 (22) 。 A、(K of Heart) B、(Q of Heart) C、(K of Club) D、(Q of Club) (23) 程序运行时,第3行输出 (23) 。 A、(K of Heart) B、(Q of Heart) C、(K of Club) D、(Q of Club) (24) 程序运行时,第3行输出 (24) 。 A、(K of Heart) B、(Q of Heart) C、(K of Club) D、(Q of Club) 样题7 编程题

1、从键盘输入20个学生的成绩,计算平均分,并输出高于平均分的成绩。要求使用数组。

2、编一个名为pari的函数,判断给定参数的奇偶性,如果是奇数则返回5,否则返回6,函数返回值类型是int。在函数main()中输入正整数m,要求调用函数pari判断其该数的奇偶性,并输出判断结果。

3、编写一个函数int pri(int m),判定一个整数是否为素数。如果m是素数,则返回1,否则返回0;然后在main中调用该函数输出800以内的全部素数。

6

本文来源:https://www.bwwdw.com/article/d1gx.html

Top