最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

“C语言程序设计”复习题

来源:动视网 责编:小OO 时间:2025-10-01 17:58:45
文档

“C语言程序设计”复习题

“C语言程序设计”期末复习题一.单项选择题1.组成C程序的基本单位C____。A)表达式与语句B)若干文件C)函数D)main函数2.下列为字符常量的是__C_____。A)HEB)"I"C)'Z'D)She3.若变量c为char类型,能正确判断c为小写字母的表达式是__d___。A)'a'2)return(fib(n-1)+fib(n-2));elseif(n==2)return(2);elsereturn(1);}main(){printf(“%d\\n”,fib(4));}A、3B、4C
推荐度:
导读“C语言程序设计”期末复习题一.单项选择题1.组成C程序的基本单位C____。A)表达式与语句B)若干文件C)函数D)main函数2.下列为字符常量的是__C_____。A)HEB)"I"C)'Z'D)She3.若变量c为char类型,能正确判断c为小写字母的表达式是__d___。A)'a'2)return(fib(n-1)+fib(n-2));elseif(n==2)return(2);elsereturn(1);}main(){printf(“%d\\n”,fib(4));}A、3B、4C
“C语言程序设计”期末复习题

一.单项选择题

1.组成C程序的基本单位C____。

A)表达式与语句    B)若干文件      C)函数           D)main函数

2.下列为字符常量的是__C_____。

A)HE             B)"I"            C)'Z'             D)She

3.若变量c为char类型,能正确判断c为小写字母的表达式是__d___。

A)'a'<=c<= 'z'   B)(c>= 'a')||(c<= 'z')  C)('a'<=c)and ('z'>=c)  D)(c>='a')&&(c<='z')

4.在C语言中,正确的int类型的常数是__D______。

A)-2U        B)059             C)3a              D)0xAF

5.下列变量定义正确的是____d____。

A)int x_1 ; y;   B)int  x=y=5 ;   C)int  for=4;   D)int printf=2,x_y=2;

6.以下函数原型说明正确的是____A____。

A)float add(int x, int y) ;          B)int add(int x;int y) ;

C)char add( x,y) ;               D)int add(char x[ ] [ ]) ; 

7.有程序段如下,不能表示为地址的是___D_____。

int x=2,*p;   p=&x;   x=x+1;  

A)&x    B)p      C)&p        D)&(x+1)

8.简单变量做实参时,实参与其对应的形参之间的数据传递方式是____C____。

A)双向值传递方式   B)地址传递方式   C)单向值传递方式   D)用户指定传递方式

9.下列表达式没有错误的是_C_______。

int x , *p;

A)5.0%2         B)x+1=5       C)&p        D)&(x+1)

10.下列错误的语句是C________。

A)int  k,*p=&k; scanf(“%d”,&k);

B)int  k,*p=&k; scanf(“%d”,p);

C)int  k,*p; *p=&k; scanf(“%d”,p);

D)int  k,*p ; p=&k; scanf(“%d”,p); 

11.任何复杂的程序,都是由__C______构成的。

A)分支结构、顺序结构、过程结构        B)循环结构、分支结构、过程结构

C)顺序结构、循环结构、分支结构        D)循环结构、分支结构

12.有以下定义和赋值语句,能够正确表示a[1][2]的表达式是 _D_______ 。

int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};

int (*p)[3]= a;

A)*((*p+1)+2)     B)(*p+1)+2     C)*(*(p+5))    D)*(*(p+1)+2)

13.以下说法中正确的是___C_____。

A)C程序总是从第一个定义的函数开始执行

B)在C程序中,要调用的函数必须在main函数中定义

C)C程序总是从main函数开始执行的

D)C程序中的main函数必须放在程序的开始部分

14.执行下列两个语句后,输出的结果为( C   )

char c1=65,c2=97;

printf(“%c,%d”,c1,c2);

A、65,98     B、65,a     C、A,97     D、A,a

15.以下说法错误的是A________。

A)do~while语句与while语句的区别仅是关键词“while”出现的位置不同

B)while语句是先进行循环条件判断,后执行循环体的

C)do~while是先执行循环体,后进行循环条件判断

D)while、do~while和for语句的循环体都可以是空语句

16.C语言程序是从main函数开始执行,这个函数写在_____D___。

A)程序文件开始                                    B)它所调用函数的前面

C)程序文件最后                                    D)程序文件任何位置

17.在C语言类型说明中,int、char、short等类型的长度是__B______。

A)由用户自己定义的                             B)与机器字长有关的

C)固定的                                       D)任意的

