C语言复习题.docx_第1页
C语言复习题.docx_第2页
C语言复习题.docx_第3页
C语言复习题.docx_第4页
C语言复习题.docx_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

一、填空:1. 整型数据变量声明中所使用的关键字是 int 。2. 设 float x=2.5,y=4.7; int a=7;,表达式 x+a%3*(int)(x+y)%2/4的值为 2.5 。3. printf(“My age is %d.”, age); 函数中,使用%d表示输出的是 整型 类型的数据。4. 每个源程序有且只有一个 主 函数,系统总是从该函数开始执行C语言程序。5. 设 int x=5,y,z;执行y=z=x;x=y=z;后,变量x的结果是 1 。6. C 语言中,数组在内存中占一片 的存储区,由 代表它的首地址。数组名是一个 ,不能对它进行赋值运算。7. 函数的参数为 char *类型时,形参与实参结合的传递方式为 。8. C程序编译、连接后生成 程序。9. 当a=10,b=4,c=2时,表达式f=abc的值是 。10. 字符串数组与字符数组的在长度至少 一个元素。11. 若函数的形式参数是指针类型,则实参可以是 或 。12. 如定义语句为 char a = windows,b = 7;,语句 printf(%s,strcat(a,b);的输出结果为 。13. 请在下面的程序段中填写正确的格式说明符:int main(void) float salary; printf(“Enter your desired monthly salary: .”, salary);14. C程序编译后生成 程序。15. C 语言的标识符只能由 、数字和 三种字符组成。16. 设有定义 int y; ,分别写出描述“y是偶数”的表达式 ,“y是奇数”的表达式 。17. C语言没有字义专门的字符串变量类型,而是把它存储在 数组中。18. 字符串常量22a,0n的长度是 。19. 字符串存储到数组中时,在数组的最后将增加一个标记字符串结束的字符 。20. 设有定义语句 static int a34 =1,2,3; 则 a10值为 ,a11 值为 ,a21的值为 。21. 假设int a=7; 执行语句a+=a-=a*a; 后,a的值是 。22. 若自定义函数要求返回一个值,则应在该函数体中有一条 语句,若自定义函数要求不返回一个值,则应在该函数说明时加一个 类型说明符23. 若x和n都是int型变量,且x的初值为12,n的初值为5,则计算表达式x%=(n%=2)后x的值为 。24. 设 int x=10, y, z; 执行y=z=x; x=y= =z;后,变量x的结果是 。25. 求解赋值表达式 a=(b=10)%(c=6),则“表达式值、a、b、c ”的值依次为 , , , 。26. 求解逗号表达式 (x=a=3,6*a )后,“表达式值、x、a” 的值依次为 , , 。27. 变量的指针是指该变量的 。28. C语言中,逻辑值“假”用 表示,逻辑“真”用1表示。29. 若有定义:int a=1,3,5,7,9,11,13,*p=a;则*(p+2)的值是 ,为什么 。30. 判断变量 a、b 的值均不为 0 的逻辑表达式为 。31. C语言的变量名可以使用的字符包括大写字母、小写字母、 和下划线,而且必须以 和 开头。32. 若有定义:char a=a,b, c, d, e, f, g,*p=a;则*(p+2)的值是 。33. C 语言中,数组的各元素必须具有相同的 ,元素的下标下限为 ,下标必须是正整数、0、或者 。34. 在C语言中,在内存中存放二维数组元素的顺序是 。35. 假设在一维数组a20中,元素a4的指针为p,那么p+4所指向的数据元素是 。36. 下面程序块执行完成后,m的值是 。 m=1; n=263; dom*=n%10;n/=10; while(n);37. 标准C语言程序总是从 开始执行的。38. 执行语句for(i=1;i+4;);后,变量i的值是 ,如果语句for(i=1;+i=0);49. 已知:int a23=1,3,8,则a11的值为 。 50. 字符串常量“22a,0n”的长度是 。51. 如果一个函数没有返回值,那么该函数的类型为 。52. C语言表达式 5278 的值是 。53. 若有定义:char ch;(1)定义指针p,并指向变量ch的语句是 。(2)若已定义char *p;,使指针p指向变量ch的赋值语句是 ; 。(3)在(1)的基础上,通过指针p实现变量ch读入字符的scanf调用语句是 。(4)在(1)的基础上,通过指针p给变量ch赋字符a的语句是 。(5)在(1)的基础上,通过指针p用格式输出函数printf输出ch中字符的语句是 。54. 输入一个字符,判断该字符是数字、字母、空格还是其他字符。main( ) char ch; ch=getchar(); if( ) printf(It is an English charactern); else if( )printf(It is a digit charactern);else if( )printf(It is a space charactern); printf(It is other charactern); 55. search函数的功能是从数组a10中对关键字m进行查找,请填空完成程序,实现功能。#include int search( int a10, int m) int i;for(i=0; i=m; i+)if( ) return i;return -1; void main( ) int a10,m, i, n;for(i=0; i0) i= ; else j=j+1; printf(“i=%4d,j=%4dn”,i,j); 57. 编程计算13599的值main() int i, sum = 0;i=1;while ( )sum = sum + i; ; printf(sum=%dn, sum);58. 有一个一维数组存放10个学生的成绩,用一个函数求平均分、最高分和最低分#include ;void main() float average(float array, int n);float ave, score10;int i;printf(please enter 10 scores:);for(i=0; i10;i+) scanf( );ave=average(score,10);printf(max=%6.2fn, Max);printf(min=%6.2fn, Min);printf(average=%6.2fn, ave);float average( float array, int n) int i;float aver,sum=array0; ;for(i=1; iMax) Max=arrayi;else if(arrayiMin) Min=arrayi;sum=sum+arrayi;aver=sum/n;return (aver);59. 下面程序的功能是在a数组中查找与x值相同的元素所在位置,请填空#include void main() int a10,i,x; printf(“input 10 integers:”);for(i=0;i10;i+) scanf(“%d”,&ai); printf(“input the number you want to find x:”);scanf(“%d”, ); for(i=0;i10;i+)if( )break; if( ) printf(“the pos of x is:%dn”,i); else printf(“can not find x!n”); 60. 求一个3*4矩阵中,元素最大值及所在的行号、列号。请填空完成程序,实现功能#include int main()int i,j,row=0,colum=0,max;int a34; for (i=0;i=2;i+)for (j=0;j=3;j+)scanf( ); ; for (i=0;i=2;i+)for (j=0;j=3;j+)if ( ) max=aij; row=i; colum=j; printf(max=%dn,max);printf(row=%dn,row);printf(colum=%dn,colum);return 0;61. 用“起泡法”对输入的10个字符排序后按从小到大的次序输出。#define N 10char strN;sort(char strN);void main()int i,flag;for(i=0;i10;i+)scanf(%c,&stri);sort(_ _);for(i=0;iN;i+)printf(%c,stri);printf(n);void sort(char strN) int i,j;char t;for(j=1;jN;j+)for(i=0;i (2) ) t=stri;_;_; 62. 下面程序的功能是比较字符数组a和字符数组b中的两个字符串是否相等(比较对应字符,全部相同输出0,如果不同,返回第一个不相同的字符差值,并输出)。#include int main(void)char a100=Hello World!;char b100=Hello Chengdu!; ;/* 完成对应字符的比较,并判定一个字符串是否结束了*/while( ) i+;printf(%dn, ai-bi );return 0;63. 程序填空:编程计算135+101的值。#include int main(void)int i, sum = 0;for (i = 1; ; )sum = sum + i;printf(sum=%dn, sum); return 0;64. 编写程序,输入一个数字字符(09)存入变量c,把c转换成它所对应的整数存入n,如:字符0所对应的整数就是0。请填空。#include void main() char c;int n;printf(“please input a char:n”);c = ;n = ;printf(“%c %d”,c,n);65. 下面的程序是输出数组中最大元素的下标(p表示最大元素的下标)。#include void main() ;int s=1,-3,0,-9,8,5,-20,3;for(i = 0,p = 0;i sp) ; ;66. 以下程序的功能是:从键盘上输入若干个学生的成绩, 统计并输出最高成绩和最低成绩,当输入负数时结束输入.请填空.#include int main(int argc, char* argv)float x,amax,amin;scanf(%f,&x);amax=x; amin=x;while( ) if(xamax) amax=x;if( ) amin=x;scanf(%f,&x); printf(namax=%fnamin=%fn,amax,amin); return 0;二、选择1. 若有说明语句“int a5,*p=a;”,则对数组元素的正确引用是 。A.ap B.pa C.*(p+2) D.p+22. 在C语言中,以 作为字符串结束标志A.n B. C.0 D.03. 下列数据中属于“字符串常量”的是(A )。A.“a” B.ABC C.abc0 D.a4. 对二维数组的正确定义是 A.int a =1,2,3,4,5,6; B.int a2 =1,2,3,4,5,6;C.int a 3=1,2,3,4,5,6; D.int a2,3=1,2,3,4,5,6;5. 若变量已正确定义并赋值,下面符合C语言语法的表达式是( )。A、a:=b+1 B、a=b=c+2 C、int 18.5%3 D、a=a+7=c+b6. C程序的基本结构单位是:A、文件 B、语句 C、函数 D、表达式7. 下面程序段中循环体的执行次数是: int a=10,b=0; dob+=2;a-=2+b; while(a=0);A、1 B、2 C、3 D、48. 以下可用作C语言用户合法的标识符的是:A、B.C.Tom B、3a6b C、_6a7b D、ABC9. 已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1&y+z/2的值是:A、6 B、0 C、2 D、110. 若有以下程序段int c1=1,c2=2,c3; c3=1.0/c2*c1;,则执行后,c3中的值是( )。A、0 B、0.5 C、1 D、211. 设整型变量 a=2,则执行下列语句后,浮点型变量b的值不是0.5的是( )。A、b=1.0/a B、b=(float)(1/a) C、b=1/(float)a D、b=1/(a*1.0)12. 已知char x=hello, y=h,e,a,b,e;, 则关于两个数组长度的正确描述是( )。A、相同 B、x大于y C、x小于y D、以上答案都不对13. 以下选项中,不能作为合法常量的是( )。A、1.234e04 B、1.234e0.4 C、1.234e+4 D、1.234e014. C语言中运算对象必须是整型的运算符是( )。A、%= B、/ C、= D、=15. 以下能够正确定义函数首部的形式是 。A、double fun(int x, int y) B、double fun(int x; int y)C、double fun(int x, int y); D、double fun(int x,y);16. 语句a=25.0+60.0*n/scale+2;,如果n=6.0,scale=2.0,则该语句最后的运行结果a值是( )。A、257 B、194.5 C、207.0 D、96.2517. 下列关键字,哪个是双精度数据类型的关键字( )。A、intB、floatC、doubleD、char18. 若有说明:int a3=1,2,3,4,5,6,7; 则数组a的第一维的大小为: A. 2 B. 3 C. 4 D.无确定值 D) 919. 下列哪个是命名正确的变量名( )。 A、7num B、student C、#No D、float20. C语言中规定函数的返回值的类型是由:A、return语句中的表达式类型所决定 B、调用该函数时的主调用函数类型所决定C、调用该函数时系统临时决定 D、在定义该函数时所指定函数类型决定21. 为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:else子句总是与其配对的是:A、其之后最近的if B、其之前最近的if C、缩排位置相同的if D、同一行上的if22. 若有语句int *p,a=4;p=&a,下面均代表地址的一组选项是:A、a,p,*&aB、&*a,&a,*pC、*&p,*p,&a D、&a,&*p,p23. 下列关于C语言的说法错误的是( )。A、C程序的工作过程包括编辑、编译、链接、运行 B、C语言不区分大小写C、C程序中使用数组存储字符串,数组的单元数至少应该比要存储的字符数多1 D、C程序中必须有一个main()函数24. 在C语言程序中,表达式5%2的结果是( )。 A、2.5 B、2 C、1 D、325. 下列说法错误的是 。A、在C语言中,break语句用于提前终止循环B、在C语言中,continue语句只能用于switch语句和循环语句中C、在C语言中,continue语句用于提前结束本次循环D、在C语言中,break语句只能用于switch语句和循环语句中26. 已知:int a=2,b=3;,则执行表达式c=b*=a-1后,变量c的值为:A、5 B、 3 C、2 D、427. 在C语言中,以( ) 作为字符串结束标志。A、n B、s C、a D、028. 在C语言中对一维整型数组的正确定义为 。 A)int a(10); B)int n=10,an; C)int n;an; D)#define N 10 int aN;29. 下面( )表达式的运算结果是4。A、 11/3 B、11.0/3 C、 (float)11/3 D、 (int)(11.0/3+0.5)30. 下列数据中属于“字符串常量”的是( )A、“a” B、23 C、abc0 D、a31. 语句while(!E);中的表达式!E等价于: A、E=0 B、E!=1 C、E!=0 D、E=132. 下面程序的运行情况是: char a3,b=abcde; a=b; printf(%s, a);A、运行后将输出abcde B、运行后将输出abC、运行后将输出abc D、编译时出错33. 假设a=1; b=2; c=2;下面程序段的运行结果是:while(abbook line# His.age 48. 在C语言程序中,表达式5%2的结果是 。 A、2.5 B、2 C、1 D、349. 若“int n; float f=13.8;”,则执行“n=(int)f%3”后,n的值是 A.1 B.4 C.4.333333 D.4.650. 一个C程序的执行是从:A、本程序文件的main函数开始,到本程序文件的最后一个函数结束B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C、本程序的main函数开始,到main函数结束D、本程序文件的第一个函数开始,到本程序的main函数结束51. 若给定条件表达式(M)?(a+):(a-),则期中表达式(M):A、和(M=0)等价 B、和(M=1)等价 C、和(M!=0)等价 D、和(M!=1)等价52. 以下对一维数组a的正确说明是: D A、char a(10); B、int a; C、int k5,ak; D、char a3=a,b,c;53. 设char *s= ta017bc ; 则指针变量s指向的字符串所占的字节数是:A、5B、6 C、7 D、954. 调用语句“func(exp1,exp2),(exp3,exp4,exp5));”中含有 个实参。A、2 B、3 C、4 D、155. 若有定义“int a10;”,则对a数组元素的正确引用是:A、a10 B、a10-10 C、a(5) D、a3.556. 下面程序段的运行结果是:char c5=a,b,0,c,0; printf(“%s”,c);A、abB、ab C、abc D、abc57. 语言规定,在一个源程序中,main函数的位置:A、必须在最开始 B、必须在系统调用的库函数的后面C、可以任意 D、必须在最后58. 能够完成如右图所示函数计算的程序段是:A、y=-1; if (x!=0) if (x0) y=1; else y=0;B、y=-1; if (x0) y=1; else y=0;C、y=0; if (x=0) if (x0) y=1; else y=-1;D、if (x=0) if (x0) y=1; else y=0; else y=-1;59. 若w=1,x=2,y=3,z=4,则条件表达式wx?w:yz?y:z的结果是:A、4 B、3 C、2 D、160. 若有说明:int n=2,*p=&n,*q=p,则以下非法的赋值语句是: A、p=q B、*p=*q C、n=*q D、p=n61. 有语句:int a10,;则 是对指针变量p的正确定义和初始化。A、int p=*a; B、int *p=a; C、int p=&a; D、int *p=&a;三、读程序写结果1. 写出下面程序的输出结果#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;2. 写出下面程序的输出结果(name变量输入的字符串是John)#include #define PRAISE “What a super marvelous name!”int main(void) char name40;printf(“whats your name? n”);scanf(“%s”, name);printf(“Hello, %s, %s n”, name, PARISE);return 0;3. 写出下面程序的输出结果(name变量输入的字符串是John)#include main( ) char ch; ch=getchar( ); switch(ch) case A : printf(“%c”,A); case B : printf(“%c”,B); break; default: printf(“%sn”,”other”); 4. 写出下面程序的输出结果(name变量输入的字符串是John)#include int min( int x, int y ) int m; if ( x y ) m = x;else m = y; return(m); main() int a=3,b=5,abmin ; abmin = min(a,b); printf(“min is %d”, abmin); 5. 写出下面程序的输出结果(name变量输入的字符串是John)#include main() int x, y =0;for(x=1;x=10) break; y=y+x; printf(“%d %d”,y,x);6. 写出下面程序的输出结果#includevoid main( )static char a=program;char *pa=&a7;while(-pa=a)putchar(*pa);putchar(n);7. 写出下面程序的输出结果#include int f( int n ) if (n=1) return 1;else return f(n-1)+1; void main() int i, j=0;for(i=1; i3; i+) j+=f(i);printf(%dn, j); 8. 写出下面程序的输出结果#includevoid main() int a33=2,4,6,8,10,12,14,16,18,i,s=0;for (i=0;i=2;i+)s=s+aii;printf(s=%dn,s); 9. 写出下面程序的输出结果#include main()float a,b,c,t;a=3;b=7;c=1;if(ab) t=a;a=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);10. 写出下面程序的输出结果#include int main() int f(int); int a=2,i; for(i=0;i3;i+) printf(%dn,f(a); return 0;int f(int a) int b=0; static c=3; b=b+1; c=c+1; return(a+b+c);11. 假定输入的10个数为:10、11、12、13、14、15、16、17、18、19,以下程序的运行结果是:#include int main()int a,b,c,x;a=b=c=0;for (int i=0;i10;i+) scanf(%d,&x);switch(x%3)case 0:a+=x;break;case 1:b+=x;break;case 2:c+=x;break;printf(a=%d,b=%d,c=%dn,a,b,c);return 0;12. 写出下面程序的运行结果#include int main(void ) int sum=10,n=1;while(n3) sum=sum-n; n+; printf(“%d,%d”,n,sum); return 0;13. 写出程序结果#include int fun(int x) int y=0; static int z=3; z+;+y; return(x+y+z);void main( ) int i,x=2; for(i=0;i2;i+)printf(%5d,fun(x+);14. 写出运行结果#include main( ) char s=”abcdefg”; char *p; p=s; printf(“ch=%cn”,*(p+5);15. 写出运行结果#include void main( ) int i, a=1;for(i=1;i6;i+) do i+;a+; while(i4);i+;printf(a=%d,i=%dn,a,i); 16. 写出运行结果#include main( ) int a =1, 2, 3, 4, 5, 6; int x, y, *p; p = &a0; x = *(p+2); y = *(p+4); printf(“*p=%d, x=%d, y=%dn”, *p, x, y);17. 写出运行结果#includevoid main( ) int a, b, k=4, m=6;int *p1=&k, *p2=&m;a=p1=&m;b=(-*p1)/(*p2)+7;printf(a=%dn, a);printf(b=%dn,b);18. 写出运行结果#include char s=”ABCD”;main() char *p; for(p=s;ps+4;p+) printf(“%c %sn”,*p,p); 19. 写出程

温馨提示

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

评论

0/150

提交评论