《C语言知识练习提高题及其答案解析.doc》由会员分享,可在线阅读,更多相关《C语言知识练习提高题及其答案解析.doc(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、.*单项选择题:1( A )是构成C语言程序的基本单位。A、函数 B、过程 C、子程序 D、子例程2C语言程序从 C 开始执行。 A) 程序中第一条可执行语句 B) 程序中第一个函数C) 程序中的main函数 D) 包含文件中的第一个函数3、以下说法中正确的是( C )。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分4.下列关于C语言的说法错误的是( B ) 。A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区
2、分大小写。C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行5.下列正确的标识符是(C)。A.-a1 B.ai C.a2_i D.int t6下列C语言用户标识符中合法的是( B )。 A)3ax B)x C)case D)-e2 E)union7下列四组选项中,正确的C语言标识符是( C )。A) %x B) a+b C) a123 D) 1238、下列四组字符串中都可以用作C语言程序中的标识符的是( A )。 A、print _3d db8 aBc B、Iam one_half start$it 3pai C、str_1 Cpp pow while D、Pxq
3、 My-book line# His.age 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型10.在C语言程序中,表达式5%2的结果是 C 。 A)2.5 B)2 C)1 D)311如果int a=3,b=4;则条件表达式ab? a:b的值是_A_。A) 3 B) 4 C) 0 D) 112若int x=2,y=3,z=4 则表达式xage D) (*p).age33.设有如下定义:struck sk int a;float b;data;int *p;若要使P指向data中的a域,正确的赋值语
4、句是 C A) p=&a;B) p=data.a;C) p=&data.a;D)*p=data.a;34.设有以下说明语句: typedef struct stu int a; float b; stutype; 则下面叙述中错误的是( D )。 A、struct是结构类型的关键字 B、struct stu是用户定义的结构类型 C、a和b都是结构成员名D、stutype是用户定义的结构体变量名35 语句int *p;说明了 C 。A)p是指向一维数组的指针 B)p是指向函数的指针,该函数返回一int型数据C)p是指向int型数据的指针 D)p是函数名,该函数返回一指向int型数据的指针36下列
5、不正确的定义是(A )。A. int *p=&i,i; B.int *p,i;Cint i,*p=&i; D.int i,*p;37. 若有说明:int n=2,*p=&n,*q=p,则以下非法的赋值语句是: (D )A)p=q B)*p=*q C)n=*q D)p=n38有语句:int a10,;则 B 是对指针变量p的正确定义和初始化。A)int p=*a; B)int *p=a; C)int p=&a; D)int *p=&a;39.若有说明语句“int a5,*p=a;”,则对数组元素的正确引用是( C )。A.ap B.pa C.*(p+2) D.p+240. 有如下程序int a1
6、0=1,2,3,4,5,6,7,8,9,10,*P=a;则数值为9的表达式是 B A) *P+9 B) *(P+8) C) *P+=9 D) P+841. 在C语言中,以 D 作为字符串结束标志A)n B) C) 0 D)0 42.下列数据中属于“字符串常量”的是(A )。A.“a” B.ABC C.abc0 D.a43.已知char x=hello, y=h,e,a,b,e;, 则关于两个数组长度的正确描述是 B .A)相同 B)x大于y C)x小于y D)以上答案都不对44. 下面各函数中能实现打开文件功能的是 A A) fopen B) fgetc C) fputcD) fclose45
7、. 下列语句中,把变量fp说明为一个文件型指针的是( A ) 。A) FILE *fp; B) FILE fp;C) file *fp; D) file fp;46以读写方式打开一个已有的文本文件file1,并且FILE *fp,下面fopen函数正确的调用方式是( B )。A.fp=fopen(“file1”,“r”)B.fp=fopen(“file1”,“r+”)C.fp=fopen(“file1”,“rb”)D.fp=fopen(“file1”,“w”)一、 读程序基本输入输出及流程控制1.#include main() int a=1,b=3,c=5;if (c=a+b) printf
8、(yesn);else printf(non);运行结果为:no2. #include main() int a=12, b= -34, c=56, min=0;min=a; if(minb) min=b; if(minc) min=c;printf(min=%d, min);运行结果为: min=-343.#include main() int x=2,y= -1,z=5; if(xy)if(y0) z=0;else z=z+1; printf(“%dn”,z); 运行结果为:54. #include main() float a,b,c,t;a=3;b=7;c=1;if(ab) t=a;a
9、=b;b=t;if(ac) t=a;a=c;c=t;if(bc) t=b;b=c;c=t;printf(%5.2f,%5.2f,%5.2f,a,b,c); 运行结果为:1.00, 2.00, 7.005#include main ( ) float c=3.0 , d=4.0;if ( cd ) c=5.0;else if ( c=d ) c=6.0;else c=7.0; printf ( “%.1fn”,c ) ;运行结果为:7.06.#include main()int m;scanf(%d, &m);if (m = 0) if (m%2 = 0)printf(%d is a posit
10、ive evenn, m); elseprintf(%d is a positive oddn, m);else if (m % 2 = 0) printf(%d is a negative evenn, m);else printf(%d is a negative oddn, m);若键入9,则运行结果为: -9 is a negative odd7. #include main() int num=0;while(num=2) num+;printf(%dn,num);运行结果为:1238#include main( ) int sum=10,n=1;while(n3) sum=sum-
11、n; n+; printf(“%d,%d”,n,sum); 运行结果为:3,79.#include main() int num,c; scanf(%d,&num); do c=num%10; printf(%d,c); while(num/=10)0);printf(n); 从键盘输入23,则运行结果为:3210#include main() int s=0,a=5,n;scanf(%d,&n);do s+=1; a=a-2; while(a!=n);printf(%d,%dn,s,a); 若输入的值1,运行结果为: 2,1 11#include stdio.h main() char c;
12、 c=getchar(); while(c!=?) putchar(c); c=getchar(); 如果从键盘输入abcde?fgh(回车)运行结果为:abcde12#include main() char c; while(c=getchar()!=$) if(A=c&c=Z) putchar(c); else if(a=c&c=z) putchar(c-32); 当输入为ab*AB%cd#CD$时,运行结果为:ABABCDCD13. #include main() int x, y =0;for(x=1;x=10) break; y=y+x; printf(“%d %d”,y,x);运行
13、结果为:10 514.#include main( ) char ch; ch=getchar( ); switch(ch) case A : printf(“%c”,A); case B : printf(“%c”,B); break; default: printf(“%sn”,”other”); 当从键盘输入字母A时,运行结果为:AB15. #include main( ) int a=1,b=0; scanf(“%d”,&a);switch(a) case 1: b=1;break;case 2: b=2;break;default : b=10;printf(%d , b);若键盘输
14、入5,运行结果为:1016. #include main()_ char grade=C; switch(grade) case A: printf(“90-100n”); case B: printf(“80-90n”);case C: printf(“70-80n”);case D: printf(“60-70n”); break;case E: printf(“60n”); default : printf(“error!n”); 运行结果为:70-8060-7017.#include main() int y=9; for(;y0;y- -)if(y%3=0) printf(%d”,-
15、 -y); continue;运行结果为:85218. #include main() int i,sum=0; i=1;do sum=sum+i; i+; while(i=10);printf(“%d”,sum);运行结果为: 5519.#include #define N 4main() int i; int x1=1,x2=2;printf(n);for(i=1;i=N;i+) printf(%4d%4d,x1,x2);if(i%2=0) printf(n);x1=x1+x2;x2=x2+x1;运行结果为:1 2 3 58 13 21 3420#include main( ) int x, y; for(x=30, y=0; x=10, y10; x-, y+) x/=2, y+=2; printf(“x=%d,y=%dn”,x,y);运行结果为:x=0,y=1221. #include #define N 4main( ) int i,j; for(i=1;i=N;i+) for(j=1;ji;j+) printf( ); printf(*); printf(n);运行结果为:* * *
限制150内