18.以下字符中,不正确的C语言转义字符分别是_____B___。

A)‘\\\’             B)‘011’        C)‘\’’           D)‘\\xaa’

19.以下选项中,合法的C语言关键字是__C______。

A)integer             B)Char          C)short          D)Long

20.C语言中函数返回值的类型由(  D   )决定的

A、return语句中的表达式类型      B、调用该函数的主调函数的类型

C、调用函数时临时决定             D、定义函数时所指定的函数类型

21.以下叙述错误的是_____C___。

A)C语言本身没有输入输出语句

B)一个可执行的C源程序必须包含一个main函数

C)C程序中,注释说明只能位于一条语句的后面

D)C程序的基本组成单位是函数

22.设有以下程序片段,请问执行后的输出结果是_B_____。

char ch='A';

ch=(ch>='a' && ch<='z')?ch:ch-'A'+'a';

printf("%c" , ch);

A)A                   B)a              C)Z            D)z

23.    已知int x=10,y=5;执行语句x%=y;后x的值是(A  )。

A、0     B、1       C、5     D、2

*24.以下有关宏替换的叙述错误的是__A______。

A)宏名必须用大写字母表示                   B)宏替换不占用运行时间

C)宏名不具有类型                           D)宏替换只是字符替换

25.以下对二维数组a的声明正确的是_C_______。

A)int a [3][ ];       B)int a (3,4);      C)int a [1][4];    D)int a (3)(4);

26.如果在一个函数的复合语句中定义一个变量,以下叙述正确的是___B_____。

A)该变量在该函数中有效                      B)该变量只在该复合语句中有效

C)该变量为不合法的变量                      D)该变量在本程序范围内有效

27.能表示x为偶数的表达式是___A_____。

A)x %2==0                B)x%2==1          C)x%2                D)x%2!=0

28.C语言中运算对象必须是整型的运算符是__A______。

A) %              B) /                C)=                 D) <=

29.下列数组定义正确的是__D______。

A)int a[5],b[2,3];      B)char no(30);     C)char x[ ];     D)int x[5]={1,2,3};

30.变量定义如下:

int  x;

float  y;

以下输入语句正确的是__C______。

A)scanf("%f%f",&y,&x);                 B)scanf("%f%d", y, x);

C)scanf("%f%d",&y,&x);                 D)scanf("%5.2f%2d",&y,&x);

31.下列函数头中形参说明错误的是___A_____。

A)float average(float array[9], n)              B)float average(float *array ,int n)

B)float average(float array[ ] ,int n)            C)float average(float array ,int n)

32.函数形参与实参之间的传递是“值传递”,以下叙述正确的是___B_____。

A)实参和与其对应的形参共用一个存储单元

B)实参和与其对应的形参各占用的存储单元

C)当实参和与其对应的形参同名时才共用一个存储单元

D)形参是形式的,不占用存储单元

33.以下if语句错误的是_C_______。

A)if (xB)if (x)  x+=y; 

C)if (xD)if (x!=y)  scanf (" %d",&x) ; else  x++;

34.以下程序的输出结果是(     ) 

void fun(int *p,int b)

{ *p=2; b=5; }

main( ) 

{ int a=3, b=7;

  fun(&a,b); 

  printf(“%d,%d\\n”, a,b); } 

A、2,5           B、3,7            C、3,5           D、2,7

35.t为int类型,进入下面的循环之前t的值为0,以下叙述正确的是________。

while( t=l )

{  ……   }

A)循环控制表达式的值为0                    B)循环控制表达式的值为1

C)循环控制表达式不合法                      D)以上说法都不对

36.以下说法正确的是________。

A)C语言源程序无论包含了多少函数,总是从main函数开始执行。

B)main是由C语言提供的,并不需要用户自己编写。

C)调用C语言标准库函数时,程序中要用到include命令,它也是C语言的一种语句。

D)在C语言中,要调用的函数必须在main函数中定义。

37.若0<=i<10,则下列________是对数组元素的错误引用。

int a[ ]={1,2,3,4,5,6,7,8,9,0},*p, i;   p=a;

A)*(a+ i)            B)a[p-a]          C)p+ i            D)*(&a[i])

38.下列表达式的值为1.5的是________。

int  x;   float  y;

A)x=3/2.0           B)x=3/2         C) y=3/2        D)y=3/2.0

39.下列语句实现的功能与其printf语句中所表达的含义相符的是________。

A) int a,b,c;

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

       if(a=b=c) printf("这是一个等边三角形\\n");

