版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上C语言程序设计复习资料填空题1、 在C语言中,字符类型的数据在内存中以相应的 ASCII码 存放,所以字符也可以用整数形式输出。2、 在C语言中,符号常量是在一个程序中指定的用名字代表的常量,定义符号常量一般用 预处理 命令,定义一个符号常量PI,其值为3.14159,格式是 #define PI 3.14159 。3、 用条件运算符写出求两个数a,b大者的表达式 max a>b? a:b : 。4、 在一个函数中有定义int (*p)10,则p为指向具有十个整形数据的数组 。5、 C语言函数参数传递的两种方式是 值传递 和 地址传递 ;6、 在C语言中,一般在
2、程序中用_结构体_来定义构造类型7、 C语言程序是函数构成的,其中有且只有 1 个主函数,可以有 多个 个其它函数。8、 设整型变量X,Y,Z的值均为15,执行X%=Y+Z后,X= 15 ,继续执行X=Y>Z?X+2:X2后,X= 13 。9、 执行语句“for(j=1;j<=5;j+) ;”后,变量j的值为 6 。10、 函数形式参数的作用域是 函数原形作用域。11、 若有以下定义:char a; int b; float c; double d; 则表达式a*b+dc的值的类型是 double 。12、 在一个函数中有定义int a=5,*p=&a;执行*p=a+15;
3、后,a的值为 20 。13、 在一个函数中有定义float a=70,*p=&a;执行*p=*p +20;后,a的值为 90. 。14、 定义一个长度为20的整形一维静态数组a ,且前4个元素的初值为6,12,18,24,定义的格式为: int20=6,12,18,24; 。15、 结构化程序设计的三种基本结构是顺序结构、选择结构和 循环结构 。16、 表达式 (int)(20+2.5*3+6+5.8) 的值是 39 。17、 写出表达式1114&&1725的值 1 。18、 在C语言中,字符串是用双引号引起来的一串字符。在机器中,字符串"ABcdEFgn&q
4、uot; 需占用9字节的内存空间。19、 int j,k,i=15; j=i+ ; K=i+j; 则K的值是: 31 。20、 .结构化程序设计的三种基本结构是:选择结构、循环结构和_顺序结构_。21、 在C语言中,一个二维数组可以看成若干个_一维_数组。22、 文件操作步骤通常是:打开、操作和_关闭_。23、 一个C语言程序总是从 main函数 开始执行24、 设宏定义#define D (x) x/x, 则引用D(2+3)后的值是_6_。25、 以下十个运算符+ ! << != , ?: && = | % 中优先级别最高和最低的分别是_!_和_=_。26、 设i
5、nt a, b=2, c=3; 执行表达式 a=(b>c)?(b+1):(c+2),3后a的值是_5_。27、 语句 int (*p)()的含义是 p是一个指向函数的指针 .28、 全局变量放在内存的 静态存贮 区30 在C语言中,单目运算符的结合方向(运算方向)是_自右至左_;唯一的一个三目运算符是_条件运算符? :_。31 能正确表示“当ch为小写字母为真,否则为假”的表达式是 islower(ch) 。32 循环语句for(;) printf("OK n");和do printf("OKn"); while(0);执行完毕循环,循环次数分别是
6、_n次_和_1次_。33明int i,j,k;则表达式i=10,j=20,k=30,k*=i+j的值为_900_二、 选择题1、在C语言中字符型(char)数据在内存中是以( D )形式存储的 A 原码 B 补码 C 反码 D ASCII码 2、在C程序中可以作为变量名的合法标识符是( D ) A static B 23-b C #stu D If3、若有以下定义和语句:int a,b,c;scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为了使1,3,2分别赋给a,b,c,从键盘上输入数据的正确形式是( B )A 1 3 2 B 1,3,2 C a=1
7、b=3 c=2 D a=1,b=3,c=2 4、若要求在if后一对圆括号中表示a不等于0的关系,能正确表示这一关系的表达式是(A ) A a!=0 B a>=0 C a=0 D a<05、以下说法不正确的是( C )A for,while,do-while循环体中的语句均可由空语句构成;B 使用while和do-while循环时,循环变量初始化的操作应在循环语句之前完成;C do-while和for循环均是先执行循环体语句,后判断表达式;D while循环是先判断表达式,后执行循环体语句。6、循环语句for(a=0,b=0;a<=8&&b!=66;a+)x=a
8、+b;的循环次数是( B ) A 8次 B 9次 C 无限循环 D 1次也不执行7、C语言中函数的返回值的类型是由( D )决定的 A 调用该函数的主调函数类型; B return 语句中的表达式类型; C 调用函数时指定; D 定义函数时所指定的返回值类型。8、在定义 int a54;对数组元素的正确引用是( A ) A a00 B a24 C a54 D a1,19、若给出以下定义: char m10,*p=m ;则以下表达式不正确的是( B ) A p = m+5 ; B m=m+p ; C m3= a; D p=p+1 ; 10、若有以下定义和语句:struct person int
9、no ; char *name ; stu , *p=&stu ;则以下引用方式正确的是( C )A p.no B stu->no C p->no D *p.no11、有一个二维数组s33 , 其第2行第3列元素的正确表示 B A *(S+3)+3 B s23 C s2,3 D s2312、 C语言规定数组名做实参时,它和对应形参之间的数据传递方式是:CA 单向值传递 B 无传递 C 地址传递 D 用户指定传递方式13、若变量a 是int 类型,并执行了语句:a=A+2 ;则正确的叙述是: B A a的值是字符2 B a的值是67 C 不能用字符和数字相加 D a的值是A1
10、4、以下程序的输出结果是: C main() int a=5,b=4,c=6,d ;Printf (“%dn”, d = a>b?(a>c?a:c):b);A 5 B 4 C 6 D 不确定15、在说明语句中有:float (*fp)( );则fp代表的是: C A 一个用于指向一维数组的行指针; B 一个返回值为实型的函数名; C 一个用于指向函数的指针变量; D 一个指向实型数据的指针;16、有 int *P ;刚下面语句正确的是: A A p=(int *)malloc(sizeof(int); B p=malloc(int);C p=int *malloc(sizeof(i
11、nt); D p= malloc(sizeof(int); 17、设有宏定义 #dedine pi 3.14和 #dedine S(r) pi*r*r若在函数中有语句 float b=3.6 , area ; area=S(b) ;则area的值是 D A 3.6 B 3.14 C 11.304 D 40.694421 下列不正确的转义字符是A)'、' B)'、“ C)'074' D)'、0'"22 若有以下定义:char a;int b;float c;double d;则表达式a*bd-c值的类型为D A)float B)i
12、nt C)char D)double23 表示关系x=y=z的c语言表达式为AA)(X=Y)&&(Y=Z) B)(X=Y)AND(Y=Z)C)(X=Y=Z) D)(X=Y)&(Y=Z)24 设a=1,b=2,c=3,d=4,则表达式:ab?a:cd?a:d的结果为DA)4 B)3 C)2 D)125设x为int型变量,则执行以下语句后,x的值为Ax=10;x=x-=x-x;A)10 B)20 C)40 D)3026 下列可作为C语言赋值语句的是CA)x=3,y=5 B)a=b=6 C)i-; D)y=int(x);27 设x,y,z,t均为int型变量,则执行以下语句后
13、,t的值为x=y=z=1;t=x|y&&z;CA)不定值 B)2 C)1 D)028 设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值:Bscanf("i=%d,f=%f",&i,&f);为了把100和765.12分别赋给i和f,则正确的输入为A).12 B)i=100,f=765.12C).12 D)x=100y=765.1229设x和y均为int型变量,则执行下的循环后,y值为for(y=1,x=1;y=50;y)if(x=10)break;if (x%2=1)x=5;continue;x-=3;A)2 B)4 C
14、)6 D)830给出以下定义:char x="abcdefg";char y='a','b','c','d','e','f','g';则正确的叙述为C A)数组X和数组Y等价 B)数组x和数组Y的长度相同C)数组X的长度大于数组Y的长度 D)数组X的长度小于数组Y的长度31 以下叙述中不正确的是C A)在不同的函数中可以使用相同名字的变量B)函数中的形式参数是局部变量C)在一个函数内定义的变量只在本函数范围内有效D)在一个函数内的复合语句中定义的变量在本函数范围内
15、有效32假定a和b为int型变量,则执行以下语句后b的值为a=1;b=10;dob-=a;a;while (b-0);BA)9 B)-2 C)-1 D)833设j为int型变量,则下面for循环语句的执行结果是for(j=10;j>3;j-)if(j%3)j-;-j;-j;printf("%d ",j);BA)6 3 B)7 4 C)6 2 D)7 334设有以下宏定义:#define N 3#define Y(n)(N1)*n)则执行语句:z=2 *(NY(51);后,z的值为A A)出错 B)42 C)48 D)5435设P1和P2是指向同一个int型一维数组的指
16、针变量,k为int型变量,则不能正确执行的语句是B A)k=*P1*P2;B)p2=k;C)P1=P2;D)K=*P1 *(*P2);36 设有如下定义:int arr=6,7,8,9,10;int *ptr;则下列程序段的输出结果为6,2 ptr=arr;*(ptr+2)=2;printf ("%d,%d、n",*ptr,*(ptr=2);A)8,10 B)6,8 C)7,9 D)6,1037 以下程序的输出结果是 错题 main()int i,k,a10,p3:K=5;for (i=0;i10;i)ai=i;for (i=0;i3;i)pi=ai*(i1);for (i
17、=0;i3;i)k=pi*2;printf("%d、n",k);A)20 B)21 C)22 D)2338 执行以下程序段后,m的值为A int a23=1,2,3,4,5,6;int m,*p;p=&a00;m=(*p)*(*(p+2)*(*(p+4);A)15 B)14 C)13 D)12(39)有以下程序段char arr="ABCDE";char *ptr;for(ptr=arr;ptrarr+5;ptr+)printf("%sn",ptr);输出结果是此题是错的 DA)ABCD B)A C)E D)ABCDE(40)
18、有以下程序main()int x,i;for(i=1;i=50;i)x=i;if(x%2=0)if(x%3=0)if(x%7=0)printf("%d,i);”输出结果是CA)28 B)27 C)42 D)41(41)有下列程序#includestdio.hmain()unionint k;char i2;*s,a;s=&a;s-i0=0x39;s-i1=0x38;printf("%x、n",s-k);输出结果是AA)3839 B)3938 C) D)(42)有以下程序#include stdio.hmain()int a,b,c=246;a=c/100%
19、9;b=(-1)&&(-1);printf("%d,%d、n",a,b);输出结果是 A A)2,1 B)3,2 C)4,3 D)2,-1 (43)有以下程序#include stdio.hstruct stuint num;char name10;int age;;void fun(struct stu *p)printf("%s、n",(*p)。name);main()struct stu students3=9801,"Zhang",20,9802,"Wang",19,9803,"Z
20、hao",18;fun(students2);输出结果是B A)Zhang B)Zhao C)Wang D)18(44)设有以下说明和定义:typedef unionlong i;int k5;char c;DATE;struct dateint cat;DATE cow;double dog;too;DATE max;则下列语句的执行结果是printf ("%d",sizeof (struct date )sizeof(max);A)26 B)30 C)18 D)8(45)有以下程序main()char a="programming",b=&
21、quot;language";char *p1,*p2;int i;p1=a;p2=b;for(i=0;i7;i)if(*(p1i)=*(p2i)printf("c",*(p1i);输出结果是DA)gm B)rg C)or D)ga(46)有以下程序viod fun (int a,int b,int c)a=456;b=567;c=678;main()int x=10,y=20,z=30;fun (x,y,z);printf("%d,%d、n",c,d);输出结果是 错误A)30,20,10 B)10,20,30 C)456,567,678 D
22、)678,567,456(47)有以下程序int fun(int x,int y,int *cp,int *dp)*cp=xy;*dp=x-y;main()int a,b,c,d;a=30;b=50;fun(a,b,&c,&d);printf("%d,%d、n",c,d);输出结果是DA)50,30 B)30,J50 C)80,-20 D)80,20(48)有以下程序main()int i,j;for(j=10;j11;j+)for(i=9;ij;i+)if (!(j%i)break;if(i=j-1)printf("%d",j);输出结
23、果是BA)11 B)10 C)9 D)10 11(50)有以下程序include "atdio.h"int abc(int u,intv);main ()int a=24,b=16,c;c=abc(a,b);printf('%d、n",c);”int abc(int u,int v)int w;while(v)w=u%v;u=v;v=w return u;输出结果是CA)6 B)7 C)8 D)9三、阅读程序写出运行结果1、 main() int x , y=10 ; x = 3 + 5 * 5 6 ; printf ( " x = %d y=%
24、d n " , x , y) ; x = 10 + 2 * 3 7 ; printf ( " x = %d n " , x ) ; x = ( 7 + 6 ) % 5 + 2 ; y = x + y ;printf ( " x = %d y=%dn " , x , y) ; 输出结果:x=16 y=10x=9x=5 y=152、 include “ stdio.h ”main( )int sum=0 , k=1 ;do sum = sum + k ;k = k+2 ; while ( k<=10 );printf ( “sum %d” ,
25、 sum);输出结果:sum=253、 include “ stdio.h ”main ( )int i;int count (int i );for ( i = 1 ; i<=3 ; i+)count( i ) ;int count ( int n) static int x = 1 ;printf ( “%d : x=%d , “ , n , x ) ;x = x+2 ;printf ( “x+2 = %d n, “ , x ) ;输出结果:1:x=0X+2=33:x=0X+2=55:x=0X+2=74、swap ( int *p1 , int *p2 ) int temp ; te
26、mp = *p1 ; *p1=*p2 ; *p2 = temp ; main ( ) int a, b ; int *pt1 , *pt2 ; scanf ( "%d %d ", &a , &b ) ; pt1=&a ; pt2= &b ;if ( a<b) swap (pt1, pt2 ) ;printf ( " %d %d " ,*pt1 ,*pt2 ) ; 输入 55 66输出结果:66 555、# include <stdio.h> main ( ) int a, b , c , d , x ;
27、a = c = 0 ; b = 21 ; d = 60 ; if ( a ) d = d 30 ; else if (!b ) else if (!c ) x = 55; else x = 65 ; printf ( “d=%d , x=%dn” , d , x ) ;输出结果:错题6、# include <stdio.h> main ( ) int a , b ; for ( a=1 ; a<= 6 ; a+) for ( b=1 ; b<= 14-2*a ; b+) printf (“ “ ) ; /*输出一个空格*/for ( b=1 ; b<= a ; b
28、+) printf (“%4d “ , a ) ;printf (“ n“ ) ; 输出结果: 12 2 3 3 3 。 6 6 6 6 6 67、# include <stdio.h> # define sub ( x ) (x) (x) main ( ) int a =2 4 , b = 46 , c = 78 , m ; m = sub(a+b)*c ; printf (“ m = %d” , m ) ; 输出结果:m=-53908、# include <stdio.h> main ( ) int a33= 21 , 22, 23, 24, 25, 26, 27,
29、 28, 29 , j ; Long m = 1 ;for ( j=0 ; j<3 ; j+)m=m*a j j ; printf ( “ m= %d “ , m ) ; 输出结果:m=152259、# include <stdio.h> main ( ) int a33 = 7,8,9 , *p , k ;p=&a00 ;for ( k=0 ; k<2 ; k+ ) if ( k=0 ) akk+1 = *p+1 ; else +p ; printf ( “ %d ” , *p ) ;输出结果:7 810 include “ stdio.h ”main ( )
30、int x , y , z ;x = ( z=10 , z+15 ) ;y= ( x=3 , x+z) ;printf ( “ %d , %d , %d n” , x , y , z ) ;输出结果:3 13 1011、include “ stdio.h ”main ( )char str10 , temp10 int k ; gets ( temp ) ; for ( k=0 ; k < 4 ; k+ ) gets (str ) ; if (strcmp( temp , str ) >0 ) strcpy(temp , str ) ; printf( “ %s “ , temp
31、) ;输入:usa , canada , china , japan , korea输出结果为:usa canada china , japankoreacanada12、include “ stdio.h ”main( )int s1, s2, s3 ,c , I ;int x ;s1= s2= s3 = 0 ;for ( I= 0 ; I <30 ; I + )scanf ( “%d ”, &x ) ;if (x>=60&&x<=100) c = x/105 ;switch ( c )case 1: case 2: s1+ ; break ;cas
32、e 3: s2+ ; break ;case 4: case 5: s3+ ;printf ( “%d %d%d” , s1,s2,s3) ;若输入的30个数中:5个0至59,10个60至69,4个70至79,6个8089 5个90至100则输出为:四、 程序填空1、三个数中取大数 float max ( float x , float y , float z ) float m = x ; if ( z > y ) if ( z > x ) m =Z ; else if ( y > x ) m = y ; return ( M ) ; main ( ) float a ,
33、b , c , ma ; scanf ( “ %f %f %f “ , &a , &b , &c ); ma = max ( a , b , c) ; printf (“ the max is %f “ , ma ) ; 2、已知计算的公式为=4*(1-1/3+1/5-1/7+ ),下面的程序是要根据此公式来求的值,精度要求为0.00001,请填写空缺部分#include <math.h>#include <stdio.h>main() int sign = 1 ; float pi=0 , item=1 ,n=1 ; while ( n<
34、30 ) pi=pi+item ;sign = -sign ; item = sign/(n+2) ; n = n+2 ;pi = 4*pi ;printf(“pi=%f”, pi) ;3、有一封信共有3行,每行20个字符。统计其中有多少英文大写字母,多少英文小写字母,多少数字字符。#define N 3#define M 20 #include "stdio.h"void str_count ( char str )int i,upper=0 , lower=0 , digit=0 ;for ( i=0 ; i<N*M ; i+ )if ( stri<=
35、9;A' && stri<='Z' ) upper+ ;else if ( stri<='a' && stri<='z' ) lower+ ;else if ( stri<='0' && stri<='9' ) digit+ ;printf ("%d , %d , %d n", upper , lower , digit ) ;main ( )char letter N M+1 ;int i ;for ( i
36、= 0 ; i < N ; i+ ) gets (letteri ) ;str_count ( letter ) ;4、采用选择法对一维数组中的n个数按升序进行排序。void sort ( int a , int n )int j , k , p , t ;for ( j = 0 ; j<n-1 ; j+ ) p = j ;for ( k = j+1 ; k < n ; k+ ) if ( ak < ap ) p=k ;if ( p != j ) t = ap ; ap = a j ; a j = t ; 5、求100 200 之间的全部素数 # include <
37、;math.h> main ( ) int m , k ,i , n = 0 ; for (m=101 ; m<=200 ;m= m+1 ) k = sqrt (m) ; for ( i=2 ;i<= k ; i+) if ( m%i=0) continue ; if (i>=k+1) printf ( “ %d” , m ); 五、 程序设计1、编定一个程序,打印九九乘法表。#include "stdio.h"main()int m,n;for (m=1;m<=9;m+)for (n=1;n<=m;n+)printf("%d*
38、%d=%-3d",n,m,m*n);printf("n");2、在歌手比赛中有10名评委打分,分数采用百分制,歌手的最后得分是:从10名评委的评分中,去掉一个最高分,去掉一个最低分,统计其总分,再除以8。试编程求一个歌手的最后得分#include "stdio.h"main()int i,max=0,min=0,sum=0;int a10;for(i=0;i<10;i+)scanf("%d",&ai);max=min=a0;if(ai>max)max=ai;else if(min<ai)min=ai;sum+=ai;printf("%d",sum-min-max);3、编定一个程序,打印出所有的“水仙花”数,所谓“水仙花”数是指一个3位数,其各位数字的立方和等于该数本身。#include "stdio.h"mai
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《员工激励手册》课件
- 《文言文学习要点》课件
- 医院科研合作合同样本
- 建筑销售项目经理施工合同
- 班组建设与团队冲突解决
- 消防设施用电施工合同
- 生态农业产业园招投标规定
- 畜牧场兽医聘用合同样本
- 商场消防演练指南
- 绿化项目合作协议
- 2024年21起典型火灾案例及消防安全知识专题培训(消防月)
- 人教版四年级上册数学【选择题】专项练习100题附答案
- 建筑施工安全生产治本攻坚三年行动方案(2024-2026年)
- 《短视频拍摄与制作》课件-3短视频拍摄的三大技巧
- 小学科学苏教版六年级上册全册教案(2023秋新课标版)
- 国开《Windows网络操作系统管理》形考任务4-配置故障转移群集服务实训
- (完整)小学语文考试专用作文方格纸
- 国开电大本科《人文英语4》机考总题库
- 计价格[1999]1283号_建设项目前期工作咨询收费暂行规定
- 电影投资基本知识PPT课件
- 溢流坝水力计算说明书
评论
0/150
提交评论