2023年C语言等级考试复习题_第1页
2023年C语言等级考试复习题_第2页
2023年C语言等级考试复习题_第3页
2023年C语言等级考试复习题_第4页
2023年C语言等级考试复习题_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

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

文档简介

《C语言程序设计》复习题第一、二章单项选择题1、下列符号中,不可以作为变量名的是_________。A、_varB、VAR10C、varxD、运算符&&代表。A、按位与B、逻辑与C、逻辑或D、按位取反下列字符串为标记符的是_____。A、_1_AB、5_studentC、longD、!DF下列属于字符型常量的是。A、’AA’B、“B”C、‘\a’D、’\x93L’表达式18/4*sqrt(4.0)/8值的数据类型为____________.

A、

int

B、

double

C、

char

D、不拟定设有单精度变量f,其值为13.4执行语句“n=((int)f%3;”后,n的值是。A、1B、4C、4.333333D、4.6为表达关系x≥y≥z,对的的C语言表达式是。

A、(x>=y)&&(y>=z)

B、(x>=y)AND(y>=z)

C、(x>=y>=z)

D、(x>=z)&(y>=z)运算符||代表。A、按位或B、逻辑或C、按位异或D、按位取反9、若k为int型变量且赋值11,则k++表达式的值为。A、10B、11C、12D、10、下列四组选项中,均是合法转义符的选项是。A、‘\”’‘\\’‘\n’B、‘\’‘\017’‘\”’C、‘\018’‘\f’‘xab’D、‘\\0’下列不对的的字符常量是。A、“C”B、‘\”’C、‘’D、‘K’用C语言编写的源文献通过编译,若没有产生编译错误,则系统将。A、生成可执行文献

B、生成目的文献C、输出运营结果

D、自动保存源文献下列说法中错误的是。A、主函数可以分为两个部分:主函数说明部分和主函数体B、主函数可以调用任何非主函数的其他函数C、任何非主函数可以调用其他任何非主函数D、程序可以从任何非主函数开始执行算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为。A、算术运算、赋值运算、关系运算

B、算术运算、关系运算、赋值运算C、关系运算、赋值运算、算术运算

D、关系运算、算术运算、赋值运算已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=’A’+’6’-‘3’;后c2中的值是。A、C

B、D

C、68

D、不拟定的值

字符串"ABC"在内存占用的字节数是。A、3

B、4

C、6

D、8设a=1,b=2,c=3,d=4,则表达式:a<b?a:c<d?a:d的结果为。A、1

B、2

C、3

D、418、以下叙述对的的是。A、C语言程序是由过程和函数组成的B、C语言函数可以嵌套调用,例如:fun(fun(x))C、C语言函数不可以单独编译D、C语言中除了main函数,其他函数不可作为单独文献形式存在以下叙述不对的的是。A、在C程序中,逗号运算符的优先级最低B、在C程序中,MAX和max是两个不同的变量C、若a和b类型相同,在计算了赋值表达式a=b后,b中的值不变D、当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值整型常量不能使用的形式是。A、二进制B、八进制C、十进制D、十六进制21、C语言源程序的扩展名为,连接后生成文献的扩展名为。A、.CB、.EXEC、.OBJD、.COM二、填空题1、C语言程序是由组成,其中主函数的名字必须用。2、C语言程序总是从开始执行。3、一个函数包含和两大部分,包含在中的内容称为函数体。4、C语言程序的上机环节分为、、和四步。5、注释部分以开始,以结束。6、在32位系统中,C语言的int型数据占个字节,float型数据占个字节,double型数据占字节,char型数据占个字节。7、将x定义为整型变量的语句是。8、将lg定义为长整型变量的语句是。9、将cg定义为字符型变量的语句是。10、与x3+3x3y+3xy2+y3相应的C语言表达式是___________________。11、表达式3.5+1/2的计算结果是。C语言的基本数据类型有______、______和_____。表达式x=x+1表达成增量表达式为。第三章单项选择题putchar函数可以向终端输出一个。A、整型变量表达式B、实型变量值C、字符串D、字符或字符型变量值2、printf函数中用到格式符%5s。假如字符串长度大于5,则输出按方式;假如字符串长度小于5,则输出按方式。A、从左起输出该字符串,右补空格B、按原字符长从左向右所有输出C、右对齐输出该字符串,左补空格D、输犯错误信息3、阅读以下程序,当输入数据的形式为:25,13,10<CR>(注:<CR>表达回车),则对的的输出结果为。voidmain(){intx,y,z;scanf(“%d%d%d”,&x,&y,&z);printf(“x+y+z=%d\n”,x+y+z);}A、x+y+z=48B、x+y+z=35C、48D根据下面的程序及数据的输入和输出形式,程序中输入语句的对的形式应当为。voidmain(){charch1,ch2,ch3;输入语句printf(“%c%%c”,ch1,ch2,ch3);}输入形式:ABC输出形式:ABCA、scanf(“%c%c%c”,&ch1,&ch2,&ch3);B、scanf(“%c,%c,%c”,&ch1,&ch2,&ch3);C、scanf(“%c%c%c”,&ch1,&ch2,&ch3);D、scanf(“%c%c”,&ch1,&ch2,&ch3);5、已知ch是字符型变量,下面不对的的赋值语句是。A、ch=‘a’+’b’;B、ch=‘\0’;C、ch=‘7’+‘9’;D、ch=”aa”;6、以下关于结构化程序设计的叙述对的的是。A、一个结构化程序必须同时由顺序、分支、循环三种结构组成B、结构化程序使用goto语句会很便捷C、在C语言中,程序的模块化是运用函数实现的D、由三种基本结构构成的程序只能解决小规模的问题有以下程序#include<stdio.h>voidmain(){inta1,a2;charc1,c2;scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);printf(“%d,%c,%d,%c”,a1,c1,a2,c2);}若想通过键盘输入,使得a1的值为12,a2的值为34,c1的值为字符a,c2的值为字符b,程序输出结果是:12,a,34,b,则对的的输入格式是。(以下_代表空格,<CR>代表回车)A、12a34b<CR>B、12_a_34_b<CR>C、12,a,34,b<CR>D、12_a34_b<CR>有以下程序,程序运营后的输出结果是。#include<stdio.h>voidmain(){intx=011;printf("%d\n",++x);}A、2B、4C、10D、119、执行以下语句后,显示结果为。x=19;printf(“%x”,x);A、13B、19C、23D、执行错误10、执行以下语句:显示结果为。x=97;printf(“%c”,x);A、97B、aC、AD、执行错误二、程序填空题1、从键盘上输入一个字符,假如是大写字母,则将其转换成小写字母后输出。#include<stdio.h>voidmain(){charch;scanf(“%c”,);ch=()?ch+32:ch;printf(“char=%c\n”,ch);}从键盘分别为变量x和y输入整数,互换它们的值后输出。#include<stdio.h>voidmain(){intx,y;;scanf(“%d%d”,&x,&y);z=x;;y=z;printf(“x=%d,y=%d”,x,y);}程序改错题,下面程序片段也许只有一个错,也也许有一个以上的错。1、voidmain(){floata1=123.456;printf(“%d”,a1);}()改为:()2、printf(“请输入三个数x1,x2,x3:”);scanf(“%f%f%f”,x1,x2,x3);()改为:()3、k=-8567;printf(“%6D\n”,k);()改为:()编程题。从键盘输入一个四位数,把该整数颠倒过来输出(例如1234变成4321)。写一个程序,从键盘输入两个整数,然后输出这两个数的和、差、积、商。3、将“China”译成密码。加密规则是:用本来的字母后面的第4个字母代替本来的字母(提醒:设5个字符型变量,存放5个字符,经运算使各ASCII码增4,再输出)。第四章单项选择题。逻辑运算符两侧运算对象的数据类型。A、只能是0和1B、只能是0或非0正数C、只能是整型或字符型数据D、可以是任何类型的数据判断char型变量ch是否为大写字母的对的表达式是。A、‘A’<=ch<=‘Z’B、(ch>=‘A’)&(ch<=‘Z’)C、(ch>=‘A’)&&(ch<=‘Z’)D、(‘A’<=ch)AND(‘Z’>=ch)若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。则以下不能满足规定的表达式是。A、A%2==1B、!(A%2==0)C、!(A%2)D、A%2设有:inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为。A、1B、2C、0D5、以下程序的运营结果是。voidmain(){inta,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(“%d,%d”,a,b);}A、2,0B、2,1C、6,0D、6、已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是。if(x>y)z=x;x=y;y=z;A、x=10,y=20,z=30B、x=20,y=30,z=30C、x=20,y=30,z=107、以下程序的运营结果是。voidmain(){intm=5;if(m++>5)printf(“%d\n”,m);else;printf(“%d\n”,m--);}A、4B、5C、6D8、若运营时给变量x输入12,则以下程序的运营结果是。voidmain(){intx,y;scanf(“%d”,&x);y=x>12?x+10:x-12;printf(“%d\n”,y);}A、0B、2C、3D、4if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述对的的是。A、必须是逻辑值B、必须是整数值C、必须是正数D、可以是任意合法的数值10、有以下程序#include<stdio.h>voidmain(){inta=1,b=0;if(!a)b++;elseif(a==0)if(a)b+=2;elseb+=3;printf(“%d\n”,b);}程序运营后的输出结果是。A、0B、1C、11、有以下程序,程序运营后的输出结果是。#include<stdio.h>voidmain(){intc=0,k;for(k=1;k<3;k++)switch(k){default:c+=k;case2:c++;break;case4:c+=2;break;}printf(“%d\n”,c)}A、3B、5C、7D、12、有如下程序,

该程序的输出结果是_______。voidmain()

{intx=1,a=0,b=0;

switch(x){

case0:b++;

case1:a++;

case2: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=213、若运营时给变量x输入12,则以下程序的运营结果是_____。voidmain(){intx,y;scanf("%d",&x);y=x>12?x+10:x-12;printf("%d\n",y);}A、0B、10C、12D、2214、若变量已对的定义,要将a和b中的数进行互换,下面不对的的语句组是_____。A、a=a+b,b=a-b,a=a-b;B、t=a,a=b,b=t;C、a=t;t=b;b=a;D、t=b;b=a;a=t;15、下面程序的运营结果是。voidmain(){intx=4,y=5;if((x>y)&&(++x>0))printf(“%d”,x+y);printf(“%d”,x);}A、94B、4C、5D、10516、以下程序执行后的显示结果为。{intn=3,m=6;if(n>4&&m++<10)m++;printf(“m=%d\n”,m);}A、6B、7C、8D、9填空题。1、执行if(x||!x)printf(”ABC”);elseprintf(”XYZ”);屏幕上显示的是______________。2、执行下列语句后,显示结果为。x=0;if(x=0)printf(“yes”);elseprintf(“no”);3、switch语句中,使用break语句,作用是。程序填空题1、下面程序判断输入一个整数是否能被3或7整除,若能整除输出“YES”,若不能整除,输出“NO”。voidmain(){intk;printf(“请输入一个整数:”);scanf(“%d”,&k);ifprintf(“YES\n”);elseprintf(“NO\n”);}下列程序根据菜单选择完毕相关操作。voidmain(){intx,y,n;printf(“请输入第一个整数:”);scanf(“%d”,&x);printf(“请输入第二个整数:”);scanf(“%d”,&y);printf(“请输入你的选择1-加法、2-减法、3-乘法、4-除法”);scanf(“%d”,);switch(n){case1:printf(“和为:%d\n”,x+y);break;case2:printf(“差为:%d\n”,x-y);break;case3:printf(“积为:%d\n”,x*y);break;case4:printf(“商为:%d\n”,x/y);break;:printf(“选择有误!\n”);}}四、程序改错题1、输入一个整数,判断其奇偶性。#include<stdio.h>voidmain(){intx;printf(“请输入一个整数:”);scanf(“%f”,x);if(x%2=0)printf(“是一个偶数!\n”);elseprintf(“是一个奇数!\n”);}()改为:()()改为:()输入一个整数,判断其是否能被3整除。#include<stdio.h>voidmain(){intx,y;printf(“请输入一个整数:”);scanf(“%f”,x);y=x%3;switch(y){case0:printf(“能被3整除!\n”);case1,2:printf(“不能被3整除!\n”);}}()改为:()()改为:()()改为:()五、编程题1、编程:输入整数x,计算并输出下列分段函数f(x)的值。y=x(x<1)2x-1(1<=x<10)3x-11(x>=10)2、编程:输入两个整数,再输入两个数相加的和,由程序判断输入的和是否对的。3、编程:把百分制成绩转换成5级记分制,规定用switch语句。90分以上(涉及90):A80至90分(涉及80):B70至80分(涉及70):C60至70分(涉及60):D60分以下:E如:InputScore:8686的等级为B4、用switch语句编程,输入2023年的任一个月,输出这个月的天数。如:Inputmonthof2023:102023年10月有31天5、给出一个不多于5位的正整数,规定:(1)求出它是几位数;(2)分别输出每一位数字;(3)按逆序输出各位数字,例如原数为321,应输出123第五章一、单项选择题1、有如下程序,该程序的输出结果是_______。voidmain()

{intn=9;

while(n>6){n--;printf("%d",n);}

A、876

B、987

C、8765

D、98762、continue语句的对的的用法是。A、跳过该循环体中剩余的语句而强行开始下一次循环。B、在多重循环中,只能退出最靠近的那一层循环语句。C、跳出多重循环。D、无论在任何情况下,都中断程序的执行,退出到系统下一层。3、有以下程序段,则下面的描述对的的是。intk=0;while(k=0)k=k-1;A、while循环执行10次B、循环是无限循环C、循环体语句一次也不执行D、循环体语句执行一次4、C语言中whi1e和do-while循环的重要区别是_____。A、do-while的循环体至少无条件执行一次B、while的循环控制条件比do-while的循环控制条件严格C、do-while允许从外部转到循环体内D、do-while的循环体不能是复合语句5、有以下程序,则以下叙述对的的是_______。

intt=0;

while(t=1)

{...}A、循环控制表达式的值为0

B、循环控制表达式的值为1C、循环控制表达式不合法

D、以上说法都不对6、语句while(!E);中的表达式!E等价于________。A、E==0

B、E!=1

C、E!=0

D、E==1

7、下面程序段的运营结果是_,循环次数为。

int

n=0;

while(n++<=2);printf("%d",n);

A、2

B、3

C、4

D、有语法错

8、下面程序的运营结果是。

#include<stdio.h>

viodmain()

int

num=0;

while(num<=2)

{

num++;

printf("%d\n",num);

}

}

A、1

B、1

C、1

D、1

2

2

3

4

9、以下程序段________。x=-1;

do{x=x*x;

}

while(!x);

A、是死循环

B、循环执行二次

C、循环执行一次

D、有语法错误

10、有如下程序段,则程序段______。

int

x=3;

do{printf("%d\n",x-=2);}

while(!(--x));

A、输出的是1

B、输出的是1和-2

C、输出的是3和0

D、是死循环

11、下面程序的运营结果是____。

#include<stdio.h>

voidmain()

{

int

y=10;

do{y--;}

while(--y);

printf("%d\n",y--);

}A、-1

B、0

C、1

D、8

12、若i为整型变量,则以下循环执行次数是_____。

for(i=2;i==0;)printf("%d",i--);

A、无限次

B、0次

C、1次

D、2次

13、执行语句for(i=1;i++<4;

);后变量i的值是______。

A、3

B、4

C、5

D、不定

14、以下对的的描述是_______.

A、continue语句的作用是结束整个循环的执行

B、只能在循环体内和switch语句体内使用break语句

C、在循环体内使用break语句或continue语句的作用相同

D、从多层循环嵌套中退出时,只能使用goto语句

15、有以下程序,程序运营后的输出结果是______。

voidmain()

{

char

b,c;

int

i;

b='a';

c='A';

for(i=0;i<6;i++)

if(i%2)

putchar(i+b);

else

putchar(i+c);

}

printf("\n");

}

A、ABCDEF

B、AbCdEf

C、aBcDeF

D、abcdef二、程序填空题:1、以下程序的功能是:从键盘上输入若干个学生的成绩,记录并输出最高成绩和最低成绩,当输入负数时结束输入。请填空。voidmain(){floatx,amax,amin;scanf(“%f”,&x);amax=x;amin=x;while(){if(x>amax)amax=x;if()amin=x;scanf(“%f”,&x);}printf(“\namax=%f\namin=%f\n”,amax,amin);}2、下列程序打印如下形式的图形。**********voidmain(){for(inti=1;i<=4;i++){for(intj=1;;j++) printf();printf();}}3、下列程序求100之内的自然数中偶数之和。#include<stdio.h>voidmain(){inti=1,s;;while(i<100){if(i%2==0);;}printf(“s=%d\n”,s);}4、下面程序的功能是:输出100以内(不包含100)能被3整除且个位数为6的所有整数,请填空。#include<stdio.h>voidmain(){

inti,j;for(i=1;;i++)if()printf("%d",i);

}5、下列程序打印如下形式的图形**********voidmain(){for(inti=1;i<=4;i++){for(intj=1;;j++)ﻩprintf();printf();}}下面程序段是从键盘输入的字符中记录数字字符的个数,用换行符结束循环。

int

n=0,c;c=getchar();

while()

{

if()n++;c=getchar();

}

7、下面程序的功能是用"辗转相除法"求两个正整数的最大公约数。

#include

<stdio.h>

voidmain()

{int

r,m,n;

scanf("%d%d",&m,&n);

if(m<n){}

r=m%n;while(r){m=n;n=r;r=_

;}

printf("%d\n",n);

}

三、程序改错题1、以下程序是输入一个整数,分别将其逆向输出。如-321的逆向是-123源程序(有错误的程序)#include<stdio.h>voidmain(){intn;scanf(“%d”,n);intm,y;y=0;if(n<0)m=n;elsem=-n;while(m==0){y=y*10+m/10;m=m%10;}if(n<0)y=–y;printf(“%d的逆向是%d\n”,n,y);}()改为:()()改为:()()改为:()()改为:()()改为:()2、输入正整数的个数n,再输入n个正整数,判断它们是否为素数。素数就是只能被1和自身整除的正整数,1不是素数,2是素数。#include<stdio.h>#include<math.h>voidmain(){inti,j,k,m,n;printf(“输入正整数的个数n:”);scanf(“%d”,&n);printf(“输入%d个正整数\n”,n);for(j=0;j<n;j++){scanf(“%d”,m);n=sqrt(m);for(i=1;i<n;i++)if(m/i==0)break;if(i>n)printf(“%d是一个素数!\n”,m);elseprintf(“%d不是一个素数!\n”,m);}}()改为:()()改为:()()改为:()四、编程题1、编程:输入一批非零整数,先输出其中的偶数和及奇数和,然后输出偶数和与奇数和的差。如:输入一批整数,以零结束:101120330偶数和为:30奇数和为:44偶数和与奇数和的差为:-142、编程,输入1个正实数eps,计算并输出下式的值,直到最后一项的绝对值小于eps。如:Inputeps:0.00001S=0.8669783、编程,输入1个实数x,计算并输出下式的值,直到最后一项小于10-5。在math.h中定义的标准函数pow(x,y),可以求x的y次方。如:X=2S=3.7621954、编程,输入一个整数,求它的各位数字之和及位数。例如123的各位数字之和是6,位数是3。如:输入一个整数:-12345-12345有5位数,各位数字之和是15打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数自身。如153是一个水仙花数,由于153=13+53+33。6、编程,输出101-115之间不能被3整除的数,每行输出5个。规定使用continue语句。如:1011031041061071091101121131157、编程,找出200以内的所有完数,所谓完数是指这个数如恰好等于它的因子之和,如6是完数,由于6=1+2+3。8、有一个分数序列,2/1,3/2,5/3,8/5,13/8,21/13……求出这个数列的前20项之和。9、输出以下图案***************第六章一、单项选择题1、在下面的一维数组定义中,_______有语法错误。A、inta[]={1,2,3};B、inta[10]={0};C、inta[];D、inta[5];2、调用函数strlen(“abcd\tef\ng”)的返回值是。A、4B、6C、7D、93、设有数组定义:chararray[]="China";,则数组array所占的空间为个字节。A、4B、5节C、6D、74、要使字符串变量str具有初值"ABCDEFGH",对的的定义语句是___。A、charstr[8]={'A','B','C','D','E','F','G','H'};B、charstr[8]="ABCDEFGH";C、charstr[]={'A','B','C','D','E','F','G','H'};D、charstr[]="ABCDEFGH";5、设有数组定义:chararray[]=”good”;,则数组所占的空间是________个字节。A、4

B、5

C、6

D、76、以下能对的进行字符串赋值的是。A、chars[5]={‘a’,’e’,’I’,’o’,’u’};B、chars[5];s=”good”;C、chars[5]=”abcd”;D、chars[5];s[]=”good”;7、下列语句中,是合法的数组定义。A、inta[]={“string”};B、inta[5]={0,1,2,3,4,5};C、chara={“string”};D、chara[]={0,1,2,3,4,5}8、有以下程序:voidmain(){charp[]={‘a’,’b’,’c’},q[]=”abc”;printf(“%d%d”,sizeof(p),sizeof(q));}程序运营后的输出结果是()。A、33B、34C、43D、449、下列说法对的的是。A、在2023,2023,2023…2023这几个连续的地址单元中可存放8个数据。B、在2023,2023,2023…2023这几个连续的地址单元中可存放8个字符。C、在2023,2023,2023…2023这几个连续的地址单元中可存放字符串”ABCDEFGH”。D、在2023,2023,2023…2023这几个连续的地址单元中可存放8个整数。10、有定义:charch,s[30];inta,b;,下列输入语句对的的是_______。A、scanf(“%d%f”,&a,&b); ﻩﻩB、scanf(“%s%c”,&s,&ch);C、scanf(“%c%s”,&ch,s);ﻩ ﻩD、scanf(“%d%c”,a,ch);11、以下为一维整型数组a的对的定义是_________.。

A、int

a(10);

B、int

n=10,a[n];

C、int

n;

D、#define

SIZE

10

scanf("%d",&n);

int

a[SIZE];

int

a[n];

12、以下对二维数组a的对的定义是________。A、int

a[3][];

B、float

a(3,4);

C、double

a[1][4]

D、float

a(3)(4);

13、若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为。(假设a[0][0]位于数组的第一个位置上。)

A、i*m+j

B、j*m+i

C、i*m+j-1

D、i*m+j+1

14、若二维数组a有m列,则在a[i][j]前的元素个数为________。

A、j*m+i

B、i*m+j

C、i*m+j-1

D、i*m+j+1

15、有两个字符数组a、b,则以下对的的输入语句是_______。

A、gets(a,b);

B、scanf("%s%s",a,b);

C、scanf("%s%s",&a,&b);

D、gets("a"),gets("b");

16、下面程序段的运营结果是_________。

char

a[7]="abcdef";

char

b[4]="ABC";

strcpy(a,b);

printf("%c",a[5]);

A、空格

B、\0

C、e

D、f

17、判断字符串s1是否大于字符串s2,应当使用_______。

A、if(s1>s2)

B、if(strcmp(s1,s2))

C、if(strcmp(s2,s1)>0)

D、if(strcmp(s1,s2)>0)

18、下面程序的功能是从键盘输入一行字符,记录其中有多少个单词,单词之间用空格分隔,请选择填空。

#include

<stdio.h>

voidmain()

{

char

s[80],c1,c2='

';

int

i=0,num=0;gets(s);

while(s[i]!='\0')

{c1=s[i];

if(i==0)c2='

';

else

c2=s[i-1];

if(__)num++;

i++;

}

printf("There

are

%d

words.\n",num);

}

A、c1=='

'&&c2=='

'

B、c1!='

'&&c2=='

'

C、c1=='

'&&c2!='

D、c1!=''&&c2!='

19、下面程序的运营结果是_______。

#include

<stdio.h>

void

main(){char

str[]="SSSWLIA",c;

int

k;for(k=2;(c=str[k])!='\0';k++)

{switch(c)

{case

'I':++k;break;

case

'L':continue;

default:putchar(c);continue;

}

putchar('*');

}

}

A、SSW*

B、SW*

C、SW*A

D、SW

20、设char

str[100];int

i=5;,则引用数组元素的错误形式是。A、str[i

+

10]

B、(str

+

i)

C、(str

+

i

1)

D、

((str

+

+

)

+

i)二、填空题1、已知数组b定义为intb[]={9,6,3};,则数组b的最小下标是___,最大下标是___。2、已知数组e定义为inte[][4]={{1,2,3,4},{5,6,7,8}};,则e是一个行列的二维数组,总共有个元素,最大行下标是,最大列下标是。3、C语言中,数组名是一个常量,不能对它进行赋值运算。4、二维数组的元素在内存中按存放。5、C语言中,数组元素的下标下限为。6、设char

string[]

=“This_is_a_book!”;,则数组的长度应是________________。三、程序填空题1、输入一个字符串,将其中所有的小写字符变成“*”字符。#include<stdio.h>voidmain(){charstr[80];inti;printf(“请输入一个字符串:”);scanf(“%s”,);for(i=0;str[i];i++)if()str[i]=’*’;printf(“变换后的字符串为%s\n”,);}2、下面程序以每行4个数据的形式输出a数组,请填空。

#define

20

void

main()

{int

a[N],i;

for(i=0;i<N;i++)

scanf("%d",_

__);

for(i=0;i<N;i++)

{if

(___)

printf();printf("%3d",);

printf("\n");

}

3、下面程序可求出矩阵a的主对角线上的元素之和,请填空。

void

main()

{int

a[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j;

for(i=0;i<3;i++)

for(j=0;j<3;j++)

if(___)sum=sum+_

_;

printf("sum=%d\n",sum);

}

四、程序改错题1、输入一个正整数n(0<n<=10)和一组(n个)有序整数,再输入一个整数x,把x插入到这组数据中,使该组数据仍然有序。源程序(有错误的程序)#include<stdio.h>voidmain(){inti,j,n,x,a[n];printf(“输入数据的个数n:”);scanf(“%d”,&n);printf(“输入%d个整数:”,n);for(i=0;i<n;i++)scanf(“%d”,a[i]);printf(“输入要插入的整数:”);scanf(“%d”,&x);for(i=0;i<n;i++){if(x>a[i])continue;j=n-1;while(j>=i){a[j]=a[j+1];j++;}a[i]=x;break;}if(i==n)a[n]=x;for(i=0;i<n;i++)printf(“%d”,a[i]);putchar(‘\n’);}()改为:()()改为:()()改为:()()改为:()()改为:()2、输入一个以回车结束的字符串(少于80个字符),将它的内容颠倒过来再输出。如”ABCD”颠倒为”DCBA”。#include<stdio.h>voidmain(){inti,k,tmp;charstr[];printf(“inputastring:”);i=0;while((str[i]=getchar())==’\n’)i++;str[i]=’\0’;k=i;for(i=0;i<k;i++){tmp=str[i];str[i]=str[k];str[k]=tmp;k++;}for(i=0;str[i]!=’\0’;i++)putchar(str[i]);}()改为:()()改为:()()改为:()()改为:()()改为:()五、编程题1、输出以下杨辉三角形(要示输出10行)111121133114641151010512、编程,输入一个n行m列(n<=4,m<=4)的数组,先以n行m列的格式输出该数组,然后找出该数组中值最小的元素,输出该元素及其行下标和列下标。输入输出示例:输入数组行和列数n、m:23输入2行3列的数组元素:12-715-1891112.00-7.0015.00-18.009.0011.00a[1][0]=-18.003、编程,输入一个以回车结束的字符串(少于80个字符),先输出其中的小写英文字母、空格和感慨号!,然后记录这些字符的个数。4、编程,输入一个字符ch和一个以回车符结束的字符串(少于80个字符),记录字符串中与ch相同的字母个数。如:输入一个字符:o输入一个字符串:StudioClassroom在字符串中与o相同的字母有3个!5、编一程序,将两个字符串连接起来,不要用strcat函数。6、编写一个程序,将字符数组s2中的所有字符复制到字符数组s1中,不用strcpy函数。复制时,’\0’也要复制过去。’\0’后面的字符不复制。7、任意输入20个整数,计算正数的个数和正数的和。第七章一、单项选择题1、以下关于函数的叙述中对的的是。

A、每个函数都可以被其它函数调用(涉及main函数)

B、每个函数都可以被单独编译

C、每个函数都可以单独运营

D、在一个函数内部可以定义另一个函数

2、设函数fun的定义形式为:

void

fun(char

ch,

float

x

)

{

……}

,则以下对函数fun的调用语句中,对的的是。

A、fun("abc",3.0);

B、t=fun('D',16.5);

C、fun('65',2.8);

D、fun(32,32);

3、有以下程序,程序运营后的输出结果是。int

f1(int

x,int

y){return

x>y?x:y;}

int

f2(int

x,int

y){return

x>y?y:x;}

voidmain()

int

a=4,b=3,c=5,d=2,e,f,g;

e=f2(f1(a,b),f1(c,d));

f=f1(f2(a,b),f2(c,d));

g=a+b+c+d-e-f;

printf("%d,%d,%d\n",e,f,g);

}

A、2,5,7

B、3,4,7

C、4,3,7

D、5,2,74、有以下程序,程序运营后的输出结果是。#define

P

3

#define

F(int

x)

{

return

(P*x*x);}

voidmain()

printf("%d\n",F(3+5));

A、25

B、29

C、192

D、编译犯错

5、若程序中定义了以下函数

doublemyadd(double

a,double

b)

{

return

(a+b);

}

并将其放在调用语句之后,则在调用之前应当对该函数进行说明,以下选项中错误的说明是。A、

double

myadd(double

a,b)

;

B、

double

myadd(double,double);

C、

double

myadd(double

b,double

a);

D、

double

myadd(double

x,double

y);

6、有以下程序,程序的执行结果是。

char

fun(char

x

,

char

y)

{

if(x<y)

return

x;

return

y;

}

voidmain(){

int

a=’9’,b=’8’,c=’7’;

printf(“%c\n”,fun(fun(a,b)

,fun(b,c)

));

}

A、7

B、8

C、9

D、函数调用犯错7、

有以下程序,执行后输出结果是。

void

f(int

v

,

int

w)

{

int

t;

t=v;v=w;w=t;

}

voidmain(){

int

x=1,y=3,z=2;

if(x>y)

f(x,y);

else

if(y>z)

f(y,z);

else

f(x,z);

printf(“%d,%d,%d\n”,x,y,z);

}

A、1,2,3

B、1,3,2

C、2,3,1

D、3,1,2

8、若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是。

A、

调用可以作为独立的语句存在

B、调用可以作为一个函数的实参

C、调用可以出现在表达式中

D、调用可以作为一个函数的形参

9、有函数定义:void

fun(

int

n,

double

x)

{……}

,若以下选项中的变量都已对的定义并赋值,则对函数fun的对的调用语句是。

A、fun(int

y,double

m);

B、k=fun(10,12.5);

C、fun(x,n);

D、

void

fun(n,x);

10、有以下程序,程序运营后的输出结果是。

fun(int

a,

int

b)

{

if(a>b)

return(a);

else

return(b);

}

voidmain()

int

x=3,

y=8,

z=6,

r;

r=fun

(fun(x,y),

2*z);

printf("%d\n",

r);

}

A、3

B、6

C、8

D、12

11、在一个C程序中,。

A、main函数必须出现在所有函数之前

B、main函数可以在任何地方出现

C、main函数必须出现在所有函数之后

D、main函数必须出现在固定位置

12、在函数内,定义变量时存储类型符可省略的是。A、auto

B、

static

C、extern

D、register13、有如下程序,执行后输出结果是

void

f(int

x,int

y){

int

t;

if(x<y){

t=x;

x=y;

y=t;

}

}

voidmain()

{

int

a=4,b=3,c=5;

f(a,b);

f(a,c);

f(b,c);

printf("%d,%d,%d\n",a,b,c);

}

A、3,4,5

B、4,3,5

C、

5,3,4

D、5,4,3

14、C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是。

A、void

B、

int

C、float

D、double15、有以下程序,程序运营后的输出结果是。

float

fun(int

x,int

y)

return(x+y);

}

voidmain()

{

int

a=2,b=5,c=8;

printf(“%3.0f\n”,fun((int)fun(a+c,b),a-c));

}

A、9

B、9.0

C、21

D、编译犯错16、若有以下程序,则以下叙述中不对的的是。

#include

<stdio.h>

void

f(int

n);

main()

void

f(int

n);

f(5);

}