B) int a,b,c;

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

       if(a+b>c||a+c>b|| c+b>a)printf("这三条边能组成一个三角形\\n");

C) int a,b,c;

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

       if(a==b&&b==c)  printf("这是一个等边三角形\\n");

D) int a,b,c;

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

       if(a==b||b==c)  printf("这是一个等腰三角形\\n")

*40.下列关于#include命令的叙述中,错误的是____________。

A)#include命令中,文件名可以用双引号或尖括号括起来

B)一个被包含文件中又可以包含另一个被包含文件

C)一个#include命令中可以指定多个被包含文件

D)一个#include命令中只能指定一个被包含文件

41.若a为整型变量,则以下语句________。

a=-2L;  printf (“%d\\n”,a);

A)赋值不合法       B) 输出值为-2    C)输出为不确定值     D)输出值为2

42.若有说明语句:int  y[ ][4]={0,0,0,0,0,0};  则正确的叙述是________。

A)数组y的每个元素都可得到初值0

B)二维数组y的行数为1    C)该说明等价于int y[0][4]={0};

D)有元素y[0][0]至y[0][5]可得到初值,其余元素均得不到初值0

43.若 int 类型数据占两个字节,则下列语句的输出为________。

int k=-1;

printf(“%d,%u\\n”,k,k);

A)-1,-1           B)-1,32767       C)-1,32768       D)-1,65535

44.已知:char a;  int b;  float c;  double d; 执行语句c=a+b+c+d;后,变量c的数据类型是________。

A)int              B)char           C)double          D)float

45.若int i=10;执行下列程序后,变量i的最后结果是(    )

switch ( i ) 

{ case 0: i+=1;

  case 10: i+=1;

  case 11: i+=1;

  default: i+=1;break;

}

A、10         B、11         C、12          D、13

46.若有以下变量说明和数据的输入方式,则正确的输入语句为________。

变量说明:float x1,x2;

数据的输入方式:4.52<回车>

                3.5<回车>

A)scanf(“%f,%f”,&x1,&x2);           B)scanf(“%f%f”,&x1,&x2);

C)scanf(“%3.2f,%2.1f”,&x1,&x2);      D)scanf(“%3.2f%2.1f”,&x1,&x2);

47.若变量已正确定义,与语句 if(a>b)k=0;else k=1;等效的是________。

A)k=(a>b)?1:0      B)k=a>b;      C)k=a<=b;       D)a>b?0:1;

48.若有定义:int  x,*pb;则正确的赋值表达式是________。

A)pb=&x              B)pb=x          C)*pb=&x           D)*pb=*x

49.已知:int a,*p=&a; 则为了得到变量a的值,下列错误的表达式为________。

A)p[0]               B)*p            C)&*a         D)*&a

50.在C语言中,引用数组元素时,其数组下标的数据类型允许是________。

A)整型常量                   B)整型表达式

C)整型常量或整型表达式       D)任何类型的表达式

51.若有定义:int b[5];则以下对b 数组元素的正确引用是________。

A)*&b[5]                                B)b+2

C)*(*(b+2))                          D)*(b+2)

52.设有定义语句char s[ ]= "123";,则表达式s[3]的值是________。

A)'1'         B)'3'      C)'\\0'          D)语法出错

53.语句if (!i ) i++; 中的条件表达式 !i 等价于________。

A)i==0              B)i!=1          C)i!=0         D)-i

54.设有int x,y;  以下语句判断x和y是否相等,正确的说法是该语句________。

if (x=y) printf(" x is equal to y."); 

A)语法错    B)不能判断x和y是否相等   C)编译出错   D)能判断x和y是否相等

55.C语言中规定,if语句的嵌套结构中,else总是与________配对。

A)与最近的if 配套                          B)与第一个if 配套

C)按缩进位置相同的if配套                   D)与最近的且尚未配对的if 配套

56.以下有关switch语句的正确说法是________。

A)break语句是语句中必须的一部分

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

C)break A语句在switch 语句中不可以使用

D)在switch 语句中的每一个case都要用break语句

57.若有下面的变量定义,以下语句中合法的是(  )

int i,a[10],*p; 

A、p=a+2;   B、p=a[5];   C、p=a[2]+2;  D、p=&(i+2);

58.当执行以下程序时,________。

#include

void main(  )

{       int a; 

       while(a=5)

                printf("%d ",a--);   }

A)循环体将执行5次  B)循环体将执行0次 C)循环体将执行无限次  D)系统会死机。

59.以下函数的类型是________。

int sum(double x, double y)

