为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

C语言程序设计专升本复习习题

2014-02-08 45页 doc 386KB 348阅读

用户头像

is_174925

暂无简介

举报
C语言程序设计专升本复习习题第1章 C语言概述 第1章 C语言概述 一、​ 选择题: 1、一个C语言程序是由 组成。 A.主程序 B.子程序 C.函数 D.过程 2、下列关于C语言用户标识符的叙述中正确的是 。 A.​ 用户标识符中可以出现下划线和中划线(减号) B.​ 用户标识符中不可以出现中划线,但可以出现下划线 C.​ 用户标识符中可以出现下划线,但不可以放在用户标识符的开头 D.​ 用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头 3、下列选项中,可以作为C语言标识符的是 。 A、3stu B、#stu C、stu3 D、stu...
C语言程序设计专升本复习习题
第1章 C语言概述 第1章 C语言概述 一、​ 选择题: 1、一个C语言程序是由 组成。 A.主程序 B.子程序 C.函数 D.过程 2、下列关于C语言用户标识符的叙述中正确的是 。 A.​ 用户标识符中可以出现下划线和中划线(减号) B.​ 用户标识符中不可以出现中划线,但可以出现下划线 C.​ 用户标识符中可以出现下划线,但不可以放在用户标识符的开头 D.​ 用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头 3、下列选项中,可以作为C语言标识符的是 。 A、3stu B、#stu C、stu3 D、stu.3 4、下列选项中,不可以作为C语言标识符的是 。 A、 num B、turbo_c C、printf D、student3 5、请选出可用作C语言用户标识符的一组标识符 。 A、void, define, WORD B、a3_b3,_123,IF_A C、FOR,——abc, Case D、2a,Do,Sizeof 6、以下叙述正确的是 。 A.在C程序中,main函数必须位于子程序的最前面 B.C程序的每一行中只能写一条语句 C.在对一个C程序进行编译的过程中,可发现注释中的拼写错误 D.C语言本身没有输入输出语句 7、下面标识符中,不合法的用户标识符为 。 A. Pad B. a_10 C. _124 D. a#b 8、C语言程序的执行,总是起始于 。 A) 程序中的第一条可执行语句 B) 程序中的第一个函数 C) main函数 D) 包含文件中的第一个函数 9、下列说法中正确的是 。 A) C程序书写时,不区分大小写字母 B) C程序书写时,一行只能写一个语句 C) C程序书写时,一个语句可分成几行书写 D) C程序书写时每行必须有行号 10、下面对C语言特点,不正确描述的是 。 A) C语言兼有高级语言和低级语言的双重特点,执行效率高 B) C语言既可以用来编写应用程序,又可以用来编写系统软件 C) C语言的可移植性较差 D) C语言是一种结构式模块化程序设计语言 11、C语言源程序的最小单位是 。 A) 程序行 B) 语句 C) 函数 D) 字符 12、以下四项中属于C语言关键字的是 。 A) CHAR B) define C) unsigned D) return 13、下列字符串不符合标识符规定的是 。 A) SUM B) sum C) 3cd D) end 二、填空题: 1、一个C语言的语句至少应包含一个 。 2、C源程序的基本单位是 。 3、函数是具有相对独立功能的 。 4、C语言中的标识符可以由3种字符组成,它们是: ,并且第一个字符必须是字母或 。 第3章 数据类型、运算符与表达式 一、​ 选择题: 1、C语言中,最简单的数据类型是 。 A.整形、实型、逻辑型 B.整型、实型、字符型 C.整型、字符型、逻辑型 D.整型、实型、逻辑型、字符型 2、 是C语言提供的合法的数据类型关键字。 A. Float B. signed C. integer D. Char 3、不正确的字符串常量是 。 A. ‘abc’ B. “12’12” C.”0” D.” “ 4、若定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是 。 A.7 B.2.50000 C.3.500000 D.0.00000 5、设有以下定义: #define d 2 int a=0;double b=1.25;char c=’A’; 则下面语句中错误的是 。 A.a++; B.b++; C.c++; D.d++; 6、​ 下列选项中,可以作为C语言常量的是( ) A)13.8e B)1/2 C)‘M’ D)”abc” 7、下列选项中,不可以作为C语言常量的是( ) A).88 B)35.6e3 C)4e-2 D)3/5 7、​ 已知字母’b’的ASCII码值为98,如ch为字符型变量,则表达式ch=’b’+’5’-‘2’的值为( ) A)e B)d C)102 D)100 8、​ 下列程序的运行结果是( ) main( ) { char c1=’6’,c2=’0’; printf(“%c,%c,%d\n”,c1,c2,c1-c2); } A)​ 因程序格式不合法,提示出错信息。 B)​ 6,0,6 C)​ 6,0,7 D)​ 6,0,5 9、以下程序的输出结果是( ) main( ) { int x=010,y=10,z=0x10; printf(“%d,%d,%d\n”,x,y,z); } A)​ 8,10,16 B)​ 8,10,10 C)​ 10,10,10 D)​ 10,10,16 10、已知各变量的类型定义如下: int i=8,k,a,b; unsigned long w=5; double x=1.42,y=5.2; 则以下两组表达式中不符合C语言语法的表达式分别是: ⑴ A)k=i++ B)(int)x+0.4 C)y+=x++ D)a=2*a=3 ⑵ A)x%(-3) B)w+=-2 C)k=(a=2,b=3,a+b) D)a+=a-=(b=4)*(a=3) 11、在C语言中,合法的字符常量是 A) ‘\084' B) ‘\x43' C) ‘ab' D) “\0” 12、设有如下的变量定义: int i=8, k, a, b; unsigned long w=5; double x=1, 42, y=5.2; 则以下符合C语言语法的表达式是 A) a+=a-=(b=4)*(a=3) B) x%(-3); C) a=a*3=2 D) y=float(i) 13、以下程序运行后,输出结果是 A) cde B) 字符c的ASCII码值 C) 字符c的地址 D) 出错 main() { char *s="abcde"; s+=2; printf("%ld\n",s); } 14、当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是 A) c=b=a; B) (a=c) ‖(b=c) ; C) (a=c) &&(b=c); C) a=c=b; 15、设有如下定义:int x=l,y=-1;,则语句:printf("%d\n",(x--&++y));的输出结果是 A) 1 B) 0 C) -1 D) 2 16、若定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是 。 A.7 B.2.50000 C.3.500000 D.0.00000 17、已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=’A’+’6’-’3’;后,c2中的值为 。 A.D B.68 C.C D.不确定的值 18、下面叙述不正确的是【 】。 A) C语句末尾必须有分号 B) C语言中无论是整数还是实数都能准确的表示 C) 运算符“%”只能用于整数运算 D) 乘除运算符优先级高于加减运算符 19、复合语句应用【 】括起来。 A) 小括号 B) 方括号 C) 大括号 D) 尖括号 20、C语言语句一行写不下时,可以【 】。 A) 用逗号换行 B) 用分号换行 C) 用回车换行 D) 在任意一空格处换行 21、下面程序的输出是【 】。(“□”表示一个空格) int a=3366; printf("|%-08d|",a); A) |-0003366| B) |00003366| C) |3366□□□□| D) 输出格式非法 22、若有说明语句:int a; float b;,以下输入语句正确的是【 】。 A) scanf("%f%f",&a,&b); B) scanf("%f%d",&a,&b); C) scanf("%d,%f",&a,&b); D) scanf("%6.2f%6.2f",&a,&b); 23、以下程序的输出结果是【 】。 main( ) { int x=11,y=11; printf("%d%d\\n",x--,--y); } A) 11,11 B) 10,10 C) 10,11 D) 11,10 24、执行下面程序段,给x、y赋值时,不能作为数据分隔符的是【 】。 int x,y; scanf("%d%d",&x,&y); A) 空格 B) Tab键 C) 回车 D) 逗号 25、下面合法的语句是【 】。 A) int a=8,b; b=++a++; printf("%d,%d",a,b++); B) int a; printf("\\"%d\\"",scanf("%d",&a)); C) char a; scanf("%c",&a); char b=scanf("b=%c",&b); D) char c=getchar( ); putchar((int)c); 26、执行下面程序时,欲将25和2.5分别赋给a和b,正确的输入方法是【 】。 int a; float b; scanf("a=%d,b=%f",&a,&b); A) 25□2.5 B) 25,2.5 C) a=25,b=5.5 D) a=25□b=2.5 27、下面不属于C语言的数据类型是【 】。 A)整型 B)实型 C) 逻辑型 D) 双精度实型 28、下面四个选项中,均是合法实数的选项是【 】。 A)2e-4.2 B)33e-4 C)0.2e-.5 D)-e5 29、下列正确的字符型常量是【 】。 A) "a" B) ′\\\\′ C) \\r D) 277 30、若有说明语句char ch1=′\\x41′;则ch1【 】。 A) 包含4个字符 B) 包含3个字符 C) 包含2个字符 D) 包含1个字符 31、下列程序段输出的字符串长度为【 】。 printf("\\\\aaa\\′ccc\\bddd\\""); A) 11 B) 12 C) 13 D) 17 32、下列运算符中,要求运算对象必须是整数的是【 】。 A) / B) * C) % D) ! 33、下面合法的赋值语句是【 】。 A) x+y=2002; B) ch="green"; C) x=(a+b)++; D) x=y=0316; 34、已知a为int型,b为double型,c为float型,d为char型,则表达式a+b*c-d/a结果的类型为【 】。 A) int 型 B) float型 C) double型 D) char型 35、下面的程序运行后输出为【 】。 #include #include main( ) { int a,b; float c; b=5;c=6;c=b+7;b=c+1; a=sqrt((double)b+c); / *sqrt是开平方库函数,定义代码在math.h中*/ printf("%d,%f,%d",a+6,c,b); } A) 11.000000,12.000000,13.000000 B) 11.000000,12.000000,13 C) 11.0000000,12,13 D) 11,12.000000,13 二、填空题: 1、设a=3,b=4,c=5,求下列表达式的值。 (1)a+b>c&&b==c (2)a||b+c&&b-c (3)!(a>b)&&!c||1 (4)!(x=a)&&(y=b)&&0 2、下面程序段的输出结果是 。 int k=10; float a=3.5,b=6.7,c; c=a+k%3*(int)(a+b)%2/4; 3、若想通过以下输入语句使a中存放字符串1234,b中存放字符5,则输入数据的形式应该是 。 : . char a[10],b; scanf("a=%s b=%c",a,&b); : . 4、执行下列程序的输出结果是【 】。 main( ) { float a=1,b; b=++a*++a; printf("%f\\n",b); } 5、执行下列程序的输出结果是【 】。 main( ) { int x=5,y; y=++x*++x; printf("y=%d\\n",y); } 6、下面程序段的执行结果是x=【 】,y=【 】。 inta=3,b=5,x,y; x=a+1,b+6; y=(a+1,b+6); printf("x=%d,y=%d",x,y); 7、已知:int a=5;则执行a+=a-=a*a;语句后,a的值为【 】。 8、下面程序的运行结果是x=【 】,y=【 】。 main( ) { float x=4.9;int y; y=(int)x; printf("x=%f,y=%d",x,y); } 第4章 顺序程序设计 一、​ 选择题: 1、以下合法的赋值语句是 A) x=y=100 B) d--; C) x+y; D) c=int(a+b); 2、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是 A) INPUT x、y、z; B) scanf(“%d%d%d”,&x,&y,&z); C) scanf(“%d%d%d”,x,y,z); D) read(“%d%d%d”,&x,&y,&z); 地址是由地址运算符“&”后跟变量名组成的,故选B。 3、已知各变量的类型说明如下: Int m=8,n, a, b; unsigned long w=10; double x=3.14, y=0.12; 则以下符合C语言语法的表达式是( )。 A.a+=a-=(b=2)*(a=8) B.n=n*3=18 C.x%3 D.y=float (m) 4、若有定义:int x,y; char s1,s2,s3; 并有以下输出数据:(注:B└┘B代表空格) 1B└┘B2<回车> UB└┘BVB└┘BW<回车> 则能给x赋给整数1,给y赋给整数2,给s1赋给字符U,给s2赋给字符V,给s3赋给字符W的正确程序段是( )。 A.scanf(”x=%dy=%d”,&x,&y); s1=getchar();s2=getchar();s3=getchar(); B.scanf(”%d%d”,&x,&y); s1=getchar();s2=getchar();s3=getchar(); C.scanf(”%d%d%c%c%c”,&x,&y,&s1,&s2,&s3); D.scanf(”%d%d%c%c%c%c%c%c”,&x,&y,&s1,&s1,&s2,&s2,&s3,&s3); 二、填空题 1、main() { int a=88,b=89; printf("%d %d\n",a,b); printf("%d,%d\n",a,b); printf("a=%d,b=%d",a,b); }的输出值 2、设int a=1,b=2,c,d,e; 执行 c=(-a++)+(++b); d=(b--)+(++a)-a; e=(a/(++b))-(a/(--a)); 请问a,b,c,d,e的结果是:________。 三、程序设计题 1、设圆的半径R=1.5,圆柱高H=3,求圆周长、面积、球表面积、球体积、圆柱体积,用scanf输入数据,输入数据,输出计算结果,输出时要求文字说明,取小数点后勤部位数字,请编程序。 2、输入一个华氏温度,要求输出摄氏温度,公式为C=5/9(F-32)输出要有文字说明,取两位小数。 3、编程序,用getchar函数读入两个字符给c1,c2,然后分别用putchar函数和printf函数输出这两个字符。并思考以下问题:(1)变量c1,c2应定义为字符型或整型?或二者皆可?(2)要求输出c1和c2值的ASCII码,应如何处理?用putchar函数还是printf函数?(3)整型变量与字符型变量是否在任何情况下都可以互相代替?如”char c1,c2;”与”int c1,c2;”是否无条件地等价? 第5章 选择结构程序设计 一、​ 选择题: 1、能正确表示“当X的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是 。 A.​ (X>=1) &&(X<=10) &&(X>=200)&&(X<=210) B.​ (X>=1) &&(X<=10)||(X>=200)&&(X<=210) C.​ (X>=1) ||(X<=10)||(X>=200)||(X<=210) D.​ (X>=1) ||(X<=10&&|(X>=200)||(X<=210) 2、判断char型变量ch是否为大写字母的正确表达式是 。 A. ‘A’<=ch<=’Z’ B. (ch>=’A’)&(ch<=’Z’) C. (ch>=’A’)&&(ch<=’Z’) D. (ch>=’A’)and(ch<=’Z’) 3、设x、y、z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是 。 A.’x’&&’y’ B.x<=y C.x||y+z&&y-z D. !((x=y)&&(y>=z) B. (x>=y) and(y>=z) C. x>=y>=z D.(x>=y)||(y>=z) 5、以下运算符中优先级最低的运算符 。 A. && B.& C.!= D.|| 6、下列表达式中, 不满足“当x的值为偶数时值为真,为奇数时值为假“的要求。 A. x%2==0 B. !x%2!=0 C.(x/2*2-x)==0 D. !(x%2) 7、在C语言中,要求运算数必须是整型的运算符是 。 A. / B. ++ C. != D. % 8、执行下列程序段后,变量m的值是 。 int w=1,x=2,y=3,z=4,m; m=(wb) if(cc) if(b3) x=3; else if(a<2) x=2;else x=1; C.​ if(a<3) x=1; else (a<2) x=2; if(a,1) x=3; D.​ if(a0||b>0) &&(a<0||b<0) B) a>0&&b>0 C) a+b>0 D)a*b>0 13、设 int x=1, y=1;表达式(!x||y--)的值是 ( ) A) 0 B) 1 C) 2 D) -1 14、设有如下程序 main() { int a=2,b=-1,c=2; if(b<0); c=0; else c++ ; printf(“%d\n”,c); } 该程序的输出结果是 ( ) A)0 B)1 C)2 D)有语法错 15、设有如下程序 main() { int a=100; if(a>0) printf(“%d\n”,a>100); else printf(“%d\n”,a<=100);; } 该程序的输出结果是 ( ) A)0 B)1 C)100 D)-1 16、设有如下程序 main() { int x=1,a=0,b=0; switch (x) { case 0: b++; case 1: a++; case 2: a++;b++; } printf(“a=%d,b=%d\n”,a,b); } 该程序的输出结果是 ( ) A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=2 17、对if语句中表达式的类型,下面正确的描述是【 】。 A) 必须是关系表达式 B) 必须是关系表达式或逻辑表达式 C) 必须是关系表达式或算术表达式 D) 可以是任意表达式 18、多重if_else语句嵌套使用时,寻找与else配套的if方法是【 】。 A) 缩排位置相同的if B) 其上最近的if C) 下面最近的if D) 同行上的if 19、以下错误的if语句是【 】。 A) if(x>y) z=x; B) if(x==y) z=0; C) if(x!=y) printf("%d",x) else printf("%d",y); D) if(xb) a=b, b=c;c=a; printf("a=%d,b=%d,c=%d",a,b,c); } A) a=20,b=30,c=20 B) a=20,b=40,c=20 C) a=30,b=40,c=20 D) a=30,b=40,c=30 21、对于条件表达式(k)?(i++):(i--)来说,其中的表达式k等价于【 】。 A) k==0 B) k==1 C) k!=0 D) k!=1 22、下面程序运行结果为【 】。 main( ) { char c=′a′; if(′a′b)a=b; b=a; else a++; b++; printf("%d,%d",a,b); } A) 有语法错误不能通过编译 B) 若输入4,5则输出5,6 C) 若输入5,4则输出4,5 D) 若输入5,4则输出5,5 24、分析以下程序,结论是【 】。 main( ) { int x=5,a=0,b=0; if(x=a+b) printf("****\\n"); else printf("####\\n"); } A) 有语法错,不能通过编译 B) 能通过编译,但不能连接 C) 输出**** D) 输出 #### 25、对下面的程序,正确的说法是【 】。 main( ) { int a,b=1,c=2; a=b+c,a+b,c+3; c=(c)?a++:b--; printf("c=%d/n",(a+b,c)); } A)无错误 B)第三行有错误 C) 第四行有错误 D) 第五行有错误 26、表示关系x<=y<=z的c语言表达式为 A) (X<=Y)&&(Y<=Z) B) (X<=Y)AND(Y<=Z) C) (X<=Y<=Z) D) (X<=Y)&(Y<=Z) 27、若有定义: float w; int a, b; 则合法的switch语句是 A) switch(w) B) switch(a); { case 1.0: printf("*\n"); { case 1 printf("*\n"); case 2.0: printf("**\n"); case 2 printf("**\n"); } } C) switch(b) D) switch(a+b); { case 1: printf("*\n"); { case 1: printf("*\n"); default: printf("\n"); case 2: printf("**\n"); case 1+2: printf("**\n"); default: printf("\n"); } } 28、能正确表示逻辑关系:“a≥=10或a≤0”的C语言表达式是 A) a>=10 or a<=0 B) a>=0|a<=10 C) a>=10 &&a<=0 D) a>=10‖a<=0 29、有如下程序 main0 { float x=2.0,y; if(x<0.0) y=0.0; else if(x<10.0) y=1.0/x; else y=1.0; printf(“%f\n”,y); } 该程序的输出结果是 A) 0.000000 B) 0.250000 C) 0.500000 D) 1.000000 二、填空题: 1、下面程序的输出结果是-11,请填空。 main( ) { int x=100,a=200,b=50; int v1=25,v2=20; if(a8) printf("%d\\n",++x); else printf("%d\\n",x--); } 3、根据下式填空,将程序补充完整。 已知: 程序: main( ) { float x,y; scanf("%f",&x); if(【 】) y=-1.0; else if((【 】)&&(x!=1)) y=2.0/(x-1.0); else if(【 】) y=3.0/x; else y=4.0; printf("%f/n",y); } 4、写出下面各逻辑表达式的值。设a=3,b=4,c=5。 a+b>c&&b==c a||b+c&&b-c !(a>b)&&!c||1 !(x=a)&&(y=b)&&0 !(a+b)+c-1&&b+c/2 三、编程题: 1、编写程序,将输入的小写字母变为大写,大写字母不变。 2、编写程序,从键盘接收一个简单的表示四则运算的表达式,计算结果并输出。例如,输入“20+32”,输出“=52”。(用if,switch分别实现)。 3、为了鼓励节约用水,作如下规定:每人月用水量在10mP3P或10 mP3P以下,收费为1.8元/ mP3P,用水量在10到20 mP3P之间的,超出部分收费为2.5元/ mP3P,用水量超过20 mP3P的,超出20 mP3P的部分收费为3.5元/ mP3P。设某人某月份用水x mP3P,编程求其应付水费y。 4、某百货商场进行打折促销活动,消费金额(p)越高,折扣(d)越大,标准如下: 消费金额 折扣 p <100 0% 100≤p <200 5% 200≤p <500 10% 500≤p <1000 15% p ≥1000 20% 编程,从键盘输入消费金额,输出折扣率和实付金额(f)。要求: (1)用if语句实现; (2)用switch语句实现。 5、有3个整数a,b,c,由键盘输入,输出其中最大的数。 6、有一函数: y= 写出一程序,输入x值,输出y值. 7、输入4个整数,要求按由大到小的顺序输出。 第6章 循环结构程序设计 一、​ 选择题: 1、设有程序段:int k=10;while(k==0) k=k-1;则下面描述中正确的是 。 A. while 循环执行10次 B.循环是无限循环 C. 循环语句一次也不执行 D. 循环体语句执行一次 2、假定a和b为int型变量,则执行以下语句后b的值为 a=1; b=10; do{ b-=a; a++; }while (b--<0) ; A) 9 B) -2 C) -1 D) 8 3、设j为int型变量,则下面for循环语句的执行结果是 for( j=10;j>3;j--) { if(j%3) j--; --j; --j; printf("%d ",j); } A) 6 3 B) 7 4 C) 6 2 D) 7 3 4、在执行以下程序时,如果从键盘上输入,ABCdef<回车>,则输出为 A) ABCdef B) abcDEF C) abc D) DEF #include main() { char ch; while((ch=getchar())!='\n') { if(ch>='A' && ch<='Z') ch=ch+32; else if(ch>='a' && ch<='z') ch=ch-32; printf("%c",ch); } printf("\n"); } 5、语句:for(i=l;i++<4;)后,变量i的值是 A) 3 B) 4 C) 5 D) 不定 6、以下程序的输出结果是 A)2 0 B)3 1 C)3 2 1 D)2 1 0 main( ) { int n=4; while(n--)printf("%d ",--n); } 二、填空题: 1、下面的程序段执行后a的值是多少? { int a,b; a=1;b=1; do { a=b-a;b=b+1; }while(b!=5); printf(“%d”,a); } 2、阅读下列程序,指出运行结果: main( ) { int x=3; do { printf("%3d",x-=2); }while(!(--x)); } 3、阅读下列程序,指出运行结果: main( ) { int j=0,k=0,a=0; while(j<2) { j++; a++; k=0; } while(k<=3) { k++; if(k%2!=0) continue; a++; } a++; printf("%d\n",a); } 4、阅读下列程序,指出运行结果: main( ) { int i; for(i=0;++i;i<5) { if(i==3) { printf("%d\n",++i); break; } printf("%d",++i); } } 5、阅读下列程序,指出运行结果: main( ) { int a,b; for(a=1,b=1;a<=100;a++) { if(b>=20) break; if(b%3==1) { b+=3; continue; } b-=5; } printf("a=%d\n",a); } 6、阅读下列程序,指出运行结果: main( ) { int i,a=0; for(i=1;i<=5;i++) { do { i++; a++; }while(i<3); } i++; printf("a=%d,i=%d",a,i); } 7、已知有如下计算公式: π≈4*(1/1-1/3+1/5-1/7+……) 下列程序就是根据这一公式计算圆周率的。其中,精度控制在0.00001;变量s表示当前符号项,item表示当前项,n表示当前项的序号。阅读程序,并填空: #include "math.h" main( ) { float pai=0.0,item=1.0,s=1.0; int n=1; while( ) { pai+=item; s=-s; item=s/(2*n+1); } pai=4*pai; printf("pai=%f\n",pai); } 三、编程题: 1、一根长度为133米的材料,需要截成长度为19米和23米的短料,求两种短料各截多少根时,剩余的材料最少? 2、一个数如果等于其每一个数字立方之和,则此数称为阿姆斯特朗数。如407就是一个阿姆斯特朗数,因为:407=4P3P+0P3P+7P3P。要求输出100到999之间所有的阿姆斯特朗数。 3、1996年我国人口为12.3亿人,问当人口增长率分别为2%,1.5% ,1% ,0.5%时,到哪一年我国人口超过13亿。 4、求sBnB=a+aa+aaa+…+aaa…a的值。例如当a=2,n=4时,sBnB=2+22+222+2222。a和n由键盘输入。 5、一位百万富翁遇到一陌生人,陌生人找他谈一个换钱计划,该计划如下:我每天给你十万元,而你第一天只需给我一分钱,第二天我仍给你十万元,你给我二分钱,第三天我仍给你十万元,你给我四分钱…你每天给我的钱是前一天的两倍,直到满一个月(30天),百万富翁很高兴,欣然接受了这个契约。请编写一个程序计算这一个月中陌生人给了百万富翁多少钱,百万富翁给陌生人多少钱。 6、小红今年12岁,她父亲比她大20岁,编一程序,计算出她的父亲在几年后比她年龄大一倍。那时他们两人的年龄各为多少? 7、统计从键盘输入一行字符的个数。 8、用 公式求π,要求每一项的绝对值都必须大于0.000001。 9、编写程序,求1!+2!+3!+……+n!。n从键盘输入。 10、一球从100米高空自由落下,每次落地后反跳回原高度的一半,再落下,求它在第十次落地时,共经过多少米,第十次反弹多高? 第7章​ 数组 一、​ 选择题: 1、以下下关于C语言中数组的描述正确的是 。 A.​ 数组的大小是固定的,但可以有不同的类型的数组元素。 B.​ 数组的大小是可变的,但所有数组元素的类型必须相同。 C.​ 数组的大小是固定的,所有数组元素的类型必须相同。 D.​ 数组的大小是可变的,可以有不同的类型的数组元素。 2、以下一维数组a的正确定义是 。 A.​ int a(10); B.​ int n=10,a[n]; C.​ int n; scanf(“%d”,&n); int a[n]; D.​ #define SIZE 10 int a[SIZE]; 3、在定义int a[10];之后,对a的引用正确的是 。 A.a[10] B. a[6.3] C. a(6) D. a[10-10] 4、以下对二维数组a进行不正确初始化的是 。 A.​ int a[2][3]={0}; B.​ int a[][3]={{3,2,1},{1,2,3}}; C.​ int a[2][3]={{3,2,1},{1,2,3}}; D.​ int a[][]={{3,2,1},{1,2,3}}; 5、在执行int a[][3]={1,2,3,4,5,6};语句后,a[1][1]的值是 。 A.4 B. 1 C. 2 D. 5 6、为了判断两个字符串s1和s2是否相等,应当使用 。 A.​ if (s1==s2) B.​ if (s1=s2) C.​ if (strcpy(s1,s2)) D.​ if (strcmp(s1,s2)==0) 7、在C语言中,引用数组元素时,其数组下标的数据类型允许是 。 A)整型常量 B)整型表达式 C)整型变量 D)任何类型的表达式 8、以下能对具有10个元素的一维数组a进行正确初始化的语句是 。 A)int a[10]=(0,0,0,0,0); B) int a[10]={ }; C) int a[ ]={0}; D) int a[10]={10*1}; 9、有int a[10]={6,7,8,9,10};对以下说明语句的正确理解是 。 A)​ 将5个初值依次赋给 a[1]至a[5] B)​ 将5个初值依次赋给 a[0]至a[4] C)​ 将5个初值依次赋给 a[6]至a[10] D)​ 因为数组长度与初值的个数不相同,所以此语句不正确 10、判断字符串a和b是否相等,应当使用 。 A) if(a==b) B) if(a=b) C) if(strcpy (a,b)) D)if(strcmp(a,b)==0) 11、若有说明: int a[ ][3]={1,2,3,4,5,6,7};则a 数组第一维的大小是 。 A)2 B)3 C)4 D)无确定值 12、合法的数组定义是 A)int a[]="string"; B)int a[5]={0,1,2,3,4,5}; C)char s="string"; D)char a[]={0,1,2,3,4,5}; 13、若有如下定义语句: int a[10]={1,2,3,4,5,6,7,8,9,10}; 则对数组正确的引用是( )。 A.a[10] B.a[a[3]5] C.a[a[9]] D.a[a[4]+4] 14、若有如下定义语句: double a[5]; int i=0; 能正确给a数组元素输入数据的语句是( )。 A.scanf("%lf%lf%lf%lf",a); B.for(i=0;i<=5;i++) scanf("%lf",a+i); C.while(i<5) scanf("%lf",&a[i++]); D.while(i<5) scanf("%lf", a+i); 15、要求定义具有8个int类型元素的一维数组,下面定义语句错误的是( )。 A.# define N 8 int *a[N] B.# define N 3 int a[2N+2] C.int a[ ]={0,1,2,3,4,5,6,}; D.int a[1+7]={0} 16、以下定义语句正确的是( )。 A.int n=5,a[n][n]; B.int a[ ][3]={{1,2},{3,4},{5,6}}; C.int a[ ][3]; D.int a[ ][ ]={ {1,2},{3,4},{5,6}} 17、以下程序的输出结果是( )。 main() {char ss[16]="tese\0\n"; printf("%d,%\n",strlen(ss),sizeof(ss));} A.4,16 B.7,7 C.16,16 D.4,7 18、有以下的定义初始化语句( )。 char num[ ]="9876543210"; 数组num所占的存储空间的字节数是( )。 A.9 B.10 C.11 D.以上三项都不对 19、下列程序的执行结果是: main() { int i,max,a[10]; printf("input 10 numbers:\n"); int a[9]={1,2,3,4,5,6,7,8,9,10} max=a[0]; for(i=1;i<10;i++) { if(a[i]>max) max=a[i]; i++; } printf("maxmum=%d\n",max); A.0 B.10 C.9 D.5 20、下列程序的执行结果是: main() { int i,a[4]; for(i=0;i<5;) a[i++]=2*i+1; for(i=0;i<=4;i++) printf("%d ",a[i]); } A.1,3,5,7,9 B.0,1,2,3,4 C.9,7,8,6,5 D.5,4,3,2,1 21、有以下程序: main() { int a[][3]={{1,2,3},{4,5,0}},i; for (i=0;i<3;i++) if (i<2) A[1][i]=a[1][i]-1; else a[1][i]=1; printf(“%d\n”,a[0][1]+ a[1][1] +a[1][2]); } 执行后输出结果是() A 7 B 6 C 8 D无确定植 22、有以下程序 main() { int m[][3]={1,4,7,2,5,8,3,6,9}; int I,j,k=2; for (i=0;i<3;I++) { printf(“%d”,m[k][i]); } } A 4 5 6 B 2 5 8 C 3 6 9 D 7 8 9 二、填空题 1、写出下面程序的运行结果 。 #include void main() { char ch[7]={"12ab56"}; int i,s=0; for(i=0;ch[i]>='0' && ch[i]<='9';i=i+2) s=10*s+ch[i]-'0'; printf(“%d”,s); } 2、下面程序以每行4个数据的形式输出a数组,请填空。 #include #define N 20 void main() { int a[N],i; for(i=0;i void main() { int a[5],max,min,i,j,k=0; for(i=0;i<5;i++) scanf(“%d”,&a[i]); min=a[0]; for(i=1;i<5;i++) if(a[i]max {max=a[i]; ;} a[k]=max; printf("最小数的位置是%d",k); printf("最大数的位置是%d",j); for(i=0;i<5;i++) printf(“%d”,a[i]); } 4、当从键盘输入18时,下面程序的运行结果是 。 #include void main() { int x,y,i,a[8],j,u,v; scanf(“%d”,x);; y=x;i=0; do {u=y/2;a[i]=y%2;i++;y=u;}while (y>=1); for(j=i-1;j>=0;j--) printf(“%d\t”,a[j]); } 5、下面程序的运行结果是 。 #include void main() { int i,j,row,col,min; int a[3][4]={{1,2,3,4},{9,8,7,6},{-1,-2,0,5}}; min=a[0][0]; for(i=0;i<3;i++) for(j=0;j<4;j++) if(a[i][j] void main() { int i,r;char s1[80]="bus",s2[80]="book"; for(i=r=0;s1[i]!='\0' && s2[i]!='\0';i++) if (s1[i]==s2[i]) i++; else{r=s1[i]-s2[i];break;} printf(“%d”,r); } 7、以下程序运行后的输出结果是 。 #include void main() { int a[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}}; int i,j,s=0; for(i=0;i<4;i++) { for(j=0;j<4;j++) {if(a[i][j]<0) continue; if(a[i][j]==0) break; s=s+a[i][j]; } } printf(“%d”,s); } 8、下列函数inverse的功能是使一个字符串按逆序存放,请填空。 void inverse (char str[]) { char m; int i,j; for (i=0,j=strlen(str);i< ;i++, ) { m=str[i]; str[i]= ; ; } } 9、阅读下列程序,写出运行结果。 #include void main() { int i,j; static int a[10]={1,1,1,1,1,1,1,1,1,1}; for (i=0;i<10;i++) for (j=0;j语文
、数学和英语。先输入学生人数(最多为50个人),然后按编号从小到大的顺序依次输入学生成绩,最后统计每门课程全班的总成绩和平均成绩以及每个学生课程的总成绩和平均成绩。 2、编写一个程序,从键盘输入10个学生的成绩,统计最高分、最低分和平均分。 3、编写一个程序,将用户输入的十进制整数转换成任意进制的数。 4、编写一个程序,将一个子字符串s2插入到主字符串s1中,其起始插入位置为n. 5、有一行文字,现要求从其中删去某个指定字符(如输入n,表示要从此行文字中删去所有是n的字符),要求该行文字和待删的字符均由终端输入。 6、编写一个程序,将字符串“computer“赋给一个字符数组,然后从第一个字母开始间隔地输出该字符串。 7、某次大奖赛,有七个评委打分,编写程序对一名参赛者,输入七个评委的打分分数,去掉一个最高分和一个最低分,求出平均分为该参赛者的得分。 8、从键盘输入20个整数,找出其中的最小值并输出。 第8章 函数 一、​ 选择题 1、以下正确的函数定义形式是 。 A) double fun(int x,inty) B)double fun(int x;int y) C) double fun(int x,y) D)double fun(int x,y;) 2、按C语言的规定,以下不正确的说法是 。 A)实参可以是常量、变量或表达式 B)形参可以是常量、变量或表达式 C)实参可以为任意类型 D)形参应与其对应的实参类型一致 3、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是 。 A)地址传递 B)单向值传递 C)由实参传给形参 D)由用户指定传递方式 4、在C语言程序中,以下正确的描述是 。 A)​ 函数的定义可以嵌套,但函数的调用不可以嵌套 B)​ 函数的定义不可以嵌套,但函数的调用可以嵌套 C)​ 函数的定义和函数的调用均不可以嵌套 D)​ 函数的定义和函数的调用均可以嵌套 5、若用数组名作为函数调用的实参,传递给形参的是 。 A)数组的首地址 B)数组第一个元素的值 C)数组中全部元素的值 D)数组元素的个数 6、如果在一个函数中的复合语句中定义了一个变量,则该变量 。 A)只在该复合语句中有效 B)在该函数中有效 C)在本程序范围内有效 D)为非法变量 7、若使用一维数组名作函数实参,则以下正确的说法是 。 A)​ 必须在主调函数中说明此数组的大小 B)​ 实参数组类型与形参数组类型可以不匹配 C)​ 在被调函数中不需要考虑形参数组的大小 D)​ 实参数组名与形参数组名必须一致 8、凡是函数中未指定存储类型的局部变量,其隐含的存储类型为 。 A) auto B) static C)extern D)register 9、以下描述不正确的是 。 A)调用函数时,实参可以是表达式 B)调用函数时,实参与形参可以共用内存单元 C)调用函数时,将为形参分配内存单元 D)调用函数时,实有与形参的类型必须一致 10、C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递是 。 A)地址传递 B)值传递 C)由实参传给形参,并由形参回传给实参 D)由用户指定传递方式 11、在一个源文件中定义的全局变量的作用域为 。 A)本文件的全部范围 B)本程序的全部范围 C)本函数的全部范围 D
/
本文档为【C语言程序设计专升本复习习题】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索