void

f(int

n)

{

printf("%d\n",n);

}

A、若只在主函数中对函数f进行说明,则只能在主函数中对的调用函数f

B、若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以对的调用函数f

C、对于以上程序,编译时系统会提醒犯错信息:提醒对f函数反复说明D、函数f无返回值,所以可用void将其类型定义为无值型

17、以下函数值的类型是

。fun

(

float

x

{

float

y;

y=

3*x-4;

return

y;

}

A、int

B、不拟定

C、void

D、float

18、以下所列的各函数首部中,对的的是。

A、void

play(var

:Integer,var

b:Integer)

B、void

play(int

a,b)

C、void

play(int

a,int

b)

D、Sub

play(a

as

integer,b

as

integer)

19、以下程序的输出结果是。

fun(int

x,

int

y,

int

z)

{

z=x*x+y*y;

}

voidmain()

int

a=31;

fun(5,2,a);

printf(“%d”,a);

}

A、0

B、29

C、31

D、无定值

20、有如下函数调用语句

func(rec1,rec2+rec3,(rec4,rec5));

该函数调用语句中,具有的实参个数是。

A、3

B、4

C、5

D、有语法错21、有如下程序,该程序的输出的结果是。

int

func(int

a,int

b)

{

return(a+b);}

voidmain()