{       double s;

       s=x+y;

       return s;   }

A)字符型         B)不确定        C)整型         D)实型

60.以下叙述不正确的是________。

A)一个C源程序文件必须包含一个main( )函数

B)一个C源程序文件可由一个函数组成

C)一个C源程序文件是一个编译单位

D)一个C源程序文件可由多个函数组成

61.若用数组名作为函数调用时的参数,则实际上传递给形参的是________。

A)数组元素的个数                      B)数组的第一个元素值

C)数组中全部元素的植                  D)数组首地址

62.C语言允许函数值类型的缺省定义,此时该函数值隐含的类型是________。

A)long 型                  B)float 型          C)double型         D)int型

63.以下叙述正确的是________。

A)函数的定义和函数的调用均不可以嵌套

B)函数的定义和函数的调用均可以嵌套

C)函数的定义可以嵌套,但函数的调用均不可以嵌套

D)函数的定义不可以嵌套,但函数的调用均可以嵌套

.凡是在函数中未指定存储类别的局部变量,其隐含的存储类别是________。

A)静态(static)   B)外部(extern)   C)自动(auto)   D)寄存器(register)

65.若已定义 x和 y为double类型,则表达式: x=l, y=x+3/2结果是(  )    

A、1         B、2           C、2.0           D、2.5

66.C语言的编译系统对宏命令的处理是________。

A)在程序连接时进行的        B)在对源程序中的其它语句编译之前进行的

C)在程序运行时进行的        D)和C程序中的其它语句同时进行的

67.下列对字符串的定义中,错误的是___   __ 。

A)char str[5]= "abcde"              B)char str[ ]= "abcde"

C)char *str ="abcde"               D)char str[ ]={ 'a', 'b', 'c', 'd', 'e', '\\0'}

68.若有定义char x[ ]= "12345"; char y[ ]={ '1', '2', '3', '4', '5'};则          。

A)x数组与y数组的长度相同                B)x数组长度大于y的长度

C)x 数组长度小于y数组长度                D)x数组等价与y 数组

69.有如下程序,该程序的输出结果是(     )

long  fib (int n) 

{ if(n>2)   return(fib(n-1)+fib(n-2)); 

  else 

    if(n==2)  return(2);

    else  return(1); } 

main( ) 

{ printf(“%d\\n” ,fib(4)); }

A、3     B、4     C、5      D、6

70. 设有定义“int a=3, b,*p=&a;”,则下列语句中使 b不为3的语句是(    )

A、 b=* &a   B、 b=* p     C、 b=a        D、b=*a

71. 以下选项中不能正确把cl定义成结构体变量的是(    )

  A)typedef struct                  B)struct color cl

      { int red;          {        i    int blue;

  } COLOR;          };COLOR cl;

C)struct color                  D)s                        {                 i                 i                            } cl;

72. 以下能正确定义一维数组的选项是

A)int num[];                    B)#define N 100  

 int num[N];  

C)int num[0..100];               D)int N=100; int num[N];

73. 下列选项中正确的语句组是  

A)char s[8]; s={"Beijing"};        B)char *s; s={"Beijing"};

  C)char s[8]; s="Beijing";          D)char *s; s="Beijing";

74. 已定义以下函数

  fun(int *p)  { return *p; }  该函数的返回值是 

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

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

75. 下列函数定义中,会出现编译错误的是

  A)m B)int max(int x,y)

  { int z; z=x>y ? x:y;

  return z;  }  

C)m)int max(int x,int y)

      { int z;                               { return(x>y?x:y); }

z=x>y?x:y; return(z);}

76. 有以下程序

  #include   main( )  { char str[][20]={"HelloBeijing"},

程序运行后的输出结果是

  A)0     B)5       C)7           D)20

77.有以下程序  main()  { int a[3][3] ;  *p,i;

     printf("%d \\n",a[1][2]);  }  程序运行后的输出结果是   

A)3        B)6              C)9       D)2

78. 有以下程序

   main( )   {char s[ ]="ABCD",*p;

    for(p=s+1; p  程序运行后的输出结果是

   A) ABCD           B) A                C) B              D) BCD

               B               C              CD

       CD              C                D                 D

        D               D

79. 以下叙述中正确的是 

   A) 局部变量说明为static存储数,其生存期将得到延长

   B) 全局变量说明为static存储类,其作用域将被扩大

   C) 任何存储类的变量在未赋初值时,其值都是不确定的

   D) 形参可以使用的存储类说明符与局部变量完全相同

