




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
习题第一章一选择题1C语言的主要特点有哪些(B C D E)(多选) A简洁、紧凑,使用方便、灵活,易于学习和应用。 B语言是结构化程序设计语言。 C语言允许直接对位、字节和地址进行操作。 D数据类型丰富。 E语言生成的目标代码质量高。2算法具有五个特性,以下选项中不属于算法特性的是(B)。A有穷性B简洁性C可行性D确定性3C语言程序由什么组成(C)。A子程序B主程序和子程序C函数D过程 4源程序要正确地运行,必须要有什么函数(C)。 Aprintf函数B自定义的函数Cmain函数D不需要函数5以下说法中正确的是(C)。AC语言程序总是从第一个函数开始执行B在C语言程序中,要调用的函数必须在main()函数中定义CC语言程序总是从main()函数开始执行 DC语言程序中的main()函数必须放在程序的开始部分6一个C程序的执行是从(A)。A本程序的main函数开始,到main()函数的结束B本程序文件的第一个函数开始,到本程序文件的最后一个函数的结束C本程序文件的main开始,到本程序文件的最后一个函数的结束D本程序文件的第一个函数开始,到本程序文件的main函数的结束7.下叙述不正确的是(D)。A一个C源程序可由一个或多个函数组成B一个C源程序必须包含一个main函数CC程序的基本组成单位是函数D在C程序中,注释说明只能位于一条语句的后面8C语言是一种面向(D)的程序设计语言。A对象 B窗口 C用户 D过程9在使用Visual C+ 6.0进行编程时,下面哪种错误是它检查不出来的(B)。A编译错误 B逻辑错误 C语法错误 D连接错误10下面哪个产品不能开发C程序(B)。ATurbo C 2.0 BDOS 2.0 CVisual C+ 6.0 DMicrosoft C 6.0二填空题1C语言的语句以 ;结尾。2C程序的基本组成单元是 函数 。3一个C程序有且只能有一个 main函数。4C程序的函数体由 声明部分 开始到 执行部分 结束。5C程序的执行是从 main 开始。6C程序中的每一行可以写 多 条语句。7 逻辑错误 错误只能由编程者自己查找。8将源程序翻译成等价的机器语言的过程叫做 编译 。9编译错误又叫 语法 错误。10若要在程序中使用输入输出函数,那么就要在预处理命令中包含标准输入输出函数所在的头文件,其命令为 #include 。三简答题1请根据自己的理解说说程序设计的几个阶段。答:五个阶段:分析阶段由用户和程序开发人员共同研究确定程序应完成的功能,解决“做什么”的问题。设计阶段由程序设计人员设计软件的总体结构,也就是确定程序的组成模块,以及各模块之间的关系,并设计每个模块的实现细节及具体算法。编码阶段利用程序设计语言编写各算法的程序代码。测试阶段由专门的测试人员对编写完成的程序代码进行测试,尽可能多的发现其中的错误。调试和运行阶段借助一定的调试工具找出程序中错误的具体位置,并改正错误,并在运行期间进行维护。2我们这一章都学了哪两种注释方法,使用上有什么区别。答:“/”是注释,用于注释一行,注释不影响程序的编译和运行。“/*”和“*/”之间括起来的内容也是注释,可用于注释多行。3简述main()函数的作用。答:main()是C程序中唯一可以直接运行的函数,其他函数都直接或间接由main()调用执行。C程序的执行开始于main()函数,一个结构良好的C程序也应结束于main()函数。对于一些较小的程序,用一个main()函数就够了,全部的处理语句都放在main()函数中。对于一些复杂问题,需要进行模块化设计,要将一个复杂问题分解成若干个相对简单的一些子问题,每个子问题由一个或多个函数来处理,main()函数负责总控,并调用相应的函数。4请写出C程序的基本构成。答:(1)源程序是由函数构成的,其中必须有一个且只能有一个主函数(main函数),还可以有到多个其它函数。程序由main函数的首句开始执行,由main函数的最后一句结束,函数中可调用其它函数。(2)语言中用户可以自己定义函数,也可以使用系统提供的库函数(如:printf函数和scanf函数)。要调用的库函数,必须在源程序首部加上相应的库文件包含。 (3)语言函数内部不能定义函数,函数之间是平等的。主函数main可以放在某一用户函数之前,也可以放在某一用户函数之后,但被调用的函数应在主调函数之前定义或说明。5简叙一个C程序的开发过程。答:下面以VC+6.0为例说明一个C程序的开发过程(1) 启动VC(2) 输入源程序(C语言代码)(3) 源程序存盘(4) 编译连接运行程序(5) 若编译有错,改错,再次编译连接运行程序(6) 查看程序结果(7) 若程序结果有错,重复步骤(5)(8) 程序结果正确,结束。四程序设计题1编写一个程序,输出字符串this is my first c program。#include main() printf(*);printf( );printf(*);2编写一个程序,输出下面图形:**3试编写一个程序,利用printf()函数,输出以下图形。 * * * * *#include main() int i,j,k; for(i=0;i3;i+) /*输出上面3行*号*/ for(j=0;j2-i;j+) printf( ); /*输出*号前面的空格*/ for(k=0;k=2*i;k+) printf(*); /*输出*号*/ printf(n); /*输出完一行*号后换行*/ for(i=0;i2;i+) /*输出下面2行*号*/ for(j=0;j=i;j+) printf( ); for(k=0;k3-2*i;k+) printf(*); printf(n); 4模仿本章所学的例题试写一个C程序,要求输入两个整数,求出他们的和并输出结果。#include main()int a,b;printf(Input the intager a:);scanf(%d,&a);printf(Input the integer b:);scanf(%d,&b);printf(sum=%d,a+b);5试编写一个C程序,计算一个整数的平方。#include main()int a;printf(Input the intager a:);scanf(%d,&a);printf(a*a=%d,a*a);第二章习题一选择题1以下变量名全部合法的是(A)AABC、L10、a_b、alB?123、print、*p、a+b C_12、Zhang、a/b、11fDLi_Li、P、for、1012若变量a、i已经正确定义,且i已经正确赋值,合法的赋值语句是(B)Aa= =1B+i;Ca=a+=5;D+(i+1);3存储字符串abc376x所需的字节数是(D)/此处改了原题。A11B12C6D74若题中各变量已经正确定义并赋值,下面符合C语法的表达式是(B)Asum%5.8Ba+,a=4+d+eCint(25.5)%3 Da=b+c=a+15已有定义语句:int a=5,b=6,c=7;float d=8.8;以下能正确表示数学式的C语言表达式是(B )Aa/(b+c)*d B1/d* a/(b+c)Ca/(b+c)/dDa/b=1;b=a%26能表示条件的表达式是(D)A0=x=0,x=0&xb)&(n=cd)之后,n的值为(B)A1B2C3D48已知x=43,ch=A,y=0,则表达式(x=y&ch0|a4)?5:6的结果是 6 ;设 int x=5,y=6;则表达式x=x+y的结果是 0 。3设a=3,b=-4,c=5,表达式!(bc)+(b!=a)|(a+b)&(b-c)的值为 1 。4设a的值是5,则a+=a-=a*=6的值为 0 。5设a=3,b=-4,c=5,表达式a+-c+b+的值是 -6 ,(后半题有错,+a-c+b非法。分三种情况讨论)+a-c+的值是 -1 ,b的值是 -4 。 +a-c+b的值是 -5 。,+a-c+-b的值是 3 。6以下程序的运行结果是 341,525,U 。#includevoid main()int a=0x155;printf(“%d,%o,%c”,a,a,a);7已知A的ASCII码为65,下面程序运行结果是 B,66 。void mainchar ch; ch=B; printf(%c,%d,ch,ch);8以下程序的运行结果是 7 。#includevoid main() int i,j; float a,b; char c; long m,n; i=5;j=-3; a=25.5;b=3.0; m=a/b; n=m+i/j; printf(%dn,n);9以下程序运行结果是 1,0,3 。#includevoid main()int x=-1,y=4;int k;k=x+=0&!(y-=0);printf(%d,%d,%d,k,x,y);10以下程序输入三个整数值给a,b,c,程序把b中的值给a,把c中的值给b,把a中的值给c,然后输出a,b,c的值。请填空。 #include void main() int a,b,c; int temp; printf(Enter a,b,c:); scanf(%d%d%d, &a,&b,&c ); temp=a; a=b; b=c; c=temp; printf(a=%d b=%d c=%dn,a,b,c); 三程序设计1用标准输入函数scanf()将十进制数500赋给a,再将其按照十进制、八进制、十六进制输出。#include main()int a;printf(Input the intager a:);scanf(%d,&a);printf(a=%d,a); /以十进制格式输出printf(a=%o,a); /以八进制格式输出printf(a=%x,a); /以十六进制格式输出printf(na=%d,%o,%xn,a,a,a); /各种格式混合输出2不借用第三个变量将a、b两个变量中的值交换。#includevoid main() int a=3,b=4; a=a+b; b=a-b; a=a-b; printf(a=%d,b=%dn,a,b);3用getchar()函数输入一个大写字母,再用putchar函数输出其对应的小写字母。#include void main( ) char ch; ch=getchar( ); putchar(ch=A & ch=Z ? ch+32:ch);putchar ( n);4要将“China”译成密码,密码规则是:用原来的字母后面的第四个字母代替原来的字母。例如,字母“A”后面第四个字母是“E”,则用E代替“A”。因此,“China”应译为“Glmre”。编写一程序,用赋初值的方法使c1、c2、c3、c4、c5五个变量的值分别为C、h、i、n、a,经过运算,使c1、c2、c3、c4、c5分别变为G、l、m、r、e,并输出。#include”stdio.h”main()char c1=C,c2=h,c3=i,c4=n,c5=a; c1+=4; c2+=4; c3+=4; c4+=4; c5+=4; printf(“keywords=%c%c%c%c%c”,c1,c2,c3,c4,c5);5已知三条边a、b、c,求三角形面积(假定输入的三条边能构成三角形)。计算三角形面积的海伦公式: 其中#include #include main() float a,b,c,s,area; scanf(“%f%f%f”,&a,&b,&c); s=(a+b+c)/2.0; area=sqrt(s*(s-a)*(s-b)*(s-c); printf(“a=%f b=%f c=%f s=%f”,a,b,c,s); printf(“area=%fn”,area);第三章习题一选择题1结构化程序设计中,程序的三种基本控制结构是(D)A) 过程 函数 子程序 B) 递归 递推 循环C) 调用 返回 转移 D) 顺序 选择 循环2已知 int x=10,y=20,z=30; 以下语句执行后x,y,z的值是(D)if(xy)z=x;x=y;y=z;A)20 10 10 B)10 20 30C)10 10 10 D)20 30 303C语言对嵌套if语句的规定是:else总是与(D)配对。A) 其之前最近的if B) 第一个if C) 缩进位置相同的if D) 其之前最近的且尚未配对的if4若执行以下程序时从键盘上输入3和4,则输出结果是(C)#includevoid main() int a,b,s; scanf(%d%d,&a,&b); s=a; if(a0) y=-1;else y=0; -1 (x0) 1 (x0) 0 (x0) 0 (x0) 0 (x0) -1 (x0) /此处改了原题。6若a和b均是正整型变量,以下正确的switch语句是(C)A)switch(pow(a,2)+pow(b,2) case 1: case 3: y=a+b; break; case 0: case 5: y=a-b; B)switch(a*a+b*b); case 3: case 1: y=a+b; break; case 0: y=b-a; break;C)switch( a ) default: x=a+b; case 10: y=a-b; break; case 11: x=b*a; break;D)switch( a+b ) case10: y=a-b; break; case11: x=b*a; break;7设有以下程序,则(B)void main( )int x=0,s=0;while (!x!=0)s+=+x;printf(%d,s);A) 运行后输出0 B) 运行程序后输出1C) 程序中有非法表达式 D) 该程序执行无限次8以下循环体执行次数是(B)void main()int i,j;for(i=0,j=1;i+y;x=i+) i=x; B)for( ; ; x+=i)C)while(1) x+; D)for(i=10; ;i-) sum+=i;10有下面程序段,则(D)for(t=1;t=100;t+)scanf(%d,&x);if(x10) continue;printf(“%3d”,t);A)当x=0时,什么也不输出C)printf函数永远也不执行 D)最多允许输出100个不小于10的整数/此处改了原题。二填空题1以下程序运行结果是 4 。#include 3 void main() int a=3,b=4,c=5;if(ba)printf(%dn,b);printf(%dn,a);2以下程序运行结果是 a=2,b=1 。#includevoid main() int x=1,y=0,a=0,b=0;switch(x) case 1:switch(y) case 0:a+;break;case 1:b+;break;case 2:a+;b+;break;printf(a=%d,b=%dn,a,b);3以下程序运行结果是 0 2 4 6 8 10 。#includevoid main() int i; for(i=0;i=10;i+=2) printf(%3d,i);4若i为整型变量,则以下循环执行次数是 2 。for(i=2;i!=0;) printf(%d,i-);5下面程序的运行结果是 0 。#includevoid main() int y=10; doy-; while(-y); printf(%dn,y-);6程序填空:下面程序是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。#includevoid main()int n=0,c;c=getchar();while( c!=n ) if( c=48&c=57 ) n+; fflush (stdin);/有此句时可每敲一个字符回一次车。无此句时敲完所有字符回一次车。 c=getchar();printf(%d,n);7以下程序运行结果是 13579 。#includevoid main() int i; for(i=1;i=i+2) if(i10) break; printf(%d ,i); 8程序填空:下面程序的功能是把100到200之间的不能被3整除的数输出。#includevoid main() int n;for(n=100; n=200 ;n+) if(n%3=0) /此处改了原题。 continue ; printf(%d ,n);9在空白位置填写语句,使得下列程序在输入n后,能够求出1+1/2+1/3+1/4+.+1/n的值#includevoid main()float s=0 ; int n,i=1; scanf(%d,&n); for(i=1;i=n;i+) /此处改了原题。 s= s+1.0/i ; printf(sum=%fn,s);10以下程序的功能是:从键盘上输入若干学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。请填空:#includevoid main() float x,max=0,min=100; /此处改了原题。 scanf(%f,&x); while( x=0 ) if(xmax ) max=x; if( xmin ) min=x;scanf(%f,&x); printf(max=%fnmin=%fn,max,min);三程序设计题1编写一个程序从键盘输入圆锥体的半径r和高度h,计算其体积。#include #definePI3.14voidmain()floatr,h;scanf(%f,%f,&r,&h);printf(%f,r*r*PI*h/3);2编写程序,输入一个实型数x,按照下面分段函数要求输出y的值: x (x1)y= 3-x/5 (1=x=10)#include #include main()float x,f;scanf(%f,&x);if(x=1&x10) f=3-x/5;else f=fabs(11-3*x);printf(%f,f);3从键盘输入17之间的数字,输出表示一个星期中对应的某一天的英文单词,例如,输入2时,输出Tuesday,请用switch语句完成此程序的编制。#include main()int i;scanf(%d, &i);switch(i)case 1: printf(Mondayn);break;case 2: printf(Tuesday n);break;case 3: printf(Wendsday n);break;case 4: printf(Thirsday n);break;case 5: printf(Friday n);break;case 6: printf(Saturday n);break;case 7: printf(Sunday n);break;default: printf(Error!n);4编写程序,输入n,计算。#includemain()int n,i;float s=0,p=0;scanf(%d,&n);for(i=1;in+1;i+,i+) s=1.0/i-1.0/(i+1); p=p+s;printf(%fn,p);5编写程序输出如下图案:*#include main() int i=1,j=1,k=1; for(i=1;i=7;i+) /*外循环控制行数*/ for(j=1;j=14-2*i;j+) /*内循环控制空格的输出个数*/ printf( ); for(k=1;k=2*i;k+) /* 内循环控制星号的输出*/ printf(*); printf(n); /*回车另起一行的控制,位于最外层循环*/ 说明:打印这个图形用两层循环控制。外循环控制输出行数;两个并列的内循环控制输出每行的空格数和*号数字,空格数为14-2i,*数为2i。第四章习题一、选择题1以下能正确定义一维数组的选项是(B)。Aint num(4*2);Bint num4*2;Cint long8;Dint num(8);2若有以下定义,则正确的叙述为(C)。 char x =abcdefg char y =a,b,c,d,e,f,g;A数组x和数组y中的数据完全相同 B数组x和数组y的长度相同 C数组x的长度大于数组y的长度 D数组x的长度小于数组y的长度3以下选项中,不是C语言合法字符串常量的是(B)。A121By= CnnDABCDx6d4若有定义“double a10;”则a数组元素下标的上下限分别是(C)。A0,10B1,9 C0,9D1,105以下叙述中正确的是(C)。A函数名strcpy的作用是比较两个字符串的大小B使用putchar函数时,必须在之前包含头文件string.h C函数名strcmp的作用是比较两个字符串的大小D调用gets函数只能取得一个字符串中空格或回车等分隔符之前的部分6以下能正确定义二维数组的是(C)。Aint num(4,2);Bint num2;Cint num 42;Dint short42;7. 以下叙述中错误的是(D)。 A对于int型数组,不可以直接用数组名对数组进行整体输入或输出 B数组名代表的是数组所占存储区的首地址,其值是地址常量不可改变 C可以在对数组初始化的时候确定数组元素的个数D当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息 8若有数组“int a10=1,2,3,4,5,6,7,8,9;”,则数值最大和最小元素的下标分别是(C)。A9,1B9,0C8,9D8,09下列语句中正确的是(B)。Achar a3=a,b,c;Bchar a3= ab,df;Cchar a3= abc;Dchar a3= abc,1;10.有字符数组定义char a=abcnn,则数组a中有(A)个元素。A5B7C6D8二、填空题1数组是具有 相同 的数据类型的一组变量的有序集合,构成数组的这些变量称为 下标变量 。在定义数组时对数组中的每一个元素赋值叫做数组的 初始化 ,对全部的数组元素赋初值时,可以不指定数组的 下标 长度。2若已定义:“int a10, i;”以下fun( )函数的功能是:在第一个循环中给前10个数组元素依次赋1、2、3、4、5、6、7、8、9、10;在第二个循环中使a数组前10个元素中的值对称折叠,变成1、2、3、4、5、5、4、3、2、1,请填空。fun( int a ) int i; for(i=1; i=10; i+) ai-1 =i; for(i=0; i5; i+) a9-i =ai;3将杨辉三角形的数据赋给二维数组的下半三角,请填空。11 11 2 11 3 3 11 4 6 4 1其构成规律是:第0列元素和主对角线元素均为1;其余元素为其左上方和正上方元素之和;数据的个数每行递增1。请将程序补充完整。#include #define N 6void main( ) int i,j; int xNN; for(i=0;iN;i+) xi0= xii =1; for(j=1;ji;j+) xij= xi-1j+xi-1j-1 ; for(i=0;iN;i+)for(j=0;ji+1;j+)printf(%3d,xij);printf(n);4以下程序统计从终端输入的字符中,大写字母的个数。用#号作为输入结束标志,请填空:(原题改动几处)#include #include main() int num26,i; char c; for (i=0;i26;i+) numi=0; while ( (c=getchar() !=#) if (isupper(c)numc-A+=1; for (i=0;ia1,则交换;然后比较第二个数与第三个数;依次类推,直至第n-1个数和第n个数比较为止,即第一趟冒泡排序,结果最大的数被安置在最后一个元素位置上;对前n-1个数进行第二趟冒泡排序,结果使次大的数被安置在第n-1个元素位置;重复上述过程,共经过n-1趟冒泡排序后,排序结束。4C语言中有没有字符串变量,若有请举例,若没有又要如何表示字符串变量?答:无。用自符数组存放字符串,结尾加0。5分析以下程序的运行结果:#include main ( ) int a10,i,k=0; for(i=0;i10;i+) ai=i; for(i=0;i4;i+)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年初识火电运行值班员工作职责与考试要点解析
- 阳光版小学一班级下册 跳跃类游戏
- 【教案版】小学一班级上册 跳绳
- 17水平二技巧《前滚翻1》教案
- 2025年农村水源保护及治理工作面试题集及答案解析
- 2025年软件测试工程师技能进阶教程及实战经验
- 2025年网络安全工程师专业模拟题与答案解析
- 电信运营行业知识培训课件
- 2025年炼钢原理及实践应用面试题解析
- 2025年高级营养师专业能力提升考试模拟题与答案解析
- 传统白酒生产项目商业计划书
- 2025年教师资格证考试综合素质(中学)试题及答案
- 江苏省淮安市2024-2025学年高一下学期期末考试物理试卷(解析版)
- 《基孔肯雅热防控技术指南(2025年版)》解读课件
- 2025年呼伦贝尔市生态环境局所属事业单位引进人才(2人)模拟试卷附答案详解(综合卷)
- 2025年中国建设银行招聘考试(综合知识)历年参考题库含答案详解(5套)
- BMS基础知识培训课件
- 承接战略贴近业务人力资源规划设计到应用
- 2025年广元市专业技术人员公需科目继续教育考试试题及答案
- 消防外管网维修合同范本
- 2025版新能源项目保证担保借款合同
评论
0/150
提交评论