C程序设计复习资料1_第1页
C程序设计复习资料1_第2页
C程序设计复习资料1_第3页
C程序设计复习资料1_第4页
C程序设计复习资料1_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、 选择题1、以下字符不能出现在标识符中的是 ( B )A、大写字母 B、连接符 C、数字字符 D、下划线2、C程序中main函数的位置 ( C )A 、必须在最开始B 、必须在系统库函数后面C 、可以在自定义函数后面D、 必须在最后3、C语言的函数体由( B )括起来。A、( ) B、 C、 D、 /* */4、以下( B )是正确的变量名。A、 5f B、 if C 、f.5 D、 _f55、表达式3.6-52+1.2+52的值是 ( D ) A、4.3 B、4.8 C、3.3 D、3.86、char型变量存放的是( A )。A 、ASCII代码值 B 、字符本身C 、十进制代码值 D

2、、内码值7、下列数组声明中,正确的是(B )。A、 int a5=0; B、 int a=0 1 2;C、 int a5=0; D 、int a;8、已定义以下函数int fun(int *p)return *p;fun函数返回值是 ( D )A、不确定的值 B、一个整数 C、形参P中存放的值 D、形参P的地址值9、如下fun函数的类型是( C )。fun(float x)double y; int z ; y=x * x ; z=(int)y ; return(z);A 、void B 、double C、int D、float10、以下叙述中正确的是 ( A )A、预处理命令行必须位于C源

3、程序的起始位置B、在C语言中,预处理命令行都以"#"开头C、每个C程序必须在开头包含预处理命令行:#includeD、C语言的预处理不能实现宏定义和条件编译的功能11、以下程序运行后屏幕输出为 ( B )#include<stdio.h>int f(int x,int y) return(x+y);main() int a=2,b=3,c; c=f(a,b); printf("%d+%d=%dn",a,b,c);A、 0 B 、2+3=5 C、 2+3=0 D、3+2=512、有以下程序main() int a,b,d=25; a=d/10%

4、9; b=a&&(-1); printf("%d,%dn",a,b);程序运行后的输出结果是 ( B )A、6,1 B、2,1 C、6,0 D、2,013、以下程序运行后屏幕输出为( D )。#include<stdio.h>int a=2,b=3;int max(int a,int b) int c; c=a>b?a:b; return(c);main() int a=4; printf("%d",max(a,b);A、 2,3 B、 2 C、 3 D、 414、有以下程序void f(int *x,int *y) i

5、nt t; t=*x;*x=*y;*y=t;main()int a8=1,2,3,4,5,6,7,8,i,*p,*q; p=a;q=&a7; while(p<q) f(p,q); p+; q-; for(i=0;i<8;i+) printf("%d,",ai);程序运行后的输出结果是 ( D )A、8,2,3,4,5,6,7,1, B、5,6,7,8,1,2,3,4,C、1,2,3,4,5,6,7,8, D、8,7,6,5,4,3,2,1,15、C语言源程序名的后缀是 ( B )A、.exe B、.C C、.obj D、.cp16、若有定义:#defin

6、e PI 3,则表达式PI*2*2的值为( D )。A 、12 B 、4 C 、3 D 、不确定17、设有以下语句,则( A )是对a数组元素的不正确引用,其中0i10。 int a10=0,1,2,3,4,5,6,7,8,9, *p=a;A、 ap-a B、 *(&ai) C、 pi D、 *(*(a+i)18、以下程序段: stuct student int age; int num; std, *p;p=&std;则以下对结构体变量std中成员age的引用方式不正确的是 ( B )A、std.age B、p->age C、*p.age D、 (*p).age19、有

7、如下定义 struct person char name9; int age; ; struct person class10=“Johu”, 17,“Paul”, 19,“Mary”, 18,“Adam”, 16 ; 根据上述定义,能输出字母M的语句是 ( D) ) A、 printf(“%cn”,); B、 printf(“%cn”,1); C、 printf(“%cn”,1); D、 printf(“%cn”,0);20、设有以下定义语句:struct student int num; char na

8、me10; float score; wang,zhang;则变量wang所占的内存字节数是( B )。A、 14 B、 16 C、 18 D、 2021、下列属于合法标识符的是 ( B )A、2m B、_n25 C、n*m D、int22、定义一个变量使之保存值的范围是065535,应该选择(A)类型。 A、unsigned short int B、int C、short int D、long int23、C语言中运算对象必须是整型的运算符是 ( A )A、% B、/ C、= D、=24、若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是( C )A、1 B、2 C、2