80. 有以下程序 

   main(  )   { int a=7,b=8,*p=&a,*q=&b,*r;

    r=p; p=q;q=r;

    printf("%d,%d,%d,%d\\n",*p,"q,a,b);   }

  程序运行后的输出结果是 

   A) 8,7,8,7         B) 7,8,7,8          C) 8,7,7,8      D) 7,8,8,7 

81. 若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为 

  A)0          B)1      C)-      D)一个非0值

82. 下列关于C语言数据文件的叙述中正确的是  A)文件由ASCII码字符序列组成,C语言只能读写文本文件

B)文件由二进制数据序列组成,C语言只能读写二进制文件

C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件

  D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件

83. 设有定义语句:char c1=92,c2=92;,则以下表达式中值为零的是

   A) c1^c2           B) c1&c2             C) ~c2            D) c1|c2

84. 有以下说明和定义语句

    struct student

   { int age; char num[8];};

    struct student stu[3]={{20,"200401"},{21,"200402"},{10\\9,"200403"}};

struct student *p=stu;

  以下选项中引用结构体变量成员的表达式错误的是 

   A) (p++)->num      B) p->num      C) (*p).num      D) stu[3].age

85. 有如下程序

   #include 

   main( )   { FILE *fp1;

    fp1=fopen("f1.txt

    fprintf(fp1,"abc");

    fclose(fp1);   }

  若文本文件f1.txt中原有内容为:good,则运行以上程序后文件f1.txt中的内容为 

   A) goodabc         B) abcd         C) abc           D) abcgood

86. 有以下程序

  main()  { int x=3, y=2, z=1;

printf("%d\\n",x/y&~z);  }  程序运行后的输出结果是 

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

87. 以下程序的输出结果是

main( )

{ char st[20]= "hello\\0\\\\\\\";

printf(%d %d \\n",strlen(st),sizeof(st));  }

A) 9 9             B) 5 20          C) 13 20        D) 20 20

88. 整型变量x和y的值相等、且为非0值,则以下选项中,结果为零的表达式是

A) x || y             B) x | y             C) x & y            D) x ^ y

. 已定义以下函数

  fun(char *p2, char *p1)  { while((*p2=*p1)!='\\0'){ p1++;p2++; } }  

函数的功能是 

  A)将p1所指字符串复制到p2所指内存空间  

B)将p1所指字符串的地址赋给指针p2

  C)对p1和p2两个指针所指字符串进行比较

  D)检查p1和p2两个指针所指字符串中是否有'\\0'

90. 以下程序的输出结果是

#define M(x,y,z) x*y+z

main( ) { int a=1,b=2, c=3;

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

A) 19               B) 17             C) 15            D) 12

二.填空

1、一个变量的地址,可以通过在变量前加    &      符号来得到。

2、将一维数组x的第i个元素的地址赋给指针变量P的语句是     p=&x[i];。

3、C语言程序由main( )函数开始执行,应在__main( )函数中  ___结束。    

4、 设p1,p2为同类型的指针变量,若有p1= =p2,则说明p1与p2指向__同一个变量_ _。

5、结构化程序分为以下三种结构:顺序结构, 选择       结构,   循环    结构。

6、逗号表达式a = 1,a + 1,a + + 的值是____1________。

7、int c;c=1/2; 则c的值是   0        。

8、“2020)&&(x<30)_     ____。

9、在程序中定义了一个变量:int score;用来存储成绩数据,如果希望取得用户键入的数据,可使用  scanf(“%d”,&score);                      语句。

10、int i=6; do{printf(“H”);i=i+1;} while (i<6)写出该段代码运行后的输出内容:  H  。

11、最简单的C程序最少由一个函数组成,这个函数是  main()        。

12、printf(“\\“hello world\\””);这条语句输出的内容是:   ”hello world”       。

13、C语言中三种常用的循环控制结构是do—while循环、  while      循环和          for    循环。    

14、定义一个指向浮点型数据的指针变量p的语句是__float__ *p_;         _。

15、设 i,j,k均为 int型变量,则执行完下面的for语句后,k的值为  10        。

 for(i=0, j=10;i<=j;i++,j--)k=i+j;

16、当a=2,b=3,c=1时,执行以下程序段后,输出结果是__end____。

if(a>b)

if(a>c)

       printf(″%d\\n″,a);

     else

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

     printf(″end\\n″);

17、设 int a=7,b=9,t;执行完表达式t=(a>b)?a:b后,t的值是( 9   )。

18、有一个整型变量 int score;若用printf函数输出这个变量的值,应使用____printf(“%d”,score)_;___________________语句。

