C题集含答案
《面向对象程序设计c》综合复习题集及答案详解
《面向对象程序设计c》综合复习题集及答案详解综合复习题集一、单选题1.C++源程序文件的缺省扩展名为(A)。
A.cppB.e某eC.objD.lik2.由C++源程序文件编译而成的目标文件的缺省扩展名为(C)。
A.cppB.e某eC.objD.lik3.由C++目标文件连接而成的可执行文件的缺省扩展名为(B)。
A.cppB.e某eC.objD.lik4.编写C++程序一般需经过的几个步骤依次是()。
A.编译、编辑、连接、调试B.编辑、编译、连接、调试C.编译、调试、编辑、连接D.编辑、调试、编辑、连接5.以下标识符中不全是保留字的是()。
A.caeforintB.defaultthenwhileC.boolclalongD.gotoreturnchar6.能作为C++程序的基本单位是()。
A.字符B.语句C.函数D.源程序文件7.程序中主函数的名字为()。
A.mainB.MAINC.MainD.任意标识符8.C++程序的基本模块为()。
A.表达式B.标识符C.语句D.函数9.可用作C++语言用户标识符的一组标识符是()。
A.voiddefine+WORDB.a3_b3_123YNC.for-abcCaeD.2aDOizeof10.存储以下数据,占用存储字节最多的是()。
A.0B.‘0’C.“0”D.0.011.程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用()符号作为分隔符。
A.空格或逗号B.逗号或回车C.逗号或分号D.空格或回车12.设”inta=12;”,则执行完语句”a+=a某a;”后,a的值是()。
A.12B.144C.156D.28813.假设在程序中a、b、c均被定义成整型,所赋的值都大于1,则下列能正确表示代数式1/abc的表达式是()。
A.1.0/a某b某cB.1/(a某b 某c)C.1/a/b/(float)cD.1.0/a/b/c14.设”inta=15,b=26;”,则”cout<A.15B.26,15C.15,26D.2615.设某是一个bool型的逻辑量,y的值为10,则表达式某&&y的值为()。
C语言程序设计习题集(有答案)
高等教育自学考试C语言程序设计(二)课程代号(05772)同步练习题班级学号姓名二O 一六年三月目录第一章C语言概述第二章基本数据类型第三章控制结构第四章运算符和表达式第五章函数第六章数组第七章字符与字符串第八章变量类别与编译预处第九章指针第十章结构体、共用体和枚举类型第十一章文件第一章C语言概述一、单项选择题1.在计算机上可以直接运行的程序是()。
A.高级语言程序B.汇编语言程序C.机器语言程序D.C语言程序2. 一个C语言程序是由()A.若干函数组成B.若干过程组成C.若干主程序组成D.若干子程序组成3. C语言不具有的特点是()A.具有结构化的控制语句B.数据类型丰富C.语法限制不太严格,程序设计自由度大D.在可移植性上,C语言比其他语言差4. 以下叙述不正确的是()A.一个C语言程序可由一个或多个函数组成B.一个C语言程序必须包含一个主函数C.C语言程序的基本组成单位是函数D.在C语言程序中,注释说明只能位于一条语句的后面5. 以下叙述正确的是()A.C语言比其他语言高级B.C语言可以不用编译就能被计算机识别和执行C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D.C语言出现的最晚,所以具有其他语言的一切优点二、填空1. 计算机语言的发展经过了、和等阶段。
2. C语言既适合编写,也适合编写应用软件。
标准答案一、单项选择题CADDC二、填空1. 机器语言,汇编语言,高级语言2. 系统软件第二章基本数据类型一、单项选择题1.正确的C语言用户自定义标识符是()A.printB.floatC.when?D.random%22.属于C语言基本数据类型的是( )A.指针型B.无符号整型C.数组型D.结构型3.C语言的长整型数值在计算机中占用的字节个数是( )A.1B.2C.3D.44.C语言中,″\x3d″在内存中占用的字节数是( )A.1B.2C.4D.55.下列关于C语言的叙述错误的是( )A. 英文字母大小写不加以区分B. 不同类型的变量可以出现在同一个表达式中C. 在赋值表达式中赋值号两边的类型可以不同D. 某些运算符在不同的场合可以有不同的含义6.下列转义字符中错误的是( )A. ′\000′B. ′\14′C. ′\x111′D. ′\2′7.下列标识符中,不是C语言保留字的是( )A. charB. whileC. minD. default8.下列保留字中用于构成循环结构的是()A.ifB.whileC.switchD.default9. 数据-324在二进制文件和文本文件中所占的字节数分别是()A.2,2B.2,4C.4,2D.4,410. 请选出可以作为C语言用户标识符的一组标识符()A.void, define, WORD B.A3_B3, _123, abcC.FOR, -abc, Case D.2a, Do, Sizeof11.下列运算符优先级最高的是()A.关系运算符B.赋值运算符C.算术运算符D.逻辑运算符12. sizeof(float)是()A.一种函数调用B.一个不合法的表示形式C.一个整型表达式D.一个浮点表达式13. 下列叙述不正确的是()A.一个C语言程序可由一个或多个函数组成B.一个C语言程序必须包含一个main函数C.C语言程序的基本组成单位是函数D.在C语言程序中,注释说明只能位于一条语句的后面14. 编译C语言程序时,程序中的注释部分将()A.不参加编译,也不会出现在目标程序中B.参加编译,但不会出现在目标程序中C.不参加编译,但会出现在目标程序中D.参加编译,并会出现在目标程序中15. 下列字符串常量不正确的是()A.'abc' B."12'12" C."0" D." "16. 下列4个选项中,均是合法整型常量的是()A.160 -0xffff 011B.-0xcdf 01ª0xeC.-01 986,012 0668D.-0x48a 2e5 0x17. 以下选项中不属于C语言类型的是()A.signed short int B.unsigned long intC.unsigned int D.long short18. 数值029是一个()A.八进制数B.十六进制数C.十进制数D.非法数19. 在C语言中,要求运算数必须是整型的运算符是()A./ B.++ C.!=D.%20. 当c的值不为0时,以下能将c的值赋给变量a,b 的是()A.c=b=a B.(a=c) || (b=c)C.(a=c) && (b=c) D.a=c=b二、填空1. 表示空类型的保留字是_____________。
c语言习题集及答案
计算机系统概述一、简答题1.什么是计算机系统?包括哪几部分?答:计算机系统是一种动态实体,用于解决问题以及与它所处的环境进行交互;计算机系统包括硬件、软件和它们管理的数据。
3.简述计算机软件各个时代的主要特征。
答:第一代机器语言编写,第二代高级语言编写,第三代出现操作系统,第四代出现结构程序设计,第五代出现面向对象的程序设计语言。
4.计算机是如何分类的?答:按工作原理和运算方式分为数字电子计算机(Digital Computer)、模拟电子计算机(Analog Computer)和数字模拟混合计算机(Hybrid Computer);按设计目的分为通用计算机和专用计算机;按用途科学计算、工程计算机用的计算机、工业控制用的计算机和数据处理用的计算机;按规模和性能分为巨型机、大型机、小型机、微型机、工作站、服务器、网络计算机和嵌入式计算机等。
5.计算机具有哪些特点?答:运算速度快、精度高;具有逻辑判断功能;具有记忆功能;自动化程度高、通用性强。
6.衡量计算机性能的指标有哪些?答:从几个方面衡量,衡量cpu的指标有字长、时钟周期和主频,衡量内存的指标有内存容量、存取周期,衡量外设的指标有输入输出最高频率。
7.简述计算机主要应用在哪些方面。
答:科学计算、信息传输和信息处理、实时控制、辅助功能(设计/制造/教学)、艺术和娱乐。
8.简述计算机系统抽象分层,及每一层的功能。
答:主要分为七层,信息表示层反映了在计算机上表示信息的方式,它是一个纯概念层;硬件层探讨计算机系统的物理硬件组成;程序设计层负责解决人们的一些问题、用于实现计算的指令以及管理数据;操作系统层用来管理计算机的各种资源,提供人与计算机交互的接口;网络通信层是计算机系统运行的基础,计算机连接到网络上共享信息和资源;应用软件层的重点则是将计算机与一个实际应用领域相结合。
计算机中的信息表示一. 判断题1.二进制数在计算中很重要,因为二进制数可以被转换成以任何数为基数的数。
C语言习题集(含答案)
一、单选题:(1)在C语言提供的合法的关键字是( )A)swicth B) cher C)Case D)default(2)在C语言中,合法的字符常量是()A)’\084’ B) ’\x43’C)’ab’D) "\0”(3)若有定义和语句:char s[10]: s="abcd”;printf(”%s\n",s);则结果是(以下u代表空格)()A)输出abcd B)输出aC)输出abcduuuuu D)编译不通过(4) 若有定义和语句:int **pp, *p,a=10, b=20;pp=&p;p=&a; p=&b; printf("%d,%d\n",*p,**pp);则输出结果是:()A)10,20 B)10,10 C)20,10 D)20,20(5)若有以下定义和语句:int u=010,v=0x10,w=10;printf("%d,%d,%d\n”,u, v, w);则输出结果是()A) 8,16,10B)10,10,10 C)8,8,10 D) 8,10,10 (6) 若有以下定义和语句char c1=' b', c2='e’;printf(”%d,%c\n", c2-c1,c2—'a’+”A");则输出结果是( )A)2,M B)3,EC)2,E ?D)输出项与对应的格式控制不一致,输出结果不确定(7)若有以下定义:char s[20]=”programming”,*ps=s;则不能代表字符o的表达式是( )A)ps+2 B) s[2]C) ps[2]D) ps+=2,*ps(8)若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是() for (i=5; i; i—-)for(j=0;j<4; j++){。
}A) 20B) 25 C)24 D) 30(9)若有以下定义和语句:char *s1=”12345",*s2="1234";printf("%d\n",strlen(strcpy(s1,s2)));则输出结果是()A)4B)5 C)9 D)10(10)若有以下定义和语句:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则不能表示a数组元素的表达式是()A) *p B) a[10]C)*a D)a[p-a](11)下面程序的输出是()main(){char *s=”121";int k=0,a=0,b=0;do{k++;if(k%2==0) {a=a+s[k]—’0’;continue;}b=b+s[k]—’0';a=a+s[k]—'0';}while (s[k+1]);printf("k=%d a=%d b=%d\n",k,a,b);A) k=3 a=2 b=3 B) k=3 a=3 b=2C)k=2 a=3 b=2D) k=2 a=2 b=3(12) 下面程序的输出是( )main(){ unsigned a=32768;printf("a=%d\n”,a);}运行结果: —32768A)a=—32768 B)a=32767C)a=-32767 D)a=—1(13) 若有以下定义:float x; int a,b; 则正确的switch 语句是( )A)switch(x) B) switch(x){case1.0:printf("*\n”);{case1, 2:printf(”*\n”);case2。
程序设计语言C_习题集(含答案)
《程序设计语言C》课程习题集一、单选题1.在C语言中,合法的长整型常数是A) OL B) 4962710 C) 324562& D) 216D2.以下有4组用户标识符,其中合法的一组是A) For B) 4d C) f2_G3 D) WORD3.以下选项中合法的字符常量是A)"B" B) '\010' C) 68 D) D4.以下程序的输出结果是main(){ int a=3;printf("%d\n",a+(a-=a*a) );}A) -6 B)12 C) 0 D) -125.设a、b、C、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值位为A) 0 B) 1 C)2 D) 36.t为int类型,进人下面的循环之前,t的值为0while( t=l ){ ……}则以下叙述中正确的是A) 循环控制表达式的值为0 B) 循环控制表达式的值为1C) 循环控制表达式不合法D) 以上说法都不对7.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是A) 地址传递B) 单向值传递C) 由实参传给形参,再由形参传回实参D) 传递方式由用户指定8.以下程序的输出结果是main(){ int i, a[10];for(i=9;i>=0;i- -) a[i]=10-i;printf("%d%d%d",a[2],a[5],a[8]);}A) 258 B) 741 C) 852 D) 3699.以下选项中,不能正确赋值的是A) char s1[10];s1="Ctest"; B) char s2[]={'C', 't', 'e', 's', 't'};C) char s3[20]="Ctest"; D) char *s4="Ctest\n";10.以下程序的输出结果是union myun{ struct{ int x, y, z; } u;int k;} a;main(){ a.u.x=4; a.u.y=5; a.u.z=6;a.k=0;printf("%d\n",a.u.x);}A)4 B) 5 C) 6 D) 011.以下叙述正确的是A) C语言比其他语言高级B) C语言可以不用编译就能被计算机识别执行C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D) C语言出现的最晚、具有其他语言的一切优点12. C语言中用于结构化程序设计的三种基本结构是A) 顺序结构、选择结构、循环结构B) if、switch、breakC) for、while、do-while D) if、for、continue13.下列关于C语言用户标识符的叙述中正确的是A) 用户标识符中可以出现下划线和中划线(减号)B) 用户标识符中不可以出现中划线,但可以出现下划线C) 用户标识符中可以出现下划线,但不可以放在用户标识符的开头D) 用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头14.有以下程序段int m=0,n=0; char c=’a’;scanf("%d%c%d",&m,&c,&n);printf("%d,%c,%d\n",m,c,n);若从键盘上输入:10A10<回车>,则输出结果是:A) 10,A,10 B) 10,a,10 C) 10,a,0 D) 10,A,015.有以下程序main(){ int i;for(i=0;i<3;i++)switch(i){ case 1: printf("%d",i);case 2: printf("%d",i);default: printf("%d",i);}}执行后输出的结果是A) 011122 B) 012 C) 012020 D) 12016.有以下程序main(){ int i=10,j=1;printf("%d,%d\n",i--,++j);}执行后输出的结果是A) 9,2 B) 10,2 C) 9,1 D) 10,117.有以下程序void f(int x,int y){ int t;if(x<y){ t=x; x=y; y=t; }}main(){ 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) 5,3,4 C) 5,4,3 D) 4,3,518.有以下程序main(){ char *s[]={"one","two","three"},*p;p=s[1];printf("%c,%s\n",*(p+1),s[0]);}执行后输出结果是A) n,two B) t,one C) w,one D) o,two19.有以下程序main(){ int m[][3]={1,4,7,2,5,8,3,6,9};int i,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 920.设有如下说明typedef struct{ int n; char c; double x;}STD;则以下选项中,能正确定义结构体数组并赋初值的语句是A) STD tt[2]={{1,’A’,62},{2,’B’,75}};B) STD tt[2]={1,"A",62,2,"",75};C) struct tt[2]={{1,’A’},{2,’B’}};D) struct tt[2]={{1,"A",62.5},{2,"B",75.0}};21.以下选项中属于C语言的数据类型是A)复数型B)布尔型C)集合型D)整型22.一个C程序的执行是从A)main()函数开始,直到main()函数结束B)第一个函数开始,直到最后一个函数结束C)第一个语句开始,直到最后一个语句结束D)main()函数开始,直到最后一个函数结束23.设有语句int a=3;则执行语句a+=a-=a*a;后,变量a的值是A)3 B)0C)-12 D)924.若有 char c[5]={'c','d','\0','e','\0'};则执行语句printf("%s",c);结果是A)cd\0e B)'c''d' C)cd D)cd e25.已知:int a[2][3]={1,2,3,4,5,6}, (*p)[3]=a;下列表达式不是4的是A)*(*p+3) B)*p+3 C)*(*(p+0)+3) D)a[0][3]26.以下有宏替换不正确的叙述A)宏替换不占用运行时间 B)宏名无类型C)宏替换只是字符串替换D)宏名必须用大写字母表示27.执行char str[10]=”Ch\nina”; strlen(str)的值是A)5 B)6 C)7 D)928.下面程序的输出结果是#define POWER(x) (x*x)main(){int i=4; printf("%d",POWER(i-2)); }A)-9 B)-7 C)5 D)-629.在定义int a[3][4];后,第10个元素是A)a[2][4] B)a[3][2] C)a[3][3] D)a[3][1]30.下面程序的输出结果是typedef struct{long x[2];short y[4];char z[8];}MYTYPE;MYTYPE a;main(){ printf("%d\n",sizeof(a));}A)2 B)8 C)14 D)2431.以下能正确进行字符串赋值的是A)char s[5]={‘a’,’e’,’I’,’o’,’u’} B)char s[5];s=”good”C)char s[5]=”abcd” D)char s[5];s[]=”good”32.若有float x;则sizeof(x)和sizeof(float)两种描述A)都正确B)都不正确C)前者正确,后者不正确D)后者正确,前者不正确33.若有代数式3ae/(bc),则不正确的C语言表达式是A)3*a*e/b*c B)3*a*e/b/c C)a/b/c*e*3 D)a*e/c/b*334.下面程序的运行结果是Main( ){struct cmplx{ int x;int y;}cnum[2]={1,3,2,7};Printf(“%d\n”,cnum[0].y/cnum[0].x*cnum[1].x);}A)0 B)1 C)3 D)635.若有以下说明和语句,且0<=i<10,则()是对数组元素的错误引用int a[]={1,2,3,4,5,6,7,8,9,0},*p,i;p=a;A)*(a+i) B)a[p-a] C)p+i D)*(&a[i])36.设有以下宏定义:#define M 2#define X(m) ((M+2)*m)则执行语句:z=2*(M+X(3+2));后,z的值为A)44 B)45 C)32 D)3337.在如下程序段中的while循环int k=0;While(k=1) k++;A)有语法错,不能执行B)无限循环C)一次都不执行D)执行一次38.下列程序运行的结果为#include<stdio.h>Main(){ int k=0;Char c=’A’;Do{switch(c++){ case ‘A’:k++;break;Case ‘B’:k- -;break;Case ‘C’:k+=2;break;Case ‘D’:k=k%2;break;Case ‘E’:k=k*10;break;Default:k=k/3;}K++;}while(c<’G’);Printf(“k=%d”,k);}A)k=4 B)k=6 C)k=7 D)k=839.下列程序运行的结果为#include<stdio.h>fun(int x,int y,int *cp,int *dp){*cp=x+y;*dp=x-y;}main(){ int a,b,c,d ;a=30 ;b=50;fun(a,b,&c,&d);printf(“%d,%d\n”,c,d);}A)50,30 B)30,50 C)80,-20 D)80,2040.阅读程序回答问题:main( ){ int i,j,k,m=0;for(i=1;i<4;i++)for(j=1;j<4;j++)for(k=1;k<4;k++)m++;printf(“M=%d”,m);}以上程序输出M=( ).A)3 B)6 C)9 D)2741.能将高级语言编写的源程序转换为目标程序的是A)链接程序B)解释程序C)编译程序D)编辑程序42.以下4组用户定义标识符中,全部合法的一组是A)main B)If C)txt D)intenclude -max REAL k_2sin turbo 3COM _00143.设有以下定义int a=0;double b=1.25;char c=’A’;#define d 2则下面语句中错误的是()A)a++ B)b++ C)c++ D)d++;44.以下4个选项中,不能看作一条语句的是A){;} B)a=0,b=0,c=0 C)if(a>0) D)if(b==0) m=1;n=2;45.有以下程序main( ){ char k; int i;for(i=1;i<3;i++){ scanf("%c",&k);switch(k){ case '0': printf("another\n");case '1': printf("number\n");}}}程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是A)another B)another C)another D)numbernumber number number numberanother number46.有以下程序void f(int v , int w){ int t;t=v;v=w;w=t;}main( ){ int x=1,y=3,z=2;if(x>y) f(x,y);else if(y>z) f(y,z);elsef(x,z);printf("%d,%d,%d\n",x,y,z);}执行后输出结果是A)1,2,3 B)3,1,2 C)1,3,2 D)2,3,147.有以下程序段int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5];b中的值是A)5 B)6 C)8 D)948.有以下程序#define f(x) x*xmain( ){ int i;i=f(4+4)/f(2+2);printf("%d\n",i);}执行后输出结果是A)28 B)22 C)16 D)449.设有以下语句typedef struct S{ int g; char h;}T;则下面叙述中正确的是A)可用S定义结构体变量B)可以用T定义结构体变量C)S是struct类型的变量D)T是struct S类型的变量50.有以下程序int a=2;int f(int *a){return (*a)++;}main( ){ int s=0;{ int a=5;s+=f(&a);}s+=f(&a);printf("%d\n",s);}执行后输出结果是A)10 B)9 C)7 D)851.组成C程序的基本单位是A)函数B)标识符C)表达式D)语句52.设int类型的数据长度为2字节,则该类型数据的取值范围A)0至65536 B)0至65535 C)-32767至32768 D)-32768至3276753.在C语言中,逻辑值“真”是用( )表示的。
C语言习题集(含答案).
一、单选题:(1) 在C语言提供的合法的关键字是()A)swicth B) cher C)Case D)default(2)在C语言中,合法的字符常量是()A)'\084' B) '\x43'C)'ab' D) "\0"(3)若有定义和语句:char s[10]: s="abcd"; printf("%s\n",s);则结果是(以下u代表空格)()A)输出abcd B)输出aC)输出abcduuuuu D)编译不通过(4) 若有定义和语句:int **pp, *p, a=10, b=20;pp=&p; p=&a; p=&b; printf("%d,%d\n",*p,**pp);则输出结果是:()A)10, 20 B)10,10 C)20,10 D)20,20(5)若有以下定义和语句:int u=010, v=0x10,w=10;printf("%d,%d,%d\n", u, v, w);则输出结果是( )A) 8,16,10B) 10,10,10 C)8, 8,10 D) 8,10,10(6) 若有以下定义和语句char c1=' b', c2='e';printf("%d,%c\n", c2-c1,c2-'a'+"A");则输出结果是( )A)2,M B)3,EC)2,E ?D)输出项与对应的格式控制不一致,输出结果不确定(7) 若有以下定义:char s[20]="programming",*ps=s;则不能代表字符o的表达式是( )A) ps+2 B) s[2] C) ps[2] D) ps+=2,*ps(8) 若i, j已定义为int类型,则以下程序段中内循环体的总的执行次数是( )for (i=5; i; i--)for(j=0; j<4; j++) {...}A) 20B) 25 C) 24 D) 30(9)若有以下定义和语句:char *s1="12345",*s2="1234";printf("%d\n",strlen(strcpy(s1,s2)));则输出结果是( )A) 4B) 5 C) 9 D) 10(10)若有以下定义和语句:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则不能表示a数组元素的表达式是( )A) *p B) a[10]C)*a D) a[p-a](11)下面程序的输出是( )main( ){ char *s="121";int k=0, a=0, b=0;do{k++;if(k%2==0) {a=a+s[k]-'0';continue;}b=b+s[k]-'0'; a=a+s[k]-'0';}while (s[k+1]);printf("k=%d a=%d b=%d\n",k,a,b);A) k=3 a=2 b=3 B) k=3 a=3 b=2C) k=2 a=3 b=2D) k=2 a=2 b=3(12) 下面程序的输出是( )main( ){ unsigned a=32768;printf("a=%d\n", a);} 运行结果:-32768A)a=-32768 B)a=32767C)a=-32767 D)a=-1(13) 若有以下定义:float x; int a,b; 则正确的switch 语句是( )A)switch(x) B) switch(x){ case1.0: printf("*\n"); { case1, 2: printf("*\n");case2.0: printf("**\n"); case3: printf("**\n");} }C) switch (a+b)D) switch (a+b);{ case 1: printf("\n"); { case 1: printf("*\n");case 1+2: printf("**\n"); case 2: printf("**\n");} }(14) 以下程序输出的结果是( )main( ){ char w[ ][10]={"ABCD","EFGH","IJKL","MNOP"}, k;for (k=1;k<3;k++)printf("%s\n",&w[k][k]);}A) ABCD B) ABCDFGH EFGKL IJMC) EFG D) FGHJK KLO(15)若数组名作实参而指针变量作形参,函数调用实参传给形参的是( )A.数组的长度B.数组第一个元素的值C.数组所有元素的值D.数组第一个元素的地址(16) 若变量已正确定义并赋值,下面符合C语言语法的表达式是( )A) a:=b+1 B) a=b=c+2C) int 18.5%3 D) a=a+7=c+b(17) C语言中运算对象必须是整型的运算符是( )A) %=B) / C) = D) 〈=(18) 若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是( )A) 1 B) 2 C) 2.0 D) 2.5(19) 若变量a、i已正确定义,且i已正确赋值,合法的语句是( )A) a==1 B) ++i; C) a=a++=5; D) a=int(i);(20) 若有以下程序段,int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是( )A) 0 B) 0.5 C) 1 D) 2(21) 有如下程序main( ){ int y=3,x=3,z=1;printf(“%d %d\n”,(++x,y++),z+2);}运行该程序的输出结果是( )A) 3 4 B) 4 2 C) 4 3 D) 3 3(22) 能正确表示逻辑关系:“a≥=10或a≤0”的C语言表达式是( )A) a>=10 or a<=0 B) a>=0|a<=10C) a>=10 &&a<=0 D) a>=10 || a<=0main( ){ 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(24) 有如下程序main( ){ 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.500000D) 1.000000(26) 有如下程序main( ){ int i, sum;for(i=1;i<=3;sum++) sum+=i;printf(“%d\n”,sum);}该程序的执行结果是( )A) 6 B) 3 C) 死循环D) 0main ( ){ int x=23;do{ printf(“%d”,x--);} while(!x); }该程序的执行结果是( )A) 321 B) 23C) 不输出任何内容D) 陷入死循环(28) 有如下程序main( ){ int n=9;while(n>6) {n--; printf(“%d”,n); } }该程序段的输出结果是( )A) 987 B) 876C) 8765 D) 9876(29) 设有说明语句:char a=’\72’;则变量a( )A) 包含1个字符B) 包含2个字符C) 包含3个字符D) 说明不合法(30) 有如下函数调用语句func(rec1,rec2+rec3,(rec4,rec5);该函数调用语句中,含有的实参个数是( )A) 3 B) 4 C) 5 D) 有语法错(31) 有如下程序int func(int a,int b){ return(a+b); }main( ){ 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) 15int *p, a=10,b=1;p=&a; a=*p+b;执行该程序段后,a的值为( )A) 12 B) 11 C) 10 D) 编译出错(33) 对于基类型相同的两个指针变量之间,不能进行的运算是( )A) < B) = C) + D) -(34) 有如下程序long fib(int n){ if (n>2) return(fib(n-1)+fib(n-2));else return(2);}main( ){ printf(“%d\n”, fib(3)); }该程序的输出结果是( )A) 2 B) 4 C) 6 D) 8(35) 在C语言中,函数的隐含存储类别是( )A) auto B) static C) extern D) 无存储类别(36) 有如下程序#define N 2#define M N+1#define NUM 2*M+1main( ){ int i;for(i=1;i<=NUM;i++) printf(“%d\n”,i);}该程序中的for循环执行的次数是( )A) 5 B) 6C) 7 D) 8char fun(char *p){ return p; }该函数的返回值是( )A) 无确切的值B) 形参p中存放的地址值B) 一个临时存储单元的地址D) 形参p自身的地址值(38) 有如下程序段int a=14,b=15,x;char c=’A’;x=(a&&b)&&(c<’B’);执行该程序段后,x的值为( )A) true B) false C) 0 D) 1(39) 有如下说明int a[10]={1,2,3,4,5,6,7,8,9,10}, *p=a;则数值为9的表达式是( )A) *p+9 B) *(p+8) C) *p+=9 D) p+8(40) 若有以下的定义:int t[3][2];能正确表示t数组元素地址的表达式是( )A) &t[3][2] B) t[3] C) t[1] D) t[2](41) 有如下程序main( ){ char ch[2][5]={“6937”,”8254”}, *p[2];int i,j,s=0;for(i=0;i<2;i++) p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>’\0’; j+=2)s=10*s+p[i][j]-‘0’;printf(“%d\n”,s); }该程序的输出结果是( )A) 69825 B) 63825 C) 6385 D) 693825(42)若有以下的定义:int a[ ]={1,2,3,4,5,6,7,88,9,10}, *p=a;则值为3的表式是( )A) p+=2, *(p++) B) p+=2,*++pC) p+=3, *p++ D) p+=2,++*p(43)假定所有变量均已正确说明,下列程序段运行后x的值是( )a=b=c=0; x=35;if (!a) x--;else if(b) ; if(c) x=3; else x=4;A)34 B)4 C)35 D)3(44)在以下一组运算符中,优先级最高的运算符是( )A)<= B)= C)%D)&&(45)若有以下定义和语句:int w[2][3], (*pw)[3]; pw=w;则对w数组元素非法引用是( )A)*(w[0]+2) =*w[0][2]B)*(pw+1)[2]C)pw[0][0] =*w[0][0]D)*(pw[1]+2) =*w[1][2](46)若有以下程序片段:char str[ ]="ab\n\012\\\"";printf("%d\n", strlen(str));上面程序片段的输出结果是( )A)3 B)4 C)6D)12(47)函数调用strcat(strcpy(str1,str2),str3)的功能是( )A)将串str1复制到串str2中后再连接到串str3之后B)将串str1连接到串str2之后再复制到串str3之后C)将串str2复制到串str1中后再将串str3连接到串str1之后D)将串str2连接到串str1之后再将串str1复制到串str3中(48)以下对C语言函数的有关描述中,正确的是( )A) 在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B) C函数既可以嵌套定义又可以递归调用解释:C函数可以递归调用,但不允许嵌套定义C) 函数必须有返回值,否则不能使用函数D) C程序中有调用关系的所有函数必须放在同一个源程序文件中(49) 以下叙述中不正确的是( )A)在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值.B) 在C中,调用函数时,实在参数和对应形参在类型上只需赋值兼容.C) 在C中, 外部变量的隐含类别是自动存储类别.D)在C中, 函数形参可以说明为register变量.(50) 以下程序的输出结果是( )#define sub1(char a, char b) {char c; c=a;a=b;b=c;}#define sub2(char *a, char b) {char c; c=*a;*a=b;b=c;}#define sub3(char *a, char *b) {char c; c=*a;*a=*b;*b=c;}main( ){ char a,b;a='A';b='B';sub3(&a,&b);putchar(a); putchar(b);a='A';b='B';sub2(&a,b);putchar(a); putchar(b);a='A';b='B';sub1(a,b);putchar(a);putchar(b);}A) BABBAB B) ABBBBAC) BABABA D) BAABBA(51)错误的转义字符是( )A) '\091'B) '\\' C) '\0' D) '\''(52)设int a,b,c;执行表达式a=b=1,a++,b+1,c=a+b--后,a, b 和c的值分别是( )A) 2, 1, 2 B) 2, 0, 3 C) 2, 2, 3 D) 2, 1, 3(53) 在C语言中,错误的常数是( )A) 1E+0.0B) 5 C) 0xaf D) 0L( 54) 设int k; 则语句for(k=0; k=1; k++);和语句for(k=0; k==1;k++);执行的次数分别是( )A) 无限和0B) 0和无限C) 都是无限D) 都是0(55)某文件中定义的静态全局变量(或称静态外部变量)其作用域是( )A) 只限某个函数B) 本文件C) 跨文件D)不限制作用域二、程序填空题:(10) 函数pi的功能是根据以下近似公式求π值:(π*π)/6=1+1/(2*2)+1/(3*3)+…+1/(n*n)现在请你在下面的函数中填空,完成求π的功能。
C语言程序设计习题集第4章 循环结构(答案)
第4章循环结构一、选择题1、有以下程序段int k=0;while(k=1)k++;while 循环执行的次数是(A)A)无限次B)有语法错,不能执行C) 一次也不执行D)执行1次2、t为int类型,进入下面的循环之前,t的值为0while(t=1){ …… }则以下叙述中正确的是(B)A) 循环控制表达式的值为0B)循环控制表达式的值为1C) 循环控制表达式不合法D)以上说法都不对3、在C程序中,与while(m)中表达式m完全等价的是(B )A) m==0 B) m!=0 C) m==1 D)m!=14、有以下程序,程序运行后的输出结果是(C).main(){int i=1,sum=0;while(i<=4){sum=sum+i;i=i+1;}printf(“%d\n”,sum);}A)4 B)5 C)10 D)死循环5、有以下程序,程序运行后的输出结果是(D ).main(){int i=1,sum=0;while(i<=4)sum=sum+i;i=i+1;printf(“%d\n”,sum);}A)4 B)5 C)10 D)死循环6、有如下程序main(){int n=9;while(n>6){n-—;printf(“%d",n);}}该程序段的输出结果是(B)A)987 B) 876 C) 8765 D) 98767、以下程序的输出结果是(B)main(){int num= 0;while(num<=2){num++;printf(“%d\n”,num);}}A) 1 B) 1 C)1 D)l2 2 23 348、有以下程序,若运行时输入3.6 2.4<回车〉,则输出的结果是( B)。
main(){float x,y,z;scanf(“%f%f”,&x,&y);z=x/y;while(1){if(fabs(z)>1。
0){x=y;y=z;z=x/y;}elsebreak;}printf(“%f\n”,y);}A)1.500000 B)1.600000 C)2。
C语言习题集(平时练习含答案)1
C语言习题集第一章C语言概述复习要点:1. 程序的构成,main函数和其他函数。
2.语句,注释3.运行C程序的步骤和方法习题:1.C程序是由函数构成的,一个C程序中至少包含一个main函数。
2.函数是C程序的基本单位。
(最小单位是表达式)3.C程序有且只有一个main函数。
4.C程序从main函数开始执行。
5.C程序注释符是由/*和*/组成,且不能嵌套使用。
6.C程序的语句是以; 结束。
7.C程序一条语句可分多行写,需要以为连接符。
(可以直接换行)8.C程序可以用{ 和} 将多条语句括起来,形成复合语句。
9.上机运行一个C程序必须经过源代码输入,编译,连接,运行4个步骤。
10.C程序的源文件扩展名是。
c 。
11.以下叙述中正确的是(C)A)C语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,main必须小写,程序将从此开始执行,在此结束D)main可作为用户标识符,用以命名任意一个函数作为主函数12.以下叙述中错误的是(D)A)C语言源程序经编译后生成后缀为.obj的目标程序B)C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件C)用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中D)C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令13.以下不是语句的是(A)A) a=10 B)a=b+c;c=20;C) ; D){a=b;b++;}14.运行以下程序main(){int a=10; /* 定义一个变量 aa=20; */printf(“%d”,A); 此程序应该改写为:printf(“%d”,a)}输出的结果是 B 。
A) 10 B)2015.牢记VC++6.0的出错提示英文提示中文实际意义missing ; , ( { 等表示缺少;,( {'T' : undeclared identifier T没有定义(T要先定义然后才能使用)'sqrt' undefined; sqrt如果是函数名则表示它的头文件没有包含'T' : redefinition T重复定义(可能是多次定义了T)Cannot open include file 头文件的拼写或路径的不对第二章数据类型,运算符与表达式复习要点:1. C的数据类型(整型,字符型,浮点型)及其定义方法。
C程序设计题目集答案之第2章
判断题题目详情编程题7-1 计算摄氏温度给定一个华氏温度F,本题要求编写程序,计算对应的摄氏温度C。
计算公式:C=5×(F−32)/9。
题目保证输入与输出均在整型范围内。
输入格式:输入在一行中给出一个华氏温度。
输出格式:在一行中按照格式“Celsius = C”输出对应的摄氏温度C的整数值。
输入样例:输出样例:#include<stdio.h>int main(void){int F,C;scanf("%d",&F);C=5*(F-32)/9;printf("Celsius = %d",C);return 0;}7-2 阶梯电价为了提倡居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分为两个“阶梯”:月用电量50千瓦时(含50千瓦时)以内的,电价为0.53元/千瓦时;超过50千瓦时的,超出部分的用电量,电价上调0.05元/千瓦时。
请编写程序计算电费。
输入格式:输入在一行中给出某用户的月用电量(单位:千瓦时)。
输出格式:在一行中输出该用户应支付的电费(元),结果保留两位小数,格式如:“cost = 应付电费值”;若用电量小于0,则输出"Invalid Value!"。
输入样例1:输出样例1:输入样例2:输出样例2:#include<stdio.h>int main(){int x;double cost;scanf("%d",&x);if(x<0){printf("Invalid Value!");}else{if(x<=50){cost=0.53*x;}elsecost=(x-50)*0.58+26.5;printf("cost = %.2lf\n",cost);}return 0;}7-3 计算平均分已知某位学生的数学、英语和计算机课程的成绩分别是87分、72分和93分,求该生3门课程的平均成绩(结果按整型输出)。
C程序设计题目集答案之第3章
判断题1-1在if语句的三种形式中,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。
(1分)1-2在switch语句中,每一个的case常量表达式的值可以相同。
(1分)1-3case语句后如没有break,顺序向下执行。
(1分)1-4if(a=5) 是允许的。
(1分)1-5在switch语句中,可以根据需要使用或不使用break语句。
(1分)1-6(1分)1-7if-else语句的一般形式如下,若表达式的值为“真”,则执行语句1;否则,就执行语句2。
(1分)1-8if-else语句的一般形式如下,其中的语句1、语句2只能是一条语句。
(1分)1-9为了检查以下else-if语句的三个分支是否正确,至少需要设计5组测试用例,即x的取值至少有五组(小于0的数、0、大于0且小于15的数、15和大于15的数)。
(1分)1-10(1分)1-11在switch语句中,必须使用default。
(1分)1-12为了检查以下嵌套的if语句的三个分支是否正确,至少需要设计3组测试用例,即(1分)1-13在if语句中,必须出现else。
(1分)1-14if(a>b) {t=a;a=b;b=t;}是3条c语句。
(1分)1-15switch语句中多个case标号可以共用一组语句。
(1分)单选题2-1为了避免嵌套的条件分支语句if~else二义性,C语言规定,C程序中的else 总是与( )组成配对关系。
(2分)A.缩排位置相同的ifB.在其之前未配对的ifC.在其之前未配对的最近的ifD.同一行上的if下列叙述中正确的是()。
(2分)A.break语句只能用于switch语句B.在switch语句中必须使用defaultC.break语句必须与switch语句中的case配对使用D.在switch语句中,不一定使用break语句下列程序段的输出结果是()。
(2分)A.0B.1C.2D.3下列程序段的输出结果是()。
C语言题集(二)答案
C语⾔题集(⼆)答案第3章顺序结构1.B解析:在C语⾔中,当⼀次输⼊多个数据的时候,数据之间要⽤间隔符,合法的间隔符可以是空格、制表符和回车符。
逗号不是合法的间隔符。
2.B解析:本题中a的值为6,b的值为8,最后s的值为8,s*=s等价于s=s*s。
3.C解析:①printf函数的浮点数缺省输出格式:在printf函数的输出中,若⽆输出宽度限制,每种数据都有⼀个缺省的输出宽度,⼀般浮点数的⼩数位数则是6位,不管输出格式是%f或%lf皆如此。
4.②printf函数的浮点数宽度限制输出:以%mf或%mlf格式输出浮点时,如果指定的宽度⼤于实际数据宽度,按指定宽度输出,且多余数补以空格;如果指定的宽度⼩于实际数据宽度,浮点数的整数部分将以实际数据(位数)输出。
⼩数部分按指定数输出,且对数据做四舍五⼊处理。
5.③printf的整数限宽输出:没有宽度制的整数原数输出。
在宽度限制于数的实际位数时,宽度说明⽆效,按数的实际位数输出。
6.D解析:在C语⾔所有的运算符中,逗号运算符的优先级最低。
C语中区分⼤⼩,所以APH和aph是两个不同的变量。
赋值表达式a=b表⽰将b的值付给a,⽽b本⾝的值保持不变;通过键盘可以向计算机输⼊允许的任何类型的数据。
选项D)中当从键盘输⼊数据时,对于整型变量可以输⼊整型数值和字符,对于实型变量可以输⼊实型数和整型数值等。
7.C解析:本题中,程序先执⾏语句 x=;,根据赋值运算的类型转换规则,先将double型的常量转换为int型,即取整为1,然后将1赋值给变量x。
接下来执⾏语句y=(x+)/;根据运算符的优先级,先计算⼩括号内,再计算除法,最后执⾏赋值运算。
⼩括号内的运算过程:先将整型变量x的值1转换为double型,然后与进⾏加法运算,得到中间结果。
接着进⾏除法运算,其结果⼩于,这⾥没有必要计算出精确值,因为接着进⾏赋值运算,赋值号左边的变量y的类型为整型,于是对这个⼩于的中间结果进⾏取整,结果为0,于是变量y的值为0,d*y的值也为0。
(完整版)C语言程序设计习题集及答案
C语言程序设计习题集东华理工大学2014.9基础知识一单项选择题(每题2分,共44分)1 以下叙述正确的是___。
A C程序基本组成单位是语句B C程序每一行只能写一个语句C 简单C语句必须以分号作为结束符D 注释语句可以嵌套2 一个C语言程序是从___开始执行的。
A 程序中第一个函数B 名为main的函数C 包含文件(头文件)的第一个函数D 程序中的第一个语句3 请选出合法的C语言赋值语句___。
A a=b=58B i++;C a=58,b=58D k=int(a+b);4 下面标识符中,合法的用户标识符是___。
A 1abcB includeC a-b-c123D char5 以下所列的C语言整形常量中,正确的是___。
A 0x10B 0976C 076LD 01ff6 C语言中下列运算符的操作数必须为整型的是___。
A %B ++C /D =7 设a和b均为int型变量,则执行以下语句后的输出为___。
int a=20; int b=3; printf("%d\n",a+=(b%=2));A 20B 21C 0D 238 已知int i;,则执行语句 i=2.6;后,i的值为___。
A 2B 3C 2.6D 不确定9 以下合法的字符常量为___。
A 'ab'B '\482'C '\'D '\xaf'10 若y为int型变量,则执行以下语句后,y的值是___。
y=8; y+=y-=y*y;A 64B –56C –112D –4811 以下合法的浮点型常量是___。
A e-3B 1.5e+2.4C 3.14e+2LD 3.14 e +512 设int数据占用两个字节,float数据占用四个字节,double数据占用8个字节,且已知float a=2;int b=3;则执行下列语句输出为___。
printf("%d",sizeof(a*b)+2/5);A 4B 8C 6D 713 设int型占2个字节,且int i=-2;,则语句printf("%u",i);的输出结果为___。
《c》复习题集及答案
目录一、单选题1. C++源程序文件的缺省扩展名为( A )。
A. cppB. exeC. objD. lik2. 由C++源程序文件编译而成的目标文件的缺省扩展名为( C )。
A. cppB. exeC. objD. lik3. 由C++目标文件连接而成的可执行文件的缺省扩展名为( B )。
A. cppB. exeC. objD. lik4. 编写C++程序一般需经过的几个步骤依次是( B )。
A. 编译、编辑、连接、调试B. 编辑、编译、连接、调试C. 编译、调试、编辑、连接D. 编辑、调试、编辑、连接6. 能作为C++程序的基本单位是( C )。
A. 字符B. 语句C. 函数D. 源程序文件8. C++程序的基本模块为( D )。
A. 表达式B. 标识符C. 语句D. 函数10. 存储以下数据,占用存储字节最多的是( D )。
A. 0B. ‘0’C. “0”D. 0.038. 以下说法中正确的是( B )。
A. C++程序总是从第一个定义的函数开始执行B. C++程序总是从main函数开始执行C. C++函数必须有返回值,否则不能使用函数D. C++程序中有调用关系的所有函数必须放在同一个程序文件中40. 函数重载是指( A )。
A. 两个或两个以上的函数取相同的函数名,但形参的个数或类型不同B. 两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同C. 两个以上的函数名字不同,但形参的个数或类型相同D. 两个以上的函数取相同的函数名,并且函数的返回类型相同41. 以下关于函数模板叙述正确的是( C )。
A. 函数模板也是一个具体类型的函数B. 函数模板的类型参数与函数的参数是同一个概念C. 通过使用不同的类型参数,函数模板可以生成不同类型的函数D. 用函数模板定义的函数没有类型42. 下列( C )的调用方式是引用调用。
A. 形参和实参都是变量B.形参是指针,实参是地址值C. 形参是引用,实参是变量D.形参是变量,实参是地址值43. 为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择( A )。
C语言习题集及答案
目录第一单元程序设计和C语言................................................. 错误!未定义书签。
第二单元顺序程序设计......................................................... 错误!未定义书签。
第三单元分支程序设计......................................................... 错误!未定义书签。
第四单元循环程序设计......................................................... 错误!未定义书签。
第五单元数组..................................................................... 错误!未定义书签。
第六单元函数..................................................................... 错误!未定义书签。
第七单元指针..................................................................... 错误!未定义书签。
第八单元结构体和共用体..................................................... 错误!未定义书签。
第九单元文件..................................................................... 错误!未定义书签。
附加题......................................................................................... 错误!未定义书签。
《C语言程序设计基础》习题集(含答案)
第一章C语言概述1.1、选择题(1)一个C语言程序是由()组成。
A. 一个主程序及若干个子程序B. 一个主程序C. 一个主函数及若干个子函数D. 一个主函数(2) 一个C语言程序总是从()开始执行。
A. 主过程B. 主函数C. 子程序D. 主程序(3) main函数在源程序中的位置()。
A. 必须在最开始B. 必须在子函数的后面C. 可以任意D. 必须在最后(4) 一个C程序的执行是从()。
A. 本程序的第一个函数开始,到最后一个函数结束B. 本程序的main函数开始,到最后一个函数结束C. 本程序的main函数开始,通常也在main函数结束D. 本程序的第一个函数开始,到main函数结束(5) 以下叙述不正确的是()。
A. 一个C程序可由一个或多个函数组成B. 一个C程序必须包含一个main函数C. 在C程序中,注释只能位于一条语句的最后面D. C程序的基本组成单位是函数1.2、编程题(1)参照本章例题,编程输出如下信息:**********Very good!**********(2)编写一个C程序,输出以下信息:******Turbo C ** * * * *1.3 请根据自己的认识,写出C语言的主要特点。
1.4 简述C程序主要由哪些部分构成?1.5 用户编写的C程序上机运行要经过哪些步骤?第二章基本数据类型和表达式2.1 单项选择题(1) 以下不能用作变量名的是()A)_26 B)case C)scanf D)Double(2) 以下合法的八进制数是()A)0135 B)068 C)013.45 D)o7(3) 若变量已正确定义,以下非法的表达式是()A)a/=b+c B)a%(4.0) C)a=1/2*(x=y=20,x*3) D)a=b=c (4) 设x 为int 类型,其值为11,则表达式:(x++*1/3)的值是()A)3 B)4 C)11 D)12(5) 若题中各变量已正确定义并赋值,下面符合C 语法的表达式是()A )a%=7.6; B)a++,a=7+b+c C)int(12.3)%4 D)a=c+b=a+7 (6) 设k 和x 均为int 型变量,且k=7,x=12,则能使值为3的表达式是()A)x%=k%=5 B)x%=(k-k%5) C)x%=k-k%5 D)(x%=k)- (k%=5) (7) 能正确表示数学公式|)sin(|x ,的C 语言表达式是()A)sqrt(abs(sin(x*π/180)))B)sqrt(abs(sin(x*3.14/180))) C)sqrt(sin(x))D)sqrt (fabs (sin(x*3.14/180)))(8) 以下变量x 、y 、z 均为double 型且已正确赋值,不能正确表示代数式z y x的C 语言表达式是()A)x/y*z B)x*(1/(y*z)) C)x/y*1/z D)x/y/z (9) 以下叙述中正确的是()A ) A )C 程序中,赋值运算符的优先级最低。
C语言循环习题集答案解析
循环习题集锦一.选择题1.for(i=0;i<10;i++);结束后,i的值是;(10)A 9B 10C 11D 122.下面程序的循环次数是:(D)int k=0;while(k<10){if(k<1) continue;if(k==5) break;k++;}A. 5 B 6 C 4 D 死循环,不能确定循环次数3.下面程序的输出结果是(10)main(){int s,k;for(s=1,k=2;k<5;k++)s+=k;printf(“%d\n”,s);}A 1B 9C 10D 154.要使下面程序输出10个整数,则在下画线处填入正确的数是:(c)for(i=0;i<= ;)printf(“%d\n”,i+=2);A 9B 10C 18D 205.运行下面程序:(B)main(){ int i=10,j=0;do{ j=j+i;i--;}while(i>5);printf(“%d\n”,j);}输出结果是:A 45B 40C 34D 55 6.运行下面程序#include “stdio.h”main(){ int k=0,a=1;while(k<10){for( ; ;){ if((k%10)==0)break;elsek--;}k+=11;a+=k;}printf(“%d %d\n”,k,a);}则输出的结果是(C)A 21 32B 21 33C 11 12D 10 117.以下叙述正确的是:(D)A.do---while语句构成的循环不能用其他语句构成的循环来代替。
B.do---while语句构成的循环只能用break语句退出。
C.用do---while语句构成的循环,在while 后的表达式为非零时结束循环。
D.用do---while语句构成的循环,在while后的表达式为零时结束循环。
8.有如下程序:main(){ int x=3;do{printf(“%d”,x--);}while(!x);}该程序的执行结果是:(C)A 3 2 1B 2 1 0C 3D 29.若k为整型变量,则下面while循环执行的次数为:(A)k=10;while(k==0) k=k-1;A 0B 1C 10 D无限次10.下面有关for循环的正确描述是(D)A.for循环只能用于循环次数已经确定的情况B.for循环是先执行循环体语句,后判断表达式C.在for循环中,不能用break语句跳出循环体。
非常好的C语言章节习题集带答案
第1章认识C语言二、习题(一)、是非题1.程序是指挥计算机进行各种信息处理任务的一组指令序列。
A.对B.错2.机器语言与硬件平台相关,但汇编语言和硬件平台无关。
A.对B.错3.编译型高级语言明显优于解释型高级语言。
A.对B.错4.C语言把高级语言的基本结构和低级语言的实用性紧密结合起来,不仅适合编写应用软件,而且适于编写系统软件。
A.对B.错5.面向对象的程序设计方法明显优于面向过程的程序设计方法。
A.对B.错6.计算机算法要有一个明确的起点和确定的步骤序列。
A.对B.错7.main函数是C程序的入口,由计算机系统负责调用。
A.对B.错8.在C语言中,同一行上可以写一条或多条语句,但一条语句不能写在多行上。
A.对B.错9.在C语言中,扩展名为.h的文件称为头文件,常用于组织C标准函数库中的函数。
A.对B.错10.注释语句会增加编译结果的复杂性,因此要尽量减少注释语句的数量。
A.对B.错(注释语句在预处理阶段被删除,不影响编译)11.声明变量的含义是通知编译系统为变量分配合适大小的存储空间。
A.对B.错12.C语言不允许使用关键字作为变量的名称,但可以使用保留字为变量命名。
A.对B.错13.符号常量提高了程序的可读性,但降低了程序维护的方便性。
A.对B.错14.变量声明把一个具体的标识符名称和计算机内存中的一个特殊的位置联系起来,同时确定了该位置存储的信息类型。
A.对B.错15. C语言允许在同一条语句中定义多个相同类型的变量,其间用分号进行分隔。
A.对B.错16.在ISO/ANSI 1999规定中,允许将变量声明放在程序中的任何位置。
A.对B.错17.不同类型的数据在内存中所占存储单元的大小不同,内部存储方式不同,取值范围不同,甚至能够参与的运算种类也不相同。
A.对B.错18.有符号和无符号整数的区别仅在于对数据最高位的解释不同。
若最高位解释为数据位,则为signed类型;若最高位解释为符号位,则为unsigned类型。
c语言面试题集(完整版)
c语言面试题集(完整版)试题1:C语言面试题一——华为篇1.static有什么用途?(请至少说明两种)1)限制变量的作用域2)设置变量的存储域(堆,主动分配内存也是堆)2.引用与指针有什么区别?1) 引用必须被初始化,指针不必。
2) 引用初始化以后不能被改变,指针可以改变所指的对象。
3) 不存在指向空值的引用,但是存在指向空值的指针。
3.描述实时系统的基本特性在特定时间内完成特定的任务,实时性与可靠性4.全局变量和局部变量在内存中是否有区别?如果有,是什么区别?全局变量储存在静态数据库,局部变量在栈5.什么是平衡二叉树?左右子树都是平衡二叉树且左右子树的深度差值的绝对值不大于16.堆栈溢出一般是由什么原因导致的?没有回收垃圾资源7.什么函数不能声明为虚函数?constructor (构造函数)8.冒泡排序算法的时间复杂度是什么?(其它排序算法的时间复杂度) O(n^2)9.写出float x 与“零值”比较的if语句。
if(x>0.000001&&x<-0.000001)10.Internet采用哪种网络协议?该协议的主要层次结构?tcp/ip 应用层/传输层/网络层/数据链路层/物理层11.Internet物理地址和IP地址转换采用什么协议?ARP (Address Resolution Protocol)(地址解析協議)18.IP地址的编码分为哪俩部分?IP地址由两部分组成,网络号和主机号。
不过是要和“子网掩码”按位与上之后才能区分哪些是网络位哪些是主机位。
19.用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。
写出C程序。
循环链表,用取余操作做#include <stdio.h>#define NULL 0#define TYPE struct stu#define LEN sizeof (struct stu)struct stu{int data;struct stu *next;};TYPE *line(int n){int sum=1;struct stu *head,*pf,*pb;int i;for(i=0;i<n;i++){pb=(TYPE*) malloc(LEN);pb->data=sum;if (i==0)pf=head=pb;elsepf->next=pb;if (i==(n-1))pb->next=head;else pb->next=NULL;pf=pb;sum++;}return(head);}main(){int M,N,x,i;struct stu *p,*q;printf("please scanf M and N (M<N)");scanf("%d %d",&M,&N);p=line(N);x=N;while(x){for(i=1;i<M-1;i++){p=p->next;}q=p->next;printf("%d\n",q->data) ;p->next = p->next->next;p=p->next;free(q) ;x--;}getch();}20.不能做switch()的参数类型是:switch的参数不能为实型。
C语言程序设计试题集及其答案
第一章基础知识一.填空1.每个C程序都必须有且仅有一个________函数。
2.C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。
3.软件是程序,以及______、使用和维护所需要的所有文档。
4.国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。
5.程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。
6.C语言是由________组成的。
7.C语言的函数可分为主函数main、标准库函数和_________。
8.一个函数是由两部分组成的,即:________和函数体。
9.编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。
10.程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作的要求。
不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。
11.机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。
12.与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对象,也可以用标号和符号来代替地址、常量和变量。
13.在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。
14.C程序的执行均是由执行_________开始。
15.函数体即为包含在{}内的部分。
它分为________和为完成功能任务由若干个C语句组成的执行部分。
16.C语言程序中一条简单语句是以________字符作为结束符的。
17.C语言是结构化、________的程序设计语言。
C选择题集
C选择题集选择题集:一)综合题集:1.下列程序段中正确的是()A.#include main(){ int i,j;abs(i)=j;} B.#include ;main(){┇}C.includemain(){ int i,j;┇} D.#include main(){┇}答案:D分析:A在调用库函数abs时,将它放在赋值号的左边,是错误的。
C中缺少#。
B中第一行的最右边多了一个“;”,不符合C语法规则。
2.在C语言中,若对函数类型未加显式说明,则函数的隐含类型是()A.void B.double C.int D.char答案:C分析:C语言中未加显式类型说明的函数意味着是int型函数。
虽然如此,但在实际编程时不提倡这种用法。
对于不返回值的函数最好用void而不是省略,这样可以加强编译器的核查能力。
3.下述函数段中,()含有错误。
A.int f1( ){ int x;scanf(“%d”,&x);return x++,1;}B.i nt f2( ){return (x>1?printf(“R”):putchar(…r?));}C.m ain( ){float x=3.5;float y=fmax(2.0,3.0)=x++;printf(“%f”,x+y);}D.void rep(int *x,int *y){ int t=*x;*x=*y;*y=t;}答案:C分析:考查return语句、函数调用表达式和指针类型参数。
选项A,B 说明了return的习惯写法,一些程序员习惯给return之后的表达式加上括号,造成一种似乎必须使用括号的错觉。
而return中表达式是否用括号均可以。
选项C中的错误是因为给表达式fmax(2.0,3.0)赋值,但赋值一般只应对变量进行。
D中的函数的作用是交换两个指针指向的整数的值。
4.下述程序段的输出结果是()#includeint fun(int x){ int p;if(x= =0 || x= =1) return 3;else p=x-fun(x-2);return p;}void main(){ printf(“\n%d”,fun(9)); }A. 7B. 8C. 9D. 10答案为:A分析:此题考查递归调用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.利用异或运算对输入的文本进行加密解密输出,用户输入一个文本(字符串,设不超过20个字符),然后输入作为密钥的字符,程序输入加密及解密的字符串。
2.编写一个程序,用户输入年份及月份两个数据,程序输出该月份的天数。
(提示:对2月要考虑是否闰年,闰年年份要么能被4整除且不能被100整除,要么能被400整除,除次之外都不是闰年)。
3.某大桥按不同型号征收车辆过桥费:自行车免费,摩托车2元,小汽车5元,大客车与货车8元,货柜车12元。
编写一个程序,按车辆的不同型号计算通过该大桥应征的过桥费。
(提示:可以用整数对不同型号的车辆进行编码)4.输入一位同学的考试成绩,若是90~100分,输出“Excellent”,80~89输出“Very good”,70~79输出“Good”,60~69输出“Pass”,60分以下输出“No Pass”。
5.旅行社的订票量小于10张时,航空公司给予10%的折扣;订票量大于或等于10张且小于20张时,航空公司给予15%的折扣;订票量大于或等于20张且小于30张时,航空公司给予30%的折扣;订票量大于或等于30张时,航空公司给予最高的45%的折扣。
编程输入订票张数及单张机票票价,程序输出折扣率及应付款额。
6.用户输入一个整数流(输入1000表示数据输入结束),如4 1 13 0 6 -5 1 -1 7 -12 19 0 100编写程序统计输入流中-1、0和+1的个数。
7.编写一个程序,求一个自然数中含有多少个2的因子。
如,6含1个2的因子,8含3个2的因子,11不含2的因子。
(提示,程序应检查用户输入的合法性)。
8.编写一个程序解决爱因斯坦台阶问题:有人走以台阶,若以每步走2级则最后剩1级;若每步走3级则最后剩2级;若以每步走4级则最后剩3级;若以每步走5级则最后剩4级;若以每步走6级则最后剩5级;若以每步走7级则最后刚好不剩。
问台阶共有几级?9.公鸡5元1只,母鸡3元1只,小鸡1元3只,花了100元钱买100只鸡,问公鸡、母鸡、小鸡各多少只?10.编程实现解决下述问题的算法:一位顾客在购物时,如果买4个苹果剩下4角钱.如果买5个苹果则缺5角钱,请问,该顾客带了多少钱?多少钱可以头一个苹果?11.编写程序.计算100之内可以被13整除的自然数之和。
12.键盘输入m和n(10<m<n≤32000),求出m~n间所有素数且按每行8个数形式输出。
13.编写程序打印乘法口诀表。
14. 编程实现求解最大公约数的欧几里德算法,用户输入两个任意正整数,程序输出他们的最大公约数。
算法如下:步骤1:如果p < q ,则交换p 和q 。
步骤2:令r 是p / q 的余数。
步骤3: 如果r = 0,则令g = q 并终止;否则令p = q , q = r 并转向步骤215. 求不超过正整数n 的2的最大幂值,如输入17,程序应输出4(24=16<17)。
16. 有关专家十分关注珠江渔业资源的问题。
目前珠江中大约有8000万条鱼,平均每年以3.5%的速度减少。
请编写一个程序,计算在多少年之后鱼的数目下降到目前的一半?多少年后下降到目前的十分之一?(提示注意整数类型的取值范围)。
17. 编程求解一元二次方程ax2+bx+c=0的根。
要求:设计完备的测试数据集,考虑a, b, c各种取值对根的影响。
18. 编写一个程序,输入全班同学某门课考试成绩,计算平均成绩并找出其中最高分与最低分。
(提示:批量数据通常不事先规定输入的数据数量,而是以一个特殊的标志作为输入结束。
程序根据结束标志统计人数)19. 编一程序模拟整数加、减、乘、除四则运算。
当你在键盘上输入5+6后,程序将输出=11,当你在键盘上输入11*7后,程序将输出=77。
20. 把一张1元钞票换成1分、2分和5分的硬币,每种至少有1枚,问有多少种换法?21. 求自然对数底(e)的近似值。
e 的近似值计算公式为:当余项r n <ε时停止计算。
设ε=1e-822. S=∑=71!i i =1!+2!+…+7!23. S=1×2+3×4+5×6+…+39×4024. Y=X -!33X +!55X -!77X +…+(-1)n+1)!12(12--n X n +…的值,精确到10-6。
25. 编制一个程序,读入一个正整数,并反向输出。
例如,读入123,输出是321。
26. 水仙花数问题:水仙花数是一种三位数,它的值等于每个数字的立方和。
例如,r n e +-++++=)!1(1!21!111153=13+53+33。
编程输出小于999的水仙花数。
27.求一整数的等差数列,该数列满足下述条件:头4项数的和值为26,积值为880。
(提示:该数列公差为正整数,否则数列将出现负数;该数列的首项必须小于5,且其公差也小于5,否则头四项数的和将大于26。
)28.完数问题:若有一数,其值等于它的因子之和,则该数称为完数。
例如,6的因子为1、2、3,而6=1+2+3,故6是完数。
编程输出1000之内的所有完数及其因子。
29.100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,小马2匹驮1担。
试编程计算大、中、小马的数目。
30.编程产生出1到10以内的所有数对<i,j>并输出,其中i>j。
31.编程求出1000以内的所有符合如下条件的数:其高位数字小于低位数字。
如12,238等。
但21,548不符合条件。
32.求任一整数N的标准分解式,即素数因子之积。
例如16=2*2*2*2,15=3*5。
33.斐波那契(Fibonacci)数列问题:Fibonacci数列递归定义为:x=0,x1=1,x i+1=xi+xi-1, i=2,3,…即从第二项开始,数列中的每一个元素等于前面两个元素之和。
编程输出前20项Fibonacci数。
(提示可以用递归或迭代两种方式编程)34.35.编写一个递归函数:将一个整数转换为响应的字符串并输出,函数原型可声明为:voidint2str(int number)。
36.用函数实现将一个以字符串形式表示的十六进制数转换为一个十进制整数。
例如,输入”A2”转换为162。
37.编写一个将十进制整数转换为十六进制字符串的函数。
38.编写出判断一个整数是否为素数的函数,并求出在2000以内的有十个以上的所有连续的非素数组。
39.编制一个程序,统计从标准输入设备上输入的字符流(以?结束)中每个英文字母(大小写不分开计)出现的次数。
40.编程实现“冒泡排序算法”,将输入的若干整数由小到大(升序)排序输出。
要求定义一个排序函数,其原型是void bubble(int data[], int length)。
41.给定含有m+n个元素的整型数组A(其中m>0, n>0),它分为两个互不重叠的,长度分别为m和n的子数组段,写出交换这两个子数组段的程序,要求不引入数组A以外的数组,但可引入若干中间变量。
42.用数组存储数据,实现筛选法求素数问题的求解。
要求求出2到1000之间的所有素数。
筛选法求出2~N间的所有素数的方法是:首先将这些数全部放入一个数组中,然后重复下面的操作直到数组为空为止:a.找出其中的最小数K,则K一定是一个素数,因此可输出。
b.从数组中删除K及其所有倍数。
43.编程实现二分查找算法。
二分(折半)查找(搜索)算法如下:数组a 中的n 个数从大到小(降序)的顺序排列,要检索一个数x 是否在 a 中,折半查找算法的思路是:设查找区间为[lower,upper],初值lower=0, upper=n-1; 算法步骤:(1)输入数组a 的元素及x;(2)x 是否为a 的第一或最后一个元素。
若是其中之一,算法结束;(3)将区间两等分为[lower, mid]和[mid, upper],mid为区间中点,每次取出中间项进行检查,若x=a[mid],x 被检索到,算法结束;若x<a[mid],则在后半区间[mid, upper] 内重复折半检索;若x>a[mid],则在前半区间[lower, mid] 内重复折半检索。
反复执行上述步骤,使lower 和upper相等或相差1(表示未检索到x),或a[mid]=x。
44.编程实现查找矩阵中最大元素的位置。
要求输入一个矩阵中所有元素,输出该矩阵,并输出矩阵中最大数所在的行、列号及该元素的值。
45.编写程序找出二维整形数组中所有这样的元素及其位置:它在所在的行上是最大的,在所在的列上也是最大的。
设数组中的元素各不相同。
(提示:先在第i行中寻找此行最大值元素,记下其行和列,然后在其所在的列判断它是否也是最大的,若是则输出结果。
可以引入标志变量表示找到这个元素。
)46.编程产生下列数组,并输出。
1 2 3 4 5 62 3 4 5 6 03 4 5 6 0 14 5 6 0 1 25 6 0 1 2 36 0 1 2 3 447.编程产生下列数组,并输出1 2 3 4 5 62 1 234 53 2 1 2 3 44 3 2 1 2 35 4 3 2 1 26 5 4 3 2 148.编程产生下列数组,并输出。
1 2 3 .....n-1 02 3 4 ..... 0 13 4 5 ..... 1 2................n-1 0 1 .....n-3 n-20 1 2 .....n-2 n-149.打印下面图形。
11 3 11 3 5 3 11 3 5 7 5 3 11 3 5 7 9 7 5 3 1…………………1 3 ……21 ……… 3 150.打印如下图形A B C D EB C D E AC D E A BD E A B CE A B C D1.//加密字符串#include<iostream.h>void main(){char a[21],b,key;cout<<"请输入字符串和密钥:";cin>>a>>b;for(int i=0;a[i]!=0;i++){a[i]=a[i]^b;}cout<<"加密后:";for(int k=0;a[k]!=0;k++){cout<<a[k];}cout<<endl<<"请输入密码:";cin>>key;for(int j=0;a[j]!=0;j++){a[j]=a[j]^key;}for(int g=0;a[g]!=0;g++){cout<<a[g];}cout<<endl;}2.#include<iostream.h>main(){int year,month,days;cout<<"请输入年份,月份:";cin>>year>>month;if(month==1||month==3||month==5||month==7||month==8||month==10||month==12){ days=31;cout<<year<<"年"<<month<<"月有"<<days<<"天\n";}elseif(month==4||month==6||month==9||month==11){days=30;cout<<year<<"年"<<month<<"月有"<<days<<"天\n";}else if((year%4==0&&year%100!=0)||year%400==0){days=29;cout<<year<<"年"<<month<<"月有"<<days<<"天\n";}else {days=28;cout<<year<<"年"<<month<<"月有"<<days<<"天\n";return0;}3.//收过桥费#include<iostream.h>main(){intkind;cout<<"1.自行车\n";cout<<"2.摩托车\n";cout<<"3.小汽车\n";cout<<"4.大货车或客车\n";cout<<"5.货柜车\n";cout<<"请输入汽车种类:";cin>>kind;switch(kind){case 1: cout<<"the fee is:0 yuanonce."<<endl;break; case 2: cout<<"the fee is:2 yuanonce."<<endl;break; case 3: cout<<"the fee is:5 yuan once."<<endl;break; case 4: cout<<"the fee is:8 yuanonce."<<endl;break; case 5: cout<<"the fee is:12 yuanonce."<<endl;break; default:cout<<"Error!"<<endl;}}4.#include<iostream.h>main(){int marks;cout<<"输入考试成绩:";cin>>marks;switch(marks/10){case 10:case 9:cout<<"Excellent\n";break;case 8:cout<<"VeryGood\n";break;case 7:cout<<"Good\n";break;case 6:cout<<"Pass\n";break;default : cout<<"NoPass\n";}return0;}//旅行社折扣#include<iostream.h>main(){int num,price;float discount,total_price;cout<<"输入购买张数和单价:";cin>>num>>price;switch(num/10){case 0: discount=0.1;break;case 1: discount=0.15;break;default: discount=0.3;}total_price=num*price*(1-discount);cout<<"总价格为:"<<total_price<<endl; return0;}6.//输入数流#include<iostream.h>main(){int a[100],i,j,x=0,y=0,z=0;cout<<"输入数流(以1000结束):";for(i=0;;i++){cin>>a[i];if(a[i]==1000) break;}for(j=0;a[j]!=1000;j++){if(a[j]==-1) x++;if(a[j]==0) y++;if(a[j]==1) z++;}cout<<"该数流中含-1:"<<x<<"项\n";cout<<"该数流中含0:"<<y<<"项\n";cout<<"该数流中含1:"<<z<<"项\n"; return0;}7.//求2因子#include<iostream.h>main(){int x,i,n;cout<<"输入整数:";l: cin>>x;if(x<0){cout<<"输入有误!请重新输入:";goto l;}n=x;for(i=0;n%2==0;i++){n/=2;}cout<<"整数"<<x<<"含有"<<i<<"个2因子"<<endl;return0;}8.#include<iostream.h>main(){int i,n;for(i=7;!(i%2==1&&i%3==2&&i%4==3&&i%5==4&&i%6==5);i+=7){n=i;}cout<<"最小可能值是:"<<n+7<<endl;return0;}9.//百元买百鸡#include<iostream.h>main(){int cock,hen,chicken,price;for(cock=0;cock<=20;cock++){for(hen=0;hen<=33;hen++){chicken=100-cock-hen;if(chicken%3==0&&5*cock+3*hen+chicken/3==100)cout<<"符合条件的有公鸡"<<cock<<""<<"母鸡"<<hen<<""<<"小鸡"<<chicken<<endl;}}return0;}10.#include<iostream.h>main(){int money,i,m,n;for(i=1;;i++){if(4+4*i==5*i-5){cout<<"money="<<4+4*i<<""<<"price="<<i<<endl;break;}else continue;}return0;}11.#include<iostream.h>main(){int n,i,j,s=0;for(i=1;i<=100;i++){if(i%13==0) s+=i;else continue;}cout<<"100以内可以被13整除的自然数之和为:"<<s<<endl; return0;}12.//求m到n的素数#include<iostream.h>#include<math.h>intf(int n){int a,x,i,b;x=sqrt(n);if(n==2||n==3) b=1;else for(i=2;i<=x;i++){if(n%i==0){b=0;break;}else if(i==x) b=1;else continue;}return b;}main(){int m,n,x,i,j;static int k=0;l: cout<<"输入m,n (其中10<m<n≤32000):";cin>>m>>n;if(m<=10||m>=n||n>32000){cout<<"输入数据有误!请再";goto l;}for(i=m;i<=n;i++){if(f(i)){cout<<i<<"";k++;if(k%8==0)cout<<endl;}}cout<<endl;return0;}13.//打印乘法口诀表#include<iostream.h>main(){int i,j;for(i=1;i<=9;i++){for(j=1;j<=i;j++)cout<<i<<'*'<<j<<'='<<i*j<<" ";cout<<endl;}return0;}14.//求最大公约数#include<iostream.h>main(){int m,n,temp;cout<<"输入两个整数:";cin>>m>>n;temp=m<nm:n;m=m<nn:m;n=temp;for(;;){temp=m%n;if(temp){m=n;n=temp;}cout<<"最大公约数是:"<<n<<endl;break;}}return0;}15.//求不超过正整数n的2的最大幂值#include<iostream.h>#include<math.h>main(){int n,i;cout<<"请输入正整数n:";cin>>n;for(i=0;pow(2,i)<=n;i++){}cout<<"满足条件的值为:"<<i-1<<endl;return0;}16.#include<iostream.h>#include<math.h>void main(){double fnum=fishnum;int n=1;while(fnum>=fishnum/2){fnum=fnum*(1-0.035);n++;}cout<<"当鱼的数目等于原来的一半时,需要"<<n<<"年\n";n=1;fnum=fishnum;while(fnum>=fishnum/10){fnum=fnum*(1-0.035);n++;}cout<<"当鱼的数目等于原来的十分之一时,需要"<<n<<"年\n"; }17.//二次方程求解#include<iostream.h>#include<math.h>main()float a,b,c;cout<<"请输入a,b,c:";cin>>a>>b>>c;float t=b*b-4*a*c;if(a==0)if(b==0)if(c==0)cout<<"方程根为一切实数"<<endl;else cout<<"方程无根"<<endl;else cout<<"根是:"<<-c/b<<endl;else if(t>0) cout<<"根x1="<<(-b+sqrt(b))/(-2*a)<<endl<<"根x2="<<(-b-sqrt(b))/(-2*a)<<endl;else if(t==0) cout<<"根x1=x2="<<(-b+sqrt(b))/(-2*a)<<endl;else cout<<"根x1="<<(-b)/(-2*a)<<"+"<<"("<<(sqrt(-t))/(-2*a)<<")i"<<endl<<"根x2="<<(-b)/(-2*a)<<"-"<<"("<<(sqrt(-t))/(-2*a)<<")i"<<endl;return0;}18.//班级分数#include<iostream.h>main(){int a[100],i,j,max,min,s=0;cout<<"输入同学成绩(以1000结束):";for(i=0;;i++){cin>>a[i];if(a[i]==1000) break;if(i==0){max=a[0];min=a[0];}max=max>a[i]max:a[i];min=min<a[i]min:a[i];s+=a[i];}cout<<"该班同学成绩中最高分为:"<<max<<"\n"<<"最低分为"<<min<<"\n"<<"平均分为"<<s/i<<"\n";return0;}19.//模拟四则运算#include<iostream.h>main(){int a,b;char x;cout<<"请输入算式:"<<endl;if(x=='+')cout<<"="<<a+b<<endl;else if(x=='-')cout<<"="<<a-b<<endl;else if(x=='*')cout<<"="<<a*b<<endl;else if(x=='/')cout<<"="<<(float)a/b<<endl;elsecout<<"error"<<endl;return0;}20.//兑钱#include<iostream.h>main(){int i,j,k,m=0;for(i=1;i<=20;i++){for(j=1;j<=50;j++){k=100-5*i-2*j;if(k>=1) {m+=1;//cout<<"i="<<i<<" "<<"j="<<j<<" "<<"k="<<k<<endl;输出结果}}}cout<<"共有"<<m<<"种结果\n";return0;}21.//求e#include<iostream.h>#include<iomanip.h>main(){int i;double temp=1,sum=0;for(i=1;temp>=1e-8;i++){sum+=temp;temp/=i;}cout<<"e=1+1/1!+1/2!+1/3!+....="<<setprecision(9)<<sum<<endl; }22.//求1!+2!~~+7!#include<iostream.h>intf(int x){if(x==0) r=1;else r=x*f(x-1);return r;}main(){int i,s=0;for(i=1;i<=7;i++) {s+=f(i);}cout<<"结果是:"<<s<<endl;return0;}23.//求1×2+3×4+5×6+…+39×40#include<iostream.h>main(){int i,s=0;for(i=1;i<=39;i+=2){s+=i*(i+1);}cout<<"结果是:"<<s<<endl;return0;}24.//求值,精确到10e-6#include<iostream.h>#include<math.h>main(){int i,x;cout<<"输入整数x:";cin>>x;double temp=x,s=0;for(i=1;fabs(temp)>=1e-6;i+=2){s+=temp;temp=temp*(-x*x)/((float)(i+1)*(i+2));}cout<<"结果是:"<<s<<endl;return0;}25.//反向输出#include<math.h>main(){int x,i,j;cout<<"输入整数x:";cin>>x;for(i=0;;i++) if(x/(int)pow(10,i)==0)break;int a[100];for(j=0;j<i;j++){a[j]=(x%(int)pow(10,j+1))/((int)pow(10,j));}cout<<"反向输出为:";for(int b=0;b<i;b++)cout<<a[b];cout<<endl;return0;}26.//水仙花数#include<iostream.h>main(){int i,a,b,c;for(i=100;i<=999;i++){a=i/100;b=(i-100*a)/10;c=i-100*a-10*b;if(i==a*a*a+b*b*b+c*c*c)cout<<i<<endl;}return0;}27.//等差数列#include<iostream.h>main(){int k=1,d,a1,a2,a3,a4;bool b=false;for(k=1;;k++){for(d=0;d<k;d++){a1=k-d;a2=2*k-d;a3=3*k-d;a4=4*k-d;if(a1+a2+a3+a4==26&&a1*a2*a3*a4==880){b=true;break;}}if(b) break;}}28.//完数问题#include<iostream.h>intmain(){int i,s,j;for(i=1;i<=1000;i++){s=1;for(j=2;j<=(i/2);j++){if((i%j)==0) s=s+j;}if(i==s)cout<<i<<'\n';}return 0;}29.(略)//马驮货30.//输出数对#include<iostream.h>main(){int i,j;for(i=1;i<10;i++)for(j=1;j<10;j++){if(i>j)cout<<'<'<<i<<','<<j<<'>'<<endl;}return0;}31.//输出数#include<iostream.h>main(){int i,j,k;for(i=10;i<1000;i++){i<<endl;}return0;}32.//标注分解N#include<iostream.h>main(){int N,n,i;cout<<"输入N: ";cin>>N;n=N;cout<<N<<"=";for(i=2;i<=n/2;){if(n%i==0) {cout<<i<<"*";n/=i;}else i++;}cout<<n<<endl;return0;}33.//斐波那契(Fibonacci)数列问题#include<iostream.h>intx(int i){int r;if(i==0||i==1) r=1;else r=x(i-1)+x(i-2);return r;}main(){int n,r,m=0;for(n=0;n<20;n++){r=x(n);cout<<r<<"";m++;if(m%5==0) cout<<endl;}return0;34.//打印图形#include<iostream.h>#include<iomanip.h>main(){int i,j,k,l;for(i=1;i<=11;i++){for(j=1;j<=4*(11-i);j++)cout<<" ";for(k=1;k<2*i-1;k+=2)cout<<setw(4)<<k;for(l=2*i-1;l>=1;l-=2)cout<<setw(4)<<l;cout<<endl;}return0;}35.//输出字符组#include<iostream.h>main(){char a[6]="ABCDE",i,j,x;for(i=0;i<=4;i++){for(j=i;j<=4;j++)cout<<a[j]<<" ";for(x=0;x<i;x++)cout<<a[x]<<" ";cout<<endl;}return0;}36.#include <iostream.h>#include <iomanip.h>static int is_circle_num ( int number , int radius );int main(){intnum,max_num;cout<< "Please input an integer (for example 1200):";cin>>max_num;for (num = 0 ; num < max_num ; num=num+1 ) {if( is_circle_num(num,10)==1 && is_circle_num(num,2)==1 ) {cout<< setw(6) <<num ;cout<< "is a circle number in decinai and binary system! \n";}}return0;int is_circle_num ( int number , int radius ){intleft_num, right_num;intmax_power, left_power, right_power ;max_power=1;while( ){max_power=max_power*radius;}left_power=max_power;right_power=radius;while(left_power>=right_power){right_num=(number%right_power)/(right_power/radius);left_num=(number/left_power)%radius;if(left_num!=right_num) return 0 ;right_power=right_power*radius;left_power=left_power/radius;}return 1;}37.#include <iostream.h>void int2str ( int number ){int a ;if (number== 0 ) return ;a=number- (number/10)*10 ; // 或a=number%10int2str( number / 10 ) ;cout<< char(a+48) << " " ;}void main (){int num;cout<< "Input a number:" ;cin>> num ;if(num<0){num=-num;cout<<'-';}int2str( num ) ;cout<< endl ;}38#include <iostream>#include <string>#include <cmath>using namespace std;bool rightFormat(string);int convert(string);int change2num(char);int main(){string hex;cout<<"输入一个十六进制数,字母用大写:"<<endl; l: cin>>hex;if(!rightFormat(hex)) {cout<<"不是正确的十六进制数!请重新输入:";goto l;}cout<<"结果是:"<<convert(hex)<<endl;}bool rightFormat(string s) {bool b = true;for(string::size_type i=0;i<s.size(); i++) {if(s[i]<'0' ||(s[i]>'9' && s[i]<'A') || s[i]>'F') {b = false;break;}}return b;}int convert(string s) {int dec = 0;for(string::size_type i=0;i<s.size(); i++){dec = dec +change2num(s[i])*pow(16.0,(int)(s.size()-1-i)); }return dec;}int change2num(char c) {switch(c) {case '1': return 1;case '2': return 2;case '3': return 3;case '4': return 4;case '5': return 5;case '6': return 6;case '7': return 7;case '9': return 9;case 'A': return 10;case 'B': return 11;case 'C': return 12;case 'D': return 13;case 'E': return 14;case 'F': return 15;default: return 0;}}39.// 功能:将16进制字符串转换成整数#include<iostream.h>void con10to16(int n,char s[]){int i=0,m=0,j=0;char c;while(n!=0){m=n%16;if(m>=0&&m<=9)s[i]=m+'0';else if(m>=10&&m<=15)s[i]=m-10+'A';n=n/16;i++;}i--;m=i/2;for(j=0;j<=m;j++,i--){c=s[i];s[i]=s[j];s[j]=c;}}main(){chars[8]="";int n;cout<<"请输入一个整数:";cin>>n;con10to16(n,s);cout<<"转化的字符串为"<<s<<endl;}40.//输出十个以上的所有连续的非素数组#include<math.h>intfunc(int n){int i,k=(int)sqrt(n)+1;for(i=2;i<k;i++)if(n%i==0)break;if((i==k))return 1;else return 0;}intmain(){intm,i,j,h=0;for(m=0;m<=2000;m++){h=0;if(func(m)==1){for(i=1;;i++){if((func(m+i)==0)&&(m+i<=2000))h++;else break;}m=m+i;if(h>=9){for(j=i-1;j>=-1;j--)cout<<m-j<<"";cout<<"\n";}}elsecontinue;}return0;}41.#include"iostream.h"voidmain(){int nletter[26];char ch;for(int i=0; i<26; i++) nletter[i]=0;do {cin>>ch;if(ch>='A'&&ch<='Z')nletter[ch-'A']++;if(ch>='a'&&ch<='z')nletter[ch-'a']++;} while(ch!='');for(i=0; i<26; i++)if (nletter[i])cout<<endl;}42.#include <iostream.h>void bubble(int data[], int length){ intsegment; // 循环扫描数组的下标变量int loop; // 循环扫描部分数组的下标变量int temp; // 用于交换数据时作缓冲的临时变量// 将数组分段,逐段将数据冒泡排序for(segment = 0; segment <= length - 2; segment = segment + 1) {//将当前段(segment到length- 1)中的最小数据浮到最上for(loop = length - 2; loop >= segment; loop = loop - 1) {if (data[loop + 1] < data[loop]) {temp= data[loop];data[loop]= data[loop + 1];data[loop+ 1] = temp;}}}}int main(){ const intmax_nums = 8; // 程序要处理数据的个数作为符号常量intdata[max_nums]; // 存放数据的数组intloop; // 循环扫描数组的下标变量// 由用户输入一些数据cout<< "Input " << max_nums << " numbers tosort:\n";for(loop = 0; loop <= max_nums - 1; loop = loop + 1) {cout<< "No." << loop + 1 << ": ";cin>> data[loop];}// 对数据排序bubble(data,max_nums);// 将排序后的数据输出cout<< "After sorting:\n";for(loop = 0; loop <= max_nums - 1; loop = loop + 1) {cout<< "No." << loop + 1 << ": " <<data[loop] << "\n";}return0;}43.#include <iostream.h”const int MAX=100;main(){ inta[MAX],m,n,i,j,t;for (i=0;i<m+n; i++)cin>>a[i];for(i=m-1; i>=0; i--){t=a[i];for(j=0; j<n; j++) a[i+j]=a[i+j+1];a[i+n]=t;}for(i=0; i<m+n; i++) cout<<a[i]<<' ';cout<<endl;}44.//筛选法求素数#include<iostream.h>intDeleteNum(int*,int,int);intmain(){constint N = 998;inta[N];for(inti=0; i<N; i++) a[i] = i+2;intsize = N;while(size> 0) {cout<<a[0]<<endl;size= DeleteNum(a,size,a[0]);}return0;}intDeleteNum(int *p, int n, int m) {inti,j;for(i=0,j=0;j<n; j++)if(p[j]% m)p[i++]= p[j];returni;}45.//二分法查找数据#include<iostream.h>intmain(){int a[10]={1,3,5,7,9,11,13,15,17,19};int x;int lower=0,upper=9;int mid;cout<<"请输入要查找的数字:";while(lower<=upper){mid=(lower+upper)/2;if(a[mid]==x)break;if(a[mid]<x)lower=mid+1;else upper=mid-1;}if(lower<=upper)cout<<"你要找的数字在第"<<mid+1<<"位"<<endl;else cout<<"你要找的数字不存在"<<endl;return 0;}46.//查找矩阵中最大元素的位置#include <iostream.h>const int max_row=3;const int max_col=4;void locate(const int matrix[max_row][max_col],int& row, int& col){introw_ptr, col_ptr;row=0;col=0;for(row_ptr=0;row_ptr<=max_row-1; row_ptr=row_ptr+1) {for(col_ptr=0;col_ptr<=max_col-1; col_ptr=col_ptr+1) {if(matrix[row_ptr][col_ptr]>matrix[row][col]){row=row_ptr;col=col_ptr;}}}return;}int main(){int matrix[max_row][max_col];introw_ptr,col_ptr;introw,col;cout<<"Input the matrix: \n";for(row_ptr=0;row_ptr<=max_row-1; row_ptr++)for(col_ptr=0;col_ptr<=max_col-1; col_ptr++) {cout<<"Element("<<row_ptr+1<<","<<col_ptr+1<<") is:";cin>>matrix[row_ptr][col_ptr];}locate(matrix,row,col);cout<<"The matrix is: \n";for(col_ptr=0;col_ptr<=max_col-1; col_ptr++) {cout<<matrix[row_ptr][col_ptr]<<"\t";}cout<<endl;}cout<<"The maximum element is located on("<<row+1<<","<<col+1<<").\n";return0;}47.//找数#include<iostream.h>main(){int a[4][4],i,j,max,maxj,flag;cout<<"输入一个数组(4*4):";for(i=0;i<4;i++)for(j=0;j<4;j++)cin>>a[i][j];for(i=0;i<4;i++){max=a[i][0];maxj=0;for(j=0;j<4;j++)//求出行中最大的数{if(max<a[i][j]){max=a[i][j];maxj=j;}}flag=1;for(j=0;j<4;j++)//进行列的比较if(max<a[j][maxj]){flag=0;break;}if(flag) cout<<"存在该种数在第"<<i+1<<"行,第"<<maxj+1<<"列,该数为:"<<max<<endl;}}48.//编程产生数组(也可不用数组)#include<iostream.h>main(){int a[]={0,1,2,3,4,5,6},i,j,k;for(i=0;i<6;i++){for(k=0;k<i;k++)cout<<a[k]<<" ";cout<<endl;}return0;}49.//(也可不用数组)#include<iostream.h>main(){int a[6]={1,2,3,4,5,6},i,j,k,l;for(i=0;i<6;i++){for(j=i;j>=0;j--)cout<<a[j]<<" ";for(k=1;k<=5-i;k++)cout<<a[k]<<" ";cout<<endl;}return0;}50.//输出数阵#include<iostream.h>main(){int n,i,j,k,m;cout<<"输入n:";cin>>n;for(i=1;i<n;i++){for(j=i;j<n;j++)cout<<j<<" ";for(k=0;k<i;k++)cout<<k<<" ";cout<<endl;}for(m=0;m<n;m++)cout<<m<<" ";cout<<endl;return0;}。