9、.0 D、2.525、能正确表示逻辑关系:“a10或a0”的C语言表达式是( D ) A、a>=10 or a<=0 B、a>=0|a<=10 C、a>=10 &&a<=0 D、a>=10a<=026、结束while(表达式)循环的条件是 ( B ) A、当表达式的值为0时 B、当表达式的值不为0时 C、当表达式的值为1时 D、当表达式的值为非1时27、以下数组定义中错误的是 ( B )A、int x3 =0;B、int x23=l,2,3,4,5,6;C、int x3 =l,2,3,4,5,6;D、int x23=l,2,3,4

10、,5,6;28、若有以下语句,则正确的描述是( C ) char x="12345" char y='1','2','3','4','5' A、x数组和y数组的长度相同 B、x数组等价于y数组C、x数组长度小于y数组长度 D、x数组长度大于y数组长度29、有函数调用语句func(rec1,rec2+rec3,(rec4,rec5);该函数调用语句中,含有的实参个数是( A ) A、3 B、4 C、5 D、有语法错30、以下叙述中正确的是 ( C )A、预处理命令行必须位于C源程序的起始位置B、在

11、C语言中,预处理命令行都以"#"开头C、每个C程序必须在开头包含预处理命令行:#includeD、C语言的预处理不能实现宏定义和条件编译的功能31、有如下程序main() int y=3,x=3,z=1;printf(“%d %dn”,(+x,y+),z+2);运行该程序的输出结果是( D )A、 3 4 B、 4 2 C、 4 3 D、 3 3 32、有如下程序main() int x=1,a=0,b=0;switch(x)case 0: b+;case 1: a+case 2: a+;b+printf(“a=%d,b=%dn”,a,b);该程序的输出结果是( A )A、

12、a=2,b=1 B、a=1,b=1 C、a=1,b=0 D、a=2,b=233、有如下程序main0 int n=9;while(n>6) n-;printf(“%d”,n);该程序段的输出结果是( B )A、987 B、876 C、8765 D、987634、若变量均已正确定义并赋值,以下合法的C语言表达式( D )A、a:=b+1 B、a=a+7=c+b C、int 18.5%3 D、a=b=c+235、C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是( A )A、void B、int C、float D、 double36、有如下说明int a10=1,2,3,4,5,6

13、,7,8,9,10,*p=a;则数值为9的表达式是( C )A、 *P+9 B、*P+=9 C、*(P+8) D、P+837、有如下程序#define N 2#define M N+1#define NUM 2*M+1#main() int i;for(i=1;i<=NUM;i+)printf(“%dn”,i);该程序中的for循环执行的次数是( C )A 、5 B、6 C、7 D、838、有以下程序 ( C )main() int aa44=1,2,3,4,5,6,7,8,3,9,10,2,4,2,9,6;int i,s=0;for(i=0;i<4;i+) s+=aai1;pri

14、ntf(“%dn”,s);程序运行后的输出结果是A、11 B、 13 C、 19 D、 2039、有如下定义 struct person char name9; int age; ; struct person class10=“Johu”, 17,“Paul”, 19,“Mary”, 18,“Adam”, 16 ; 根据上述定义,能输出字母M的语句是 ( D ) A、 printf(“%cn”,); B、 printf(“%cn”,1); C、 printf(“%cn”,1); D、 printf(“%cn”,class2.n

15、ame0);40、有如下程序 (59713)main() char ch25=“6937”,”8254”,*p2;int i,j,s=0;for(i=0;i<2;i+) pi=chi;for(i=0;i<2;i+)for(j=0;pij>0;j+=2)s=10*s+pij;printf(“%dn”,s);该程序的输出结果是A、69825 B、63825 C、6385 D、69382541、下列属于合法标识符的是 ( B )A、2m B、_n25 C、n*m D、int42、定义一个变量使之保存值的范围是065535,应该选择(A)类型。 A、unsigned short in

16、t B、int C、short int D、long int43、C语言中运算对象必须是整型的运算符是 ( A )A、% B、/ C、= D、=44、若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是( C )A、1 B、2 C、2.0 D、2.545、能正确表示逻辑关系:“a10或a0”的C语言表达式是( D ) A、a>=10 or a<=0 B、a>=0|a<=10 C、a>=10 &&a<=0 D、a>=10a<=046、结束while(表达式)循环的条件是 ( B ) A、当表达式的值为0时 B、当

17、表达式的值不为0时 C、当表达式的值为1时 D、当表达式的值为非1时47、以下数组定义中错误的是 ( B )A、int x3 =0;B、int x23=l,2,3,4,5,6;C、int x3 =l,2,3,4,5,6;D、int x23=l,2,3,4,5,6;48、若有以下语句,则正确的描述是( C ) char x="12345" char y='1','2','3','4','5' A、x数组和y数组的长度相同 B、x数组等价于y数组C、x数组长度小于y数组长度 D、x数组长度大于y数组

18、长度49、有函数调用语句func(rec1,rec2+rec3,(rec4,rec5);该函数调用语句中,含有的实参个数是( A ) A、3 B、4 C、5 D、有语法错50、以下叙述中正确的是 ( C )A、预处理命令行必须位于C源程序的起始位置B、在C语言中,预处理命令行都以"#"开头C、每个C程序必须在开头包含预处理命令行:#includeD、C语言的预处理不能实现宏定义和条件编译的功能51、有如下程序main() int y=3,x=3,z=1;printf(“%d %dn”,(+x,y+),z+2);运行该程序的输出结果是( D )A、 3 4 B、 4 2 C、

19、 4 3 D、 3 3 52、有如下程序main() int x=1,a=0,b=0;switch(x)case 0: b+;case 1: a+case 2: a+;b+printf(“a=%d,b=%dn”,a,b);该程序的输出结果是( A )A、a=2,b=1 B、a=1,b=1 C、a=1,b=0 D、a=2,b=253、有如下程序main0 int n=9;while(n>6) n-;printf(“%d”,n);该程序段的输出结果是( B )A、987 B、876 C、8765 D、987654、若变量均已正确定义并赋值,以下合法的C语言表达式( D )A、a:=b+1 B

20、、a=a+7=c+b C、int 18.5%3 D、a=b=c+255、C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是( A )A、void B、int C、float D、 double56、有如下说明int a10=1,2,3,4,5,6,7,8,9,10,*p=a;则数值为9的表达式是( C )A、 *P+9 B、*P+=9 C、*(P+8) D、P+857、有如下程序#define N 2#define M N+1#define NUM 2*M+1#main() int i;for(i=1;i<=NUM;i+)printf(“%dn”,i);该程序中的for循环执行的

21、次数是( C )A 、5 B、6 C、7 D、858、有以下程序 ( C )main() int aa44=1,2,3,4,5,6,7,8,3,9,10,2,4,2,9,6;int i,s=0;for(i=0;i<4;i+) s+=aai1;printf(“%dn”,s);程序运行后的输出结果是A、11 B、 13 C、 19 D、 2059、有如下定义 struct person char name9; int age; ; struct person class10=“Johu”, 17,“Paul”, 19,“Mary”, 18,“Adam”, 16 ; 根据上述定义,能输出字母M

22、的语句是 ( D ) A、 printf(“%cn”,); B、 printf(“%cn”,1); C、 printf(“%cn”,1); D、 printf(“%cn”,0);60、有如下程序 ( 59713 )main() char ch25=“6937”,”8254”,*p2;int i,j,s=0;for(i=0;i<2;i+) pi=chi;for(i=0;i<2;i+)for(j=0;pij>0;j+=2)s=10*s+pij;printf(“%dn”,s);该程序的输出结果是

23、A、69825 B、63825 C、6385 D、69382561下述标识符中,(D)是合法的用户标识符。    A.A#C        B.getch        C.void        D.ab*62以下叙述中正确的是( )AC程序中注释部分可以出现在程序中任意合适的地方B花括号""和""只能作为函数体的定

24、界符C构成C程序的基本单位是函数,所有函数名都可以由用户命名D分号是C语句之间的分隔符,不是语句的一部分6.为表示关系xyz,应使用C语言表达式(A )。A.(x>=y)&&(y>=z)    B. (x>=y) AND (y>=z)C.(x>=y>=z)           D. (x>=z)&(y>=z)64x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是(B

25、)。A INPUT x、y、z; Bscanf("%d%d%d",&x,&y,&z); C scanf("%d%d%d",x,y,z); D read("%d%d%d",&x,&y,&z); 6表达式(a=5,b=10+a+,a+b)的值是(D )。A. 5 B. 6 C. 20 D. 216若有定义:int *p3;,则以下叙述中正确的是(B )A定义了一个基类型为int的指针变量p,该变量具有三个指针B定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针C定义了

26、一个名为*p的整型数组,该数组含有三个int类型元素D定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素6以下程序中函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串(42) 以下选项中,不能正确赋值的是 (A )Achar s110;s1="Ctest" Bchar s2='C', 't', 'e', 's', 't' Cchar s320="Ctest" D char *s4="Ctestn" 6设int x=1,

27、*p=&x;则下列值不为1的表达式是(D )。B A. *p B. *xC. *&x D. xD 16下列能将fp声明为文件指针的语句是(D )。BA. FILE fpB. FILE *fpC. file fp D. file *fp70以下选项中不能正确把cl定义成结构体变量的是( B)。A.typedef struct B.struct color cl int red; int red; int green; I int green; int blue; int blue; COLOR; ; COLOR cl;C.struct color D.struct int red

28、; int red; int green; int green; int blue; int blue; cl; cl;二、填空题(本题共6小题,每空1.5分,共18分)1、若有定义:int a32=1,2,3,4,5,6;则a20的值是_3_ ;a01的值是 _2_。2、if(a>b) max=a;else max=b;等价于if(b>a) max=b; else max=a。(用条件运算符表示)3、设有如下数组定义: char str8= "FuJian"则分配给数组str的存储空间是 8 个字节。4、int i,*p;p=&i;,则p表示 i ,*

29、p表示 i* 。5、结构化程序设计的基本思想认为:任何程序都可以用 顺序结构 、_选择结构_、 循环结构 这三种结构来表示。6、C语言中允许的基本数据类型包括:整型、实型、字符型,与它们相应的变量类型说明符分别是: int 、 float 、 char 。7、一个C语言程序中必须存在的函数是 main void() ,在一个字符数组中,表示一个字符串结束的转义符为 0 。8、C语言中允许的基本数据类型包括:整型、实型、字符型,与它们相应的变量类型说明符分别是: int 、 float 、 char 。9、循环语句:for(k=1;k<=5;k+)执行结束后,K的值为 12345 。10、

30、int i,*p;p=&i;,则p表示 i ,*p表示 i* 。11、若有定义:int a32=1,2,3,4,5,6;则a00的值是_1_ ;a11的值是 4_。12、设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f的值的数据类型为 float 。13、已有定义:int x=3,y=4,z=5;,则表达式!(x+y)&&y+z/2的值是 7 &&4.5 。14.C语言的预处理语句以_ #include “stdio.h”_开头。15.表达式7+8>2 && 25 %5的结果是_ 0 _.16.C

31、语言中putchar(c ) 函数的功能是 向标准输入输出设备输出一个字符,输出设备是屏幕终端 _。 17.int *p 的含义是_定义指针变量P* _。18. 指针是将其它变量的_ 任何一种基本数据类型数据的储存单元 _作为其值的变量。19.数组 int  a34;共定义了_ 7 _个数组元素。三、程序填空题(本题共4小题,共20分) 1、 求1100以内能被3整除且含数字5的数。(4分) #include <stdio.h> main( ) int i,a,b,c; for (i=1;i<100;i+) a=i%10;b=i/10; If( ) printf(&

32、quot;%dt",i); printf("n "); 2、 以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。请填空。(每空2分,共6分)main() int i,a20,sum,count;sum=count=0;for(i=0;i<20;i+) scanf("%d", _ _ );for(i=0;i<20;i+) if(ai>0) count+;sum+= _ _ ;printf("sum=%d,count=%dn",sum, ); 3、编写一个函数实现求x的n次方,请填空。(每空2

33、分,共4分)double power(double x,int n) double p; if(n>0) for(p=1.0;n>0;n-) ; else p=1.0; ;4、编写函数真正交换两个数(每空2分,共6分) #include “stdio.h”void swap(int *x,int *y) int temp; temp=*x;*x=*y;*y=temp;void main( ) int a,b; printf(“Please input two integer:”); scanf(“%d%d”, &a,&b ); printf(“Before exch

34、anged:”); printf(“a=%dt b=%dn”,a,b); ; printf(“After exchanged:”); printf(“a=%dt b=%dn”, );5、以下函数的功能是计算s=1+2+ n,请填空。(4分)int fun(int n) int s=0, i;for(i=1,i<=n;i+) s= ;return s; 6、以下程序输入了100个数存放在一个数组中,输出其中最大者与最小者, 和及它们的平均值。(每空2分,共6分) main() int a100; int max,min,average,sum=0; int i; for(i=0;i<

35、100;i+) printf("please input the %d number:",i+1); scanf("%d",&ai); max=a0; min=a0; for(i=0;i<=99;i+) if(max<ai) ; if(min>ai) ; sum=sum+ai ; average = ; printf("max=%dn",max); printf("min=%dn",min); printf("sum=%dn",sum); printf("av

36、erage=%dn",average); 7、从键盘为一个N×N的整型数组输入数据,并将每一行的最小值显示出来。 请填空。(每空2分,共6分)define N 6 main() int aNN, mN, i, j; printf("Input numbers: n"); for (i=0; i<N; i+) for (j=0; j<N; j+) scanf("%d", ); for (i=0; i<N; i+) mi= ; for (j=1; j<N; j+) if ( ) mi=aij; printf(&qu

37、ot;Min is: "); for (i=0; i<N; i+) printf("%d ", mi); 8、函数sstrcmp()的功能是对两个字符串进行比较。当s所指字符串和t所指字符串相等时,返回值为0;当s所指字符串大于t所指字符串时,返回值大于0;当s所指字符串小于t所指字符串时,返回值小于0(功能等同于库函数strcmp())。请填空。(每空2分,共4分)#include <stdio.h>int sstrcmp(char *s,char *t) while(*s&&*t&&*s= ) s+;t+;re

38、turn ;9、以下函数的功能是计算s=1+2+ n,请填空。(4分)int fun(int n) int s=0, i;for(i=1,i<=n;i+) s= ;return s; 10、以下程序输入了100个数存放在一个数组中,输出其中最大者与最小者, 和及它们的平均值。(每空2分,共6分) main() int a100; int max,min,average,sum=0; int i; for(i=0;i<100;i+) printf("please input the %d number:",i+1); scanf("%d",&a

39、mp;ai); max=a0; min=a0; for(i=0;i<=99;i+) if(max<ai) ; if(min>ai) ; sum=sum+ai ; average = ; printf("max=%dn",max); printf("min=%dn",min); printf("sum=%dn",sum); printf("average=%dn",average); 11、从键盘为一个N×N的整型数组输入数据,并将每一行的最小值显示出来。 请填空。(每空2分,共6分)de

40、fine N 6 main() int aNN, mN, i, j; printf("Input numbers: n"); for (i=0; i<N; i+) for (j=0; j<N; j+) scanf("%d", ); for (i=0; i<N; i+) mi= ; for (j=1; j<N; j+) if ( ) mi=aij; printf("Min is: "); for (i=0; i<N; i+) printf("%d ", mi); 12、函数sstrcmp

41、()的功能是对两个字符串进行比较。当s所指字符串和t所指字符串相等时,返回值为0;当s所指字符串大于t所指字符串时,返回值大于0;当s所指字符串小于t所指字符串时,返回值小于0(功能等同于库函数strcmp())。请填空。(每空2分,共4分)#include <stdio.h>int sstrcmp(char *s,char *t) while(*s&&*t&&*s= ) s+;t+;return ;四、阅读下列程序,写出程序运行结果。 1、以下程序运行后屏幕输出为( )。#include<stdio.h>void f(int i) in

42、t a=2; a=i+; printf("%d,",a);main() int a=1,c=3; f(c); a=c+; printf("%d",a); 程序运行结果: 3,3 2、#include “stdio.h” void main() int i,j,k,q; i=9;j=10; k=i+;q=+j; printf(“k=%d,q=%d n”,k,q); 程序运行结果: K=9,Q=11 3、#include “stdio.h” int f(int n) if(n=1|n=0) return 1; else return 4*f(n-2)+3*f

43、(n-1);void main()printf(“%4d”,f(4);程序运行结果: 103 4、void fun2(int *a,int b) *a=*a+10; b=b+100; return; main() int x=5,y=8; fun2(&x,y); printf("x=%d y=%dn",x,y); 程序运行结果: X=15,Y=8 5、#include <string.h>main() char str126="Welcome To",str2="Beijing"int j ; strcat(str1,str2); printf("%sn",str1); printf ("%d,%d",strlen(str1),strlen(str2) ;该程序的运行结果为: Welcome To Beijing 17,7 6、有如下程序 main() int x=23;do printf(“%d”,x-);while(!x); 程序运行结果: 23 7、有如下程序int runc(int a,int b) return(a+b);main0 int x=2,y=5,z=8,r;r=func(func(x,y),z)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论