19、为表示变量a和b都大于0,使用的C语言表达式是__(a>0)&&( b>0)___。

20、“* ”称为___取内容________运算符,“&”称为___取地址______运算符。

21、一个字符变量可存放__1__个字符,可用   字符  数组存放字符串。

22、C语言中数组的下标的最小值是  0   。

23、在一个C程序文件中写一行注释的方法是  /*     */       。

24、判断整型变量a即是5又是7的整数倍的C表达式是 (a%5==0) && (a%7==0)      。

25.在C语言中使用到的变量,都应先(  ),后(  )。

26.若有定义:char c=′\\010′;则变量c中包含的字符个数为______。

 27.函数的返回值是通过函数中的(  )语句获得的。 

25  .定义 使用    26.1个   27. return

28#include 中#include属于__预处理___命令;stdio.h属于__头___文件。

29C语言表达式2/5*10的值是___0______

30、凡在C语言函数中未指定存储类别的变量,其隐含的存储类别为 __auto__

31、在C语言中,数组作为函数的形参,函数调用时,若用数组名作为函数的实参,则实际上传递给形参的是____数组首地址_____ 

32、  写出条件“-10≤x≤10”的C语言表达式是_______ 

33、  函数指针是函数的________,通过它可以访问该函数

 34、  二维数组名是_________的指针常量 

35、  数组的下标可以是非负的________ 

37、  在格式输出语句中,用于带符号的十进制长整型输出的格式符是______。 

38、  C语言程序的3种基本结构是_______、_________、________ 

32、     (x>=10)&&(x<=10) 

33、     内存地址   34、     一维数组 

35、     整型表达式      37、  %ld    

38、     顺序结构、选择结构、循环结构

39、已知a=3,b=2,则表达式a*=b+8的值是(    30        )。

40、当a=2,b=2,c=2时,则表达式a = =b= =c的值是(    0      )。

41  已有定义如下: 

struct node  

{ int data;  

    struct node *next;  

} *p;  

以下语句调用malloc函数,使指针p指向一个具有struct node类型的动态存储空间。请填空。

p = (struct node *)malloc(    sizeof(struct node)    ); 

42  若fp已正确定义为一个文件指针,d1.dat为二进制文件,请填空,以便为“读”而打开此文件:fp=fopen("d1.dat或"d1.dat或"d1.dat );。

43  有以下程序

void f( int y,int *x)

{y=y+*x;  *x=*x+y;}

main( )

{  int x=2,y=4;

}

执行后输出的结果是         8   4              

三.程序阅读题

1.阅读以下程序,若输入5<回车>,写出程序运行结果。

int main( )   {  int i, n;   

  scanf("%d", &n);

 .0f\\n", fact);  }

}

2.写出下面程序的运行结果。

void main( )

{  int i,j,sum=0;

int a[3][3]={1,1,1,2,2,2,3,3,3};

}

3.写出以下程序的运行结果。

#include

void  fnt(  )

void main( )

{  int  i ;

4.写出以下程序输出的结果。 

#include

void main( )

 p=&a[0]; 

       printf("%d\\n",y);   }  }

5.写出以下程序的运行结果。

#include

void main()

{    int n; 

     if (n%2)  continue; 

      }

}

6.写出以下程序的输出结果。

#include

void main( )

       {      if(y%2==0)         continue; 

                printf("%3d", y);        }   }

7.阅读以下程序,写出程序的运行结果。

#include

#define N 6

void main( )

 for(j=0; j {  t=a[j]; 

               a[j+1]=t;      }

                printf("%5d",a[j]);   }

8.写出以下程序输出结果。

#include

void main( )

 for (;p四、程序填空题

1.以下程序的功能是计算xn,请填空。

#include

int main( )

{                int i, n;

                double x, mypow;

                scanf("%lf%d", &x, &n);

                                  ;

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

                   mypow*=x;

                printf("%.2f\\n", mypow);   }

2.通过以下程序求全部元素的和,请填写缺少的语句。

#include

void main( )

{       int a[ ]={0,1,2,3,4,5,6,7,8,9};

       int s=0 , i, *p;

       p=                  ;

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

       printf("sum=%d", s);   }

3.求10个学生的成绩的最高分。

main( )

{ int a[10],i,max=0; 

 for(i=0;                        ;i++)

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

if  (                                          )

max=                     ;

   }

 printf(“%d “,max);

}   