{

int

x=2,y=5,z=8,r;

r=func(func(x,y),z);

printf(“%\d\n”,r);

A、12

B、13

C、14

D、15

22、以下叙述中不对的的是。

A、在不同的函数中可以使用相同名字的变量

B、函数中的形式参数是局部变量

C、在一个函数内定义的变量只在本函数范围内有效

D、在一个函数内的复合语句中定义的变量在本函数范围内有效23、有以下程序,输出结果是。

viod

fun

(int

a,int

b,int

c){

a=456;

b=567;

c=678;}

viodmain()

{

int

x=10,

y=20,z=30;

fun

(x,y,z);

printf("%d,%d,%d\n",z,y,x);

}

A、10,20,30

B、30,20,10

C、

456,567,678

D、

678,567,456

24、有以下程序,输出结果是。

#include

"stdio.h"

int

abc(int

u,intv);

voidmain

()

{

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;

}

A、6

B、7

C、8

D、9

25、以下说法中对的的是。

A、C语言程序总是从第一个的函数开始执行

B、

在C语言程序中,要调用的函数必须在main()函数中定义

C、C语言程序总是从main()函数开始执行

D、C语言程序中的main()函数必须放在程序的开始部分

26、以下程序的输出结果是。#include<stdio.h>

func(

int

a,

int

b)

{

int

c;

c=a+b;

return

c;

voidmain()

{

int

x=6,

y=7,

z=8,

r;

r=func((

x--,y++,x+y),z--);

printf("%d\n",r);

}

A、11

B、20

C、21

D、31

27、某程序中对myfun函数有此说明:voidmyfun();此说明的含义是。A、myfun函数无返回值B、myfun函数的返回值可以是任意的数据类型C、myfun函数的返回值是无值型的指针类型D、指针myfun指向一个函数,该函数无返回值28、一个函数的返回值类型是决定的。A、return语句中表达式类型B、定义函数时所指定的函数类型C、调用该函数的主调函数的类型D、在调用时临时指定的类型29、以下对C语言函数的描述中,对的的是。A、C程序由一个或一个以上的函数组成B、函数既可以嵌套定义又可以递归调用C、函数必须有返回值,否则不能使用函数D、C程序中调用关系的所有函数必须放在同一个程序文献中30、下列函数形式对的的是。A、doublefun(intx,inty)B、fun(intx,y)C、fun(x,y)D、doublefun(intx,inty){z=x+y;{intz;{intx,y{doublez;returnz;}returnz;}doublez=x+y;z=x+y;returnz;}returnz;}31、以下函数定义形式对的的是。A、doublefun(x,y);B、doublefun(intx;inty);C、doublefun(intx,inty);D、doublefun(intx,y);32、C语言程序中,当调用函数时。A、实参和形参各占一个独立的存储单元B、实参和形参共用一个存储单元C、可以由用户指定是否共用储存单元D、由系统自动指定是否共用存储单元33、用数据组名作为函数调用时的实参,事实上传递的是。A、数组所有元素B、数组第一元素的值C、数组的首地址D、数组元素的个数34、文献中定义的全局变量的作用域为。A、本程序所有范围B、本文献所有范围C、函数内所有范围D、从定义该变量的位置开始到本文献结束35、下面程序的对的运营结果是。voidfun(ints[],intn1,intn2){inti,j,t;i=n1;j=n2;while(i<j){t=s[i];s[i]=s[j];s[j]=t;i++;j--;}}voidmain(){inta[10]={1,2,3,4,5,6,7,8,9,0},i;fun(a,0,3);fun(a,4,9);fun(a,0,9);for(i=0;i<10;i++)printf(“%2d”,a[i]);printf(“\n”);}A、0987654321B、4321098765C、5678901234D、0987651234二、填空题1、在函数外定义的变量称为变量。2、在程序编译时是以为单位进行编译的。3、函数的返回值是通过函数中的语句获得的。4、若有以下程序

温馨提示

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

评论

0/150

提交评论