




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
习题第1部分 表达式及三种基本结构1、 单项选择题1)在语言中,int、char和float三种类型数据所占用的内存 。A、均为2个字节 B、分别为1、2、4个字节C、分别为2、1、4个字节 D、由变量的大小决定2)在语言中,错误的int类型的常数是 。A、32768 B、 -32766 C、 037 D、 0xAF3)下列可以表示字符型常数的是 。A、 a B、 t C、 n D、 2974)下列错误的转义字符是 。A、 B、 C、 81 D、 05)已知char a; int b; float c; double d; 执行语句c=a+b+c+d;后,变量c的数据类型是 。 A、 int B、 char C、 float D、 double 6)已知int i=5;执行语句i+=+i;后,i的值是 。A、6 B、 10 C、 12 D、 117)若w=1,x=2,y=3,z=4;则条件表达式wx?w:yz?y:z的结果为 。A、4 B、 3 C、 2 D、 18)已知int x;则使用逗号运算符的表达式(x=4*5,x*5),x+25的结果为 。A、20 B、 100 C、 125 D、 459)已知a、b、c的值都为1,且均为int类型变量,则执行以下语句:+a|+b&+c;变量b的值为 。 A、1 B、 2 C、3 D、 010)若要求在if后一对圆括号中表示条件“a不等于0成立”,则能正确表示这一关系的表达式是 。 A、a0 B、 !a C、a=0 D、 a11)C语言对嵌套if语句的规定是:else总是和 配对。A、其之前最近的if B、第一个ifC、缩进位置相同的if D、其前面最近的且尚未配对的if12)已知x、a、b均为整型变量,则下列选项中错误的if语句是 。A、if(a=b) x+; B、if(a=b) m=a; B、if(a=b) m=b; C、if(a=b)=0) m=a; D、if(a=b;)=0) m=a;16)程序main() int x=5; if(x+10) printf(%d,x);else printf(%d,x-);的输出是 。A、4 B、5 C、6 D、717)在下面的条件语句中(其中s1和s2表示是C语言的语句),只有一个在功能上与其它三条语句不等价,它是 。 A、if (a) s1; else s2; B、if (a=0) s2; else s1; C、if (a!=0) s1; else s2; D、if (a=0) s1; else s2;18)在循环语句的循环体中使用break和continue语句的作用分别是 。A、都是结束循环 B、结束本次循环和结束循环C、都是结束本次循环 D、结束循环和结束本次循环19)设i和s是整型变量,执行如下的语句,则输出的i和s的值为 。 for (i=0,s=0;i10;i+,s+); printf(%d,%dn,i,s); A、0,0 B、10,0 C、10,10 D、9,920)语句while(!x);中的条件等价于 。A、x=0 B、x!=0 C、x D、x!=121)在while(x)语句中的x与下面条件表达式等价的是 。A、x=0 B、x=1 C、x!=1 D、x!=022)若int x=3;且有下面的程序片段,则输出结果是 。 do printf (%d ,x-=2); while (!(-x); A、1 B、3 0 C、1 -2 D、死循环23)若i,j均为整型变量,则关于循环for(i=0,j=-1;j=1;i+,j+)printf(%d,%dn,i,j);正确的说法是 。 A、循环体只执行一次 B、循环体一次也不执行 C、判断循环结束的条件不合法 D、是无限循环24)以下不是死循环的语句为 。A、for ( ; ; x+=i ); B、while (1) x+;C、for (i=10; ; i-) D、for ( ; (c=getchar()!=n;) sum+=i; printf(%c,c);25)设有如下程序段,则以下叙述中正确的是 。int x=2002,y=2003;printf(%dn,(x,y);A、输出语句中格式说明符的个数少于输出项的个数B、输出语句中格式说明符必须再增加一个%dC、输出值为2002D、输出值为20032、填空题1)设有如下说明:int i=3,j=5,m; 执行语句m=(i+)-(-j);后,m的值是 ,j的值是 。2)设有如下程序:void main() int a=3,b=3,c; c=a+ +b;printf(%d %dn,a,c); c=a- -b;printf(%d %dn,b,c);/*减号之间有无空格结果是不同的*/ c=a+ +b; printf(%d %dn,a,c); 该程序执行后的三行输出分别是 , , 。3)设x=2.5;a=7;y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值为 。4)以下程序运行的结果是 。#include void main()int i,j,m,n; i=8; j=10; m=+i; n=j+; printf (%d,%d,%d,%d,i,j,m,n); 5)若int x=600; 则执行下列程序后,变量y的值是 。 if (x400) if (xb) if (ac) printf(%d,a); else printf(%d,b); printf(end); 8)完善程序:企业根据月销售额为销售人员发奖金。销售额小于1万元,奖金为销售额的20%;销售额大于或等于1万元而小于2万元,低于1万元的部分按20%,高于1万元的部分按15%发奖金;销售额大于2万元而小于4万元的,低于2万元的部分仍按上述方法发奖金,高于2万元的部分按10%发奖金;销售额大于4万元而低于6万元时,高于4万元的部分按6%发奖金;销售额大于6万元而低于10万元时,高于6万元的部分按3%发奖金;当销售额大于10万元时,高于10万元的部分按2%发奖金。#include void main() float sales; double price; int n; printf(请输入月销售额:n); scanf(%f ,&sales); if (sales=100000) n=10; else ; switch( n ) case 0: price= sales*0.2; break; case 1: price= 2000+(sales-10000)*0.15; break; case 2: case 3: price= 3500+(sales-20000)*0.1; break; case 4: case 5: price= 5500+(sales-40000)*0.06; break; case 6: case 7: case 8: case 9: price= 6700+(sales-60000)*0.03;break; case 10: price= 7900+(sales-100000)*0.02; break; printf(奖金是:%fn,price );9)执行下列程序段后,x和i的值分别是10和 。 int x,i; for(i=1,x=1;i=10) break; if(x%2=1) x+=5;continue; x-=3;10)完善程序:程序用于求100200之间的全部素数。程序中n的作用是累计素数的个数,该程序要求控制每行输出10个数据。 #include math.h void main() int m,k,i,n=0 ; for (m= 101 ;m=200;m=m+2) if ( n%10=0 ) printf(n); k=sqrt(m); for (i=2;i=k+1) printf(%d ,m); n=n+1; 11)完善程序:已知任意一个正整数的立方都可以写成一串连续奇数的和。例如:131313=2197=157+159+ +177+179+181,下列程序可以验证上述定理。 void main() long int n,i,k,j,sum; printf(Enter n=); scanf(%ld,&n); k=n*n*n; for(i=1;ik/2;i+=2) for(j=i,sum=0;sumk ;j+=2) sum+=j; if( sum=k ) printf(%ld*%ld*%ld=%ld=from %ld to %ldn,n,n,n,sum,i,j); 12)完善程序:下面程序的功能是打印100以内个位数为6且能被3整除的所有数。#include stdio.hvoid main()int i,j; for(i=0; i10 ;i+) j=i*10+6; if( ) continue; printf(%d ,j);13)阅读程序,写出程序的输出结果 。 #include void main() int k=1; char c=A; do switch(c+) case A: k+; break; case B: k-; case C: k+=2; break; case D: k=k%2; continue; case E: k=k*2; break; default: k=k/3; k+; while(cF); printf(k=%dn,k); 14)写出程序的输出结果 。 #include void main() int i=1; while (i=15) if (+i%3 !=2) continue; else printf(%d ,i); /*该语句是否在循环中?*/ printf(n); /*该语句是否在循环中?*/ 15)编程将一个键盘输入的正整数分解质因数。例如:输入90,打印出90=2*3*3*5。16)猴子吃桃问题:几个猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半多一个。到第10天早上想再吃时,见只剩下一个桃子了。编程求第一天共摘了多少桃子。(提示:采取逆向思维的方法,从后往前推断。)/*有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完?*/main() int day=0,x1=1020,x2; while(x1) x2=x1/2-2; x1=x2; day+; printf(day=%dn,day); system(pause); 第2部分 数组1、单项选择题1)以下对数组的初始化方法中,正确的是 。A、int a =A,B,C; B、int a5=0,1,2,3,4,5;C、char a=A,B,C; D、int a = 0,1,2,3,4,5;2)若要判断两个字符串str1和str2是否相等,应选用的函数是 。A、strcat(str1,str2) B、strcpy(str1,str2)C、strcmp(str1,str2) D、strstr(str1,str2)3)以下对字符数组初始化的方法中,错误的是 。A、 char str =Hello; B、 char str =Hello;C、 char str =Hello; D、 char str =H,e,l,l,o,0;4)若给出以下定义,则正确的叙述为 。char x =abcdefg;char y =a,b,c,d,e,f,g; A、数组x和数组y等价 B、数组x和数组y的长度相同C、数组x的长度大于数组y的长度 D、数组x的长度小于数组y的长度5)若二维数组a有m列,则在aij前的元素个数为 。A、 j*m+i; B、 i*m+j; C、 i*m+j-1; D、 i*m+j+1;6)若已定义:int w10;则在下面表达式中不能表示w2的地址的是 。A、w+2 B、&w2 C、&w0+2 D、w+=27)以下对二维数组a的正确说明是 。A、int a3 =3,4,2,6,9,2,7,5; B、float a(3, 4);C、int a 4=3,4,2,6,9,2,7,5; D、int a10=10*1;8)不正确的字符串赋值或赋初值方式是 。A、char str =s, t, r, i, n, g, 0; B、char str7=s, t, r, i, n, g;C、char str110; str1=string; D、char str1 =string,str2 =12345678;9)若有以下说明和语句,则输出结果是 。p51char s12a book! ; printf(.4s,s); A、a book! B、a boC、a book!(代表空格) D、因格式描述不正确,没有确定的输出10)若有以下说明和语句,则输出的结果是 。 char sp =x69082n; printf(%d,strlen(sp);A、3 B、1 C、2 D、411)若两个静态数组A和数组B进行如下初始化,则 。 static char A =ABCDEF; static char B =A,B,C,D,E,F;A、A和B完全相同 B、A和B只是长度相等C、A和B不相同,A是字符串,不是数组 D、A数组长度比B数组长12)下列程序的输出结果是 。void main()int k=3,a2; a0=k;k=a1*10; printf(%dn,k);A、10 B、30 C、33 D、不定值13)要定义一个连续10个字节的存储空间,以下定义正确的是 。A、char ss10; B、int ss10; C、float ss10; D、double ss10;14)有一数组int num4=11,12,13,14,15,16,17,9,8,7,6,5,执行语句scanf(%d, &num23);时键盘输入值为0,则数组中的值应为 。A、11,12,13,14,0,0,0,0,0,0,0,0 B、11,12,13,14,15,16, 17,9,8,7,6,0C、11,12,13,14,15,16, 17,0,8,7,6,5 D、11,12,13,14,15,16, 17,9,8,7,6,515)有一数组如下定义int a6=1,2,3,4,5;执行for (i=0; i6;i+)printf (%d ,ai); 输出的结果是 。A、1 2 3 4 5 6 B、1 2 3 4 5 随机值 C、1 2 3 4 5 0 D、1 2 3 4 5 516)执行以下程序,若输入数据为:abcd1234 efgh,则程序的输出结果是 。void main() char str 13; scanf(%s,str); printf(%sn,str); A、abcd B、abcd1234 C、efgh D、abcd1234efgh17)若有声明语句“int M10,N33;”,则以下对数组元素赋值的操作中,未出现越界访问的是 。A、N03=0 B、M10=0 C、N30=0 D、M-1=018)已定义一个数组str存放字符串,要从键盘上接收一串字符到str中,正确的方法是 。A、gets(str); B、gets(&str); C、scanf(%c,str); D、scanf(%s,&str);19)有一数组char str60,要将windows存放到此数组的正确语句是 。A、get(str); B、scanf(%s, str); C、scanf(%s, &str); D、puts(str);20)C语言中,存储字符串ABC占用的字节数(即函数sizeof(a)的值)和字符串长度(即函数strlen(ABC)的值)分别是 。A、3、4 B、4、3 C、3、3 D、4、421)设有说明:“char str 100;”,并假设已输入一个字符串至str数组中,则输出该字符串的printf函数调用语句的格式为 。A、printf(%dn,&str); B、printf(%cn,str);C、printf(%sn,str); D、printf(%sn,&str);22)下列描述正确的是 。A、数组名就是本数组在存储空间中的起始地址B、数组名就是一个符号,在程序中没有实际的意义C、数组名就是存放数组中的第一个元素的存储单元D、在程序中数组不能单独使用,必须带使用23)命题“当两个字符串s1和s2相等时为真,否则为假”的C语言表达式为 。A、s1=s2 B、s1=s2 C、!strcmp(s1,s2) D、strcmp(s1,s2)24)有一数组int a8=1,2,3,4,5,6,7,8,在执行scanf(%d,&aa5%3+1);时键盘输入值为0,则数组中的值为 。A、1 2 0 4 5 6 7 8 B、1 2 3 0 5 6 7 8C、1 2 3 4 0 6 7 8 D、1 0 3 4 5 6 7 825)若有以下说明和语句,则输出结果是 。char str =c:abc.dat;printf(%s,str);A、符串中有非法字符 B、c:abc.dat C、c:abc.dat D、c:abc.dat26)有以下语句:int b;char c10;则正确的输入语句是 。A、scanf(%d%s,&b,&c); B、scanf(%d%s,&b,c);C、scanf(%d%s,b,c); D、scanf(%d%s,b,&c);27)以下程序运行后的输出结果是 。 void main() int p8=11,12,13,14,15,16,17,18,i=0,j=0; while(i+7) if(pi%2) j+=pi; printf(%dn,j); A、42 B、45 C、56 D、6028)以下程序运行后的输出结果是 。 void main() char a7=a00a00; int i,j; i=sizeof(a); /* sizeof()是求a数组存储空间的库函数*/ j=strlen(a); printf(%d %dn,i,j); A、2 2 B、7 6 C、7 2 D、6 229)以下能正确定义一维数组的选项是 。A、int a5=0,1,2,3,4,5 B、char a=0,1,2,3,4,5;C、char a=A,B,C; D、int a5=0123;30)以下叙述中错误的是 。A、对于double类型数组,不可以直接用数组名对数组进行整体输入或输出B、数组名代表的是数组所占存储区的首地址,其值不可改变C、当程序执行中数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息D、可以通过赋初值的方式确定数组元素的个数31)以下能正确定义一维数组的选项是 。A、int num; B、#define N 100 int numN; C、int num0100; D、int N=100; int numN;32)若有定义语句static char str412=thank,you,very,much!;则str数组中存储0的数组元素有 个。A、4 B、1 C、31 D、2733)为了判断两个字符串s1和s2是否相等,应当使用 。A、if(s1=s2) B、 if(s1=s2)C、if(strcpy(s1,s2) D、if(strcmp(s1,s2)=0)2、填空题1)执行以下程序段后,b0、b1、b2的值为 。int b3=0,1,2; b2=b(b0=2)+b1-1-2;2)下面程序的输出结果为 。int a33=1,2,3,4,5,6,7,8,9;void main() int i; for(i=0;i3;i+) printf(%d ,ai2-i); 3)请读程序:# include void main() char s20,t20,min20; scanf(%sn,s); scanf(%sn,t); if(strcmp(s,t)0) strcpy(min,s); else strcpy(min,t); printf(%sn,min);若分别输入candy和ann,则上面程序的输出结果是 。4)strlen(ab034x79)的值是 。5)下面程序执行时输出的结果是 。void main() int a33=1,2,3,4,5,6,7,8,9,m,k,t; for(m=0;m3;m+) for(k=0;k=m;k+) if(m+k)%2) t=amk,amk=akm,akm=t; for(m=0;m3;m+) for(k=0;k3;k+) printf(%d ,amk); printf(n);6)运行以下程序时,若输入:1 2 3 3 2 1 2 1 3输出结果是 。#include void main() int a44,i,j; for (i=1;i4;i+) for (j=1;j4;j+) scanf(%d,&aij); for (i=1;i4;i+) for (j=1;j4;j+) aij=a(aij+1)%3+1(aji+2)%3+1; for (i=1;i4;i+) printf(a%d,%d=%d ,i,i,aii);7)下面程序的功能是检查一个二维数组是否对称(即aij=aji),请填空。void main() int a44=1,2,3,4,2,2,5,6,3,5,3,7,4,6,4,7; int i,j,found=1; for(i=0;i4&found;i+) for( j=0 ;jx) a =ai; ; /*将比x大的数往后移动一个位置*/ a+i=x; ; /*插入x后元素总个数增加*/ for(i=1;i0;i-) p=p*x; return p;A、8 B、9 C、27 D、816)有如下程序int func(int a,int b) return(a+b); void main() int x=2,y=5,z=8,r; r=func(func(x,y),z); printf(%dn,r);该程序的输出的结果是 。A、12 B、13 C、14 D、157)提供的编译预处理功能包括: 。A、文件包含、宏定义和条件编译 B、构造工程文件C、语句注释 D、包含以上各功能8)以下叙述中正确的是 。A、全局变量的作用域一定比局部变量的作用域范围大B、静态(static)类别变量的生存期贯穿于整个程序的运行期间C、函数的形参都属于全局变量D、未在定义语句中赋初值的auto变量和static变量的初值都是随机值9)以下所列的各函数首部中,正确的是 。A、void play(int a,b); B、void play(int a,b)C、void play(int a,int b) D、void play(int a;int b)10)在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是 。A、地址传递 B、单向值传递C、由实参传给形参,再由形参传回实参 D、传递方式由用户指定11)若有以下程序,则以下叙述中不正确的是 。#include void f(int n);void main() void f(int n);f(5);void f(int n) printf(%dn,n); A、若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数fB、若在主函数前对函数f进行说明,则在主函数和其后其它函数中都能调用函数fC、对于以上程序,编译时系统会提示出错信息,提示对f函数重复说明D、函数f无返回值,所以可用void将其类型定义为无值型12)C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是 。A、void B、int C、float D、double13)若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是 。A、函数调用可以作为独立的语句存在B、函数调用可以作为一个函数的实参C、函数调用可以出现在表达式中D、函数调用可以作为一个函数的形参14)有以下函数定义: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);15)对于C程序的函数, 的叙述是正确的。A、函数不能嵌套定义,但可以嵌套调用 B、函数可以嵌套定义,但不能嵌套调用C、函数的定义和调用均不能嵌套 D、函数的定义和调用均可以嵌套16)以下叙述中不正确的是 。A、一个变量的作用域完全取决于变量说明语句的位置B、外部变量可以在函数以外的任何位置定义C、内部变量的生存期只限于本次函数调用,无法将内部变量的值保存至函数的下一次调用D、用static说明一个外部变量是为了限制其他编译单位的引用17)以下叙述中不正确的是 。A、在函数中通过return语句传回函数值B、在函数中可以有多条return语句C、主函数main后的一对圆括号中也可以带有形参D、调用函数必需在一条独立的语句中完成18)以下叙述中不正确的是 。A、在不同的函数中可以使用相同名字的变量B、函数中的形式参数是局部变量C、在一个函数内定义的变量只在本函数范围内有效D、在一个函数内的复合语句中定义的变量在本函数范围内有效19)以下对C语言函数的有
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农发行武汉市武昌区2025秋招群面模拟题及高分话术
- 农发行绥化市兰西县2025秋招半结构化面试题库及参考答案
- 农发行白山市靖宇县2025秋招群面案例总结模板
- 农发行驻马店市新蔡县2025秋招笔试性格测试题专练及答案
- 农发行安阳市林州市2025秋招结构化面试15问及话术
- 农发行三明市沙县区2025秋招笔试性格测试题专练及答案
- 农发行河池市金城江区2025秋招笔试性格测试题专练及答案
- 国家能源崇左市凭祥市2025秋招写作案例分析万能模板可套用
- 桂林雁山区中储粮2025秋招笔试行测高频题库及答案
- 医生个人年度工作总结(范文15篇)
- 锅炉节能器施工方案
- 《食品厂员工绩效方案》
- 工程人员驻场服务方案
- 汽车智能技术与应用 教案全套 朱升高 项目1-10 智能网联汽车技术介绍- 车载嵌入式操作系统应用
- 产品方案设计模板
- 企业合规经营规范手册
- 骨与关节运动学基础-运动链(康复护理技术)
- 2.2中国的气候季风气候特殊天气和气象灾害课件八年级地理上学期
- GB/T 4706.74-2024家用和类似用途电器的安全第74部分:缝纫机的特殊要求
- 2024版民间借款抵押合同范本完整版
- T-GDACM 0110-2022 医疗机构中药煎药机煎煮规范
评论
0/150
提交评论