4.以下程序用于计算职工的个人所得税,即输入一个职工的月薪salary,输出应交的个人所得税tax(保留2 位小数)。个人所得税的计算公式tax = rate * (salary-1500) (当salary ≤ 1500 时,rate = 0, 当1500 < salary ≤5000 时,rate = 0.15,当5000 < salary 时,rate = 0.20)。

int main( )

{  float rate, salary, tax;

   scanf("%f", &salary);

    if(                      )   rate=0;

      else  if(                      )  rate=0.15;

           else  rate=0.20; 

tax = rate * (salary-1500) ;

printf("tax=%0.2f\\n", tax);   }

5.以下程序的功能是计算n!,请填空。

#include

int main( )

{   int i, n;

          double fact;

          scanf("%d", &n);

               (1)             ;

           for(i=1; (2)            ;i++)

                  fact*=i;

        printf("%.0f\\n", fact);   }

6.以下程序的功能是计算1-1/2+1/3-1/4+..前n 项和,请填空。

#include

int main( )

{        int i, n, flag;

          float sum;

          scanf("%d", &n);

           (3)           ;

          sum=0;

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

          {  sum+=(float)flag/i;

                               (5)               ;

        }

          printf("%.3f\\n", sum);   }

7.以下程序可计算10名学生1门课成绩的平均分,将缺省语句填上。

#include

float average(float array[10])

{        int i;float aver,sum=array[0];

       for(i=1;             ;i++) sum+=             ;

       aver=sum/10;

       return(aver);   }

void main( )

{       float score[10],aver;       int i;

       printf("\\n input 10 scores:");

       for(i=0;i<10;i++)  scanf("%f",&score[i]);

       aver=            ;

       printf("\\n average score is %5.2f\\n",aver);   }

8.以下程序的功能是输出数组中所有元素的和,请填空。

#include

void main( )

{       int a[ ]={0,1,2,3,4,5,6,7,8,9};

       int s=0 , i, *p;

        p=                    ;

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

       printf("sum=%d", s);   }

9.下面程序的功能是:输出100以内能被3整除且个位数为6的所有整数,将程序补充完整。

main(  ) 

{ int i, j;

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

  {  j=             ;

       if(j= =6&&           )  

printf("%d",i);

     }

  }

printf("min is %d\\n", min);   }

10.以下程序对输入的1000以下的整数,求出其相应的个位数、十位数和百位数。

#include

void main( )

{       int x,a,b,c; 

       do{                printf("输入一个1000以下的整数:"); 

                scanf("%d",&x); 

                printf("\\n"); 

       }while(             ); 

       a=x/100; 

       b=(x-a*100)/10; 

       c=            ; 

       printf("%d的个位数是%d,十位数是%d,百位数是%d\\n",x,c,b,a); 

}

11.以下程序主函数main中由键盘输入一维数组各元素值,并输出它们的平均值,数组元素平均值由average函数求得。请填写缺少的语句。

#define  N 20

#include

float  average (float  *p,int  n) ;   

void main( )

  {    float  a[N],av; 

    int i; 

    for  (i=0; i          scanf ( "%f", &a[i]); 

    av=                   ;  

    printf  ("average=%10.2f\\n",av);   }

float  average (float  *p,int  n)

  { float  s=0.0; 

    int  i; 

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

           s=              ;  

return  (             );   }

12.下列程序的功能是输出3到100间的所有素数,将程序补充完整。

main( )

{  int i,j;

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

  {  for(j=2;j<=i-1;j++)

        if(                 )  break;

      if(                    )  printf(“%4d”,i);

   }     }

13.以下程序完成对键盘输入的正整数进行求和、平均值、最大值和最小值,输入负数时循环结束。请填写缺少的语句。

void main( )

{       int i,j,n,max,min,a[100],s=0; 

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

       {                 scanf("%d,",&a[i]); 

if(              )                     s+=a[i]; 

else break;       }

       n=i-1;  

       min=max=a[1]; 

       for(j=2; j<=n; j++)

       {                 if(              ) max=a[j]; 

                if(                ) min=a[j];        }

       printf("n=%d\average=%f\max=%d\min=%d\\n",n,(float)s/n,max,min);  

}

14.以下函数用于找出一个2×4矩阵中的最大元素值,请填写缺少的语句。

int max_num(int str[ ][4])

{       int i,j,max;

       max=str[0][0];

       for(i=0;            ;i++)

                for(j=0;            ;j++)

                          if (str[i][j]>max) max=            ;

                          return(max);  }

15、以下程序的功能是求出输入整数的个位数、十位数和百位数(1000以下的正整数)。请填空。

#include

void main()

{    int x,a,b,c; 

    printf("输入一个1000以下的正整数:"); 

                                     ; 

    printf("\\n"); 

    a=x/100; 

    b=                      ; 

    c=                    ; 

    printf("%d的个位数是%d,十位数是%d,百位数是%d\\n",x,c,b,a);

五.编程题

1.编一程序,计算s=1!+2!+3!+...+19!+20!

2.编写程序打印如下图案,程序中只能使用以下三种printf语句:

①printf("  "); ②printf("*");③printf("\\n");

     *

   ***

  *****

 *******

*****

 ***

  *

3.编写程序,给定4个学生的成绩,每个学生有3门课程的成绩,求每门课程的平均分。主函数已给出,请编写函数int  average(int  a[ ][3],  int  n),完成求第n门课程(课程编号从0开始)平均成绩的功能。

int  average(int  a[ ][3] ,  int  n)

{ int j,s=0;float  av;   

 for(j=0;j<4; j++) s+=a[j][n];

av=s/.0;  return (av); }

void  main(  )  { int  a[4][3];   int  i,j;

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

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

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

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

 {   printf(“course  no. %d : ”,  i );

       printf(“%d \\n”,  average(a, i) );  }

}

4.已有变量范围和函数调用语句:for (x=2;x<=100;x++); isprime(x);函数isprime用来判断一个整数a是否为素数,若是素数,函数返回1,否则返回0。请编写main函数 和isprime函数。

isprime(int x)

{ int i;

for (i=2; i<=x/2; i++)

if (x%i==0)  return 0;

return  1; }

main(  )  { int x;

for (x=2;x<=100;x++)

if  (isprime(x) )  printf(“%5d”,x); }

或者输出100内的所有素数,不管用什么方法都行。

5.打印所有水仙花数,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。

6.请打印既能被3整除又能被5整除的1000以内的数。

7.输出Fibonacci数列的前20项。

8.将50个杂乱无章的数按从小到大的顺序排列并输出

     x       x<1

10.有一个函数  y=2x-1     1≤x<10

     3x-11     x≥10

编写一程序,输入x输出y值

11.输入四个正整数,求出它们的最小公倍数。

12.打印九九乘法表

1*1=1

2*1=2  2*2=4

3*1=3  3*2=6  3*3=9

…………

9*1=9  9*2=18  9*3=27  9*4=36  9*5=45  9*6=54  9*7=63  9*8=72  9*9=81

13.百钱百鸡

14.求四位数中所有回文数的个数及和  (为90与495000)

15.统计[1000,8000]能被3整除的偶数的个数  (为1167)

“C语言程序设计”期末复习题答案

一.单项选择题

12345678910
CCDDDADCCC
11121314151617181920
CDCCADBBCD
21222324252627282930
CBAACBAADC
31323334353637383940
ABADBACDCC
41424344454647484950
BADCDBCACC
51525354555657585960
DCABDBACCA
6162636566676869  

70

D

DDDC CBAB
71727374757677787980
BBDCBCCDAC
818283848586878890
ADADCDBDAD
二.程序阅读题

1fact=1

fact=2 

fact=6 

fact=24

fact=120

2sum=1

sum=3

sum=6

330+15=45

50+35=85

70+55=125

90+75=165

110+95=205

41

4

9

16

25

52   4   6   8   1065  3  1
74   5   3   6  1  881   2   3   4   5   6
三.程序填空题

1mypow=1

n

9i%10

i%3= =0

2a

s+=*(p+i)

10x>=1000||x<0

x%10

3i<10

a[i] > max

 a[i]

11average(a, N)

s+*(p+i)

s/n

4salary<=1500

salary<=5000

12i%j= =0 

j= =i

5fact=1

i<=n

13if(a[i]>0)

a[j]>max

a[j]

6flag=1

i++

flag=-flag

14i<2

j<4

str[i][j]

7i<10

array[i]

average(score)

15scanf(“%d”,&x)

x/10%10  

 x%10

8a

s+=*(p+i)

五.编程题   

文档

“C语言程序设计”复习题

“C语言程序设计”期末复习题一.单项选择题1.组成C程序的基本单位C____。A)表达式与语句B)若干文件C)函数D)main函数2.下列为字符常量的是__C_____。A)HEB)"I"C)'Z'D)She3.若变量c为char类型,能正确判断c为小写字母的表达式是__d___。A)'a'2)return(fib(n-1)+fib(n-2));elseif(n==2)return(2);elsereturn(1);}main(){printf(“%d\\n”,fib(4));}A、3B、4C
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top