C++答案
英语c考试试题及答案

英语c考试试题及答案英语C考试试题及答案一、听力理解(共20分)1. 根据所听对话,选择正确答案。
A. 他正在图书馆。
B. 他正在回家的路上。
C. 他在等公交车。
[答案] A2. 根据所听短文,回答以下问题:问题:What is the main idea of the passage?A. The importance of education.B. The benefits of exercise.C. The advantages of technology.[答案] C二、阅读理解(共30分)阅读下面的短文,然后回答问题。
Passage 1The Internet has changed the way we live and work. It has made communication faster and more convenient.问题1:What has the Internet changed?[答案] The way we live and work.问题2:What is the effect of the Internet on communication? [答案] It has made communication faster and more convenient.Passage 2Traveling is a great way to relax and learn about different cultures.问题1:Why is traveling considered great?[答案] It is a way to relax and learn about different cultures.问题2:What can you learn from traveling?[答案] Different cultures.三、完形填空(共20分)阅读下面的短文,从所给的选项中选择最佳答案填空。
c语言期末考试题库及详解答案文件

c语言期末考试题库及详解答案文件一、单项选择题(每题2分,共20分)1. C语言中,以下哪个是合法的变量名?A. 2variableB. variable2C. variable-nameD. variable$name答案:B解析:在C语言中,变量名必须以字母或下划线开头,不能以数字开头,且不能包含特殊字符如$。
2. 下面哪个选项是C语言中的整型常量?A. 1.23B. 0x1AC. 0.5答案:B解析:整型常量可以是十进制、八进制或十六进制数。
0x1A 是一个十六进制数,因此是整型常量。
3. C语言中,以下哪个是正确的字符串字面量?A. "Hello, World"B. 'Hello, World'C. "Hello, World\n"D. "Hello, World\"答案:C解析:字符串字面量必须用双引号括起来,且可以包含转义字符如换行符'\n'。
4. 下列哪个选项不是C语言中的运算符?B. ||C. &&D. <答案:D解析:'<'是关系运算符,而'+='是复合赋值运算符,'||'和'&&'是逻辑运算符。
5. C语言中,以下哪个函数用于计算两个数的绝对值?A. abs()B. fabs()C. sqrt()D. pow()答案:A解析:abs()函数用于计算整数的绝对值,而fabs()用于计算浮点数的绝对值。
6. C语言中,以下哪个是正确的二维数组声明?A. int array[3][4];B. int array[][] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};C. int array[3][];D. int array[3][4] = {1, 2, 3, 4, 5, 6, 7, 8};答案:A解析:二维数组需要在声明时指定第一维的大小,第二维可以在初始化时指定。
春考历年c语言考试题及答案

春考历年c语言考试题及答案1.以下叙述正确的是( ) 。
[单选题] *A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误B) 在C程序中,main函数必须位于程序的最前面C) C语言本身没有输入输出语句(正确答案)D) C程序的每行中只能写一条语句2.一个C程序的执行是从( ) 。
[单选题] *A) 本程序的main函数开始,到main函数结束(正确答案)B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序文件的第一个函数开始,到本程序main函数结束D) 本程序的main函数开始,到本程序文件的最后一个函数结束3.以下叙述不正确的是( ) 。
[单选题] *A) 一个C源程序必须包含一个main函数B)一个C源程序可由一个或多个函数组成C) C程序的基本组成单位是函数D) 在C程序中,注释说明只能位于一条语句的后面(正确答案)4.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是( ) 。
[单选题] *A) C语言程序仅可以编译执行(正确答案)B) C语言程序仅可以解释执行C) C语言程序既可以编译执行又可以解释执行D) 以上说法都不对5.一个C语言程序是由( ) 。
[单选题] *A)一个主程序和若干个子程序组成B) 函数组成(正确答案)C) 若干过程组成D) 若干子程序组成6.以下叙述中错误的是( ) 。
[单选题] *A) C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的源程序不能直接在计算机上运行C)通过编译得到的二进制目标程序需要连接才可以运行D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件(正确答案)7.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为( )。
x=(i=4,j=16,k=32) [单选题] *a) 4B) 16C) 32(正确答案)D 528.以下叙述正确的是( ) 。
c语言实验报告三答案(完整版)

实验三循环控制实验课程名:高级语言程序设计(C)专业班级:学号:姓名:实验时间:实验地点:指导教师:一、实验目的和要求1. 熟练掌握用while语句、do while语句和for语句实现循环的方法。
2. 掌握在程序设计中用循的方法实现一些常用算法。
并进一步学习调试程序的方法。
二、实验内容1、任务名称程序c40101.c求1+…+100,填空,实现该功能。
(1、)源代码:#include<stdio.h>int main(){int s,i;s=0;for(i=1;i<=100;i++)s=s+i;printf("1+2+...+100=%d\n",s);return 0;}运行结果:(需要截图)(2、)源代码:#include<stdio.h>int main(){int s=0,i=1;while(i<=100){s+=i;i++;}printf("1+2+...+100=%d\n",s);return 0;}运行结果:运行结果分析:2、任务名称:分别运行这两个程序,若输入7,这两个程序的结果分别是多少?若输入12,这两个程序的结果又分别是多少?比较为什么会有这样的区别?(1、)源代码:#include <stdio.h>void main(){ int i,n,sum=0;scanf("%d",&i);n=i;while(i<=10){ sum+=i;i++;}printf("%d+...+10=%d\n",n,sum);}运行结果:(需要截图)(2、)源代码:#include <stdio.h>int main(){ int i,n,sum=0;scanf("%d",&i);n=i;do{ sum+=i;i++;} while(i<=10);printf("%d+...+10=%d\n",n,sum);return 0;}运行结果:运行结果分析:3、任务名称:下面程序,若输入12345,分析输出结果是多少?源代码:#include <stdio.h>void main( ){ long data;scanf("%ld",&data);while(data){ printf("%ld,",data%10);data=data/10;}}运行结果:(需要截图)运行结果分析:4、任务名称:程序c40104.c 实现求Fibonacci 数列的前n 个数。
C语言考试题库及答案

1、下面程序的输出是___D______#include<stdio.h>void main(){ int k=11;}A)C)2A) ++t;3、下______A____.A) '\t' B) "A" C) 65D) A4、表达式: 10!=9的值是________D____.A) true B) 非零值C) 0 D) 15、C语言提供的合法的数据类型关键字是_____B____.A) Double B) short C) integer D) Char码单位是C) 函数完语句C) 1449、执行下面程序中的输出语句后,输出结果是____B__.#include<stdio.h>void main(){int a;printf("%d\n",(a=3*5,a*4,a+5));}A) 65 B) 20 C) 15D) 1010、下面程序的输出是____B______.#include<stdio.h>void main()}A) 17D) 2411}A) 012、已知字母A的ASCII码为十进制的65,下面程序的输出是______A_____.#include<stdio.h>void main(){char ch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}A) 67,D B) B,C C) C,D D) 不确定的值aC)结果是C) 910 D) 10 915、设有如下定义:int x=10,y=3,z;则语句printf("%d\n",z=(x%y,x/y));的输出结果是_____D_____.A) 1 B) 0 C) 4D) 316、为表示关系x≥y≥z,应使用C语言表达式___A___.A) (x>=y)&&(y>=z) B)17、CA) 整型实型,C) 整型D) 整型18、量A) 200 B) 100C) 100 200 D) 输出格式符不够,输出不确定的值19、阅读下面的程序#include<stdio.h>void main(){char ch;scanf("%3c",&ch);printf("%c",ch);}c D)}则程序的运行结果是____D____.A) 1,19 B) -1,19 C) 1,17D) -1,1721、阅读下面的程序#include<stdio.h>void main(){int i,j,m,n;i=8;j=10;m=++i;}A)C)22A) 023、若已定义int a,则表达式a=10,a+10,a++的值是__B_.A) 20 B) 10 C) 21D) 1124、阅读下面的程序#include<stdio.h>void main(){int i,j;scanf("%3d%2d",&i,&j);printf("i=%d,j=%d\n",i,j);回车>,则B)}A) 1,1,2 B) 1,0,3 C) 0,1,2D) 0,0,326、下面程序的输出结果是____A____.#include<stdio.h>void main(){int a=5,b=3;float x=3.14, y=6.5;printf("%d,%d\n",a+b!=a-b,x<=(}A) 1,0D) 0,027A)D) 128int a=010, b=0x10, c=10;printf("%d,%d,%d\n",a,b,c);则输出结果是____B_____.A) 10,10,10 B) 8,16,10 C) 8,10,10 D) 8,8,10 29、已知有double型变量x=2.5,y=4.7,整型变量a=7,则表达式x+a%3*(int)(x+y)%2/4 的值是_____B____.A) 2.4 B) 2.5 C)2.75 D) 0,x=2;,值是C) 311,10D) 11,1332、设有以下语句:int x=10;x+=3+x%(3),则x的值是.____A_____A) 14 B) 15 C) 11D) 1233、若d为double型变量,则表达式d=1,d+5,d++的值是_____D__.A) 1 B) 6.0 C) 2.0D) 1.034、表达式5!=3的值是____D____.A) TD) 135A) 0D) 636式__D__.A) 0D) 137、在_____A____.A) 在C程序中,无论是整数还是实数,都能被准确无误的表示B) 在C程序中,变量名代表存储器中的一个位置C) 静态变量的生存期与整个程序的生存期相同D) C语言中变量必须先定义后引用38、C语言中的变量名只能由字母,数字和下划线三种字符组成,且第一个字符____C____.float y;值的数C) int行是从函数结束B) 本程序的第一个函数开始,到本程序的最后一个函数结束C) 本程序的主函数开始,到本程序的最后一个函数结束D) 本程序的第一个函数开始,到本程序的主函数结束41、设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是____A____.A) 10<a<15 B)C)42、下}{c=b/a;printf("%d/%d=%d\n",b,a,c) ;}}A) 60/5=12 B) 300 C) 60*5=300 D) 1243、如果c为字符型变量,判断c是否为空格不能使用____A____.(假设已知空格ASCII码为32)A) if(c=='32') B) if(c==32) C) if(c=='\40') D) if(c==' ')结果是printf("x<y");}A) 3<5 B) 5>3 C) x>yD) x<y45、运行下面程序时,若从键盘输入数据为"6,5,7<CR>",则输出结果是____C___.#include <stdio.h>void main( ){ int a,b,c;scanf("%d,%d,%d",&a,&b,&c);}A) 5D)46、执行下面程序时,若从键盘输入"2<CR>",则程序的运行结果是____A____.#include <stdio.h>void main( ){ int k; char cp;cp=getchar( );if (cp>='0' && cp<='9')k=cp-'0';else if (cp>='a' && cp<='f')k=cp-'a'+10;C) 1盘输入(a!=2.0)) b=1.0/(a+2.0);else if (a<10.0) b=1.0/2;else b=10.0;printf("%f\n",b);}A) 0.000000 B)0.500000C) 1.000000 D)0.25000048、执行下面程序后,运行结果是____A____.}D) y=149、运#include <stdio.h>void main( ){ int x,y,z;scanf("%d,%d,%d",&x,&y,&z);if (x<y)if (y<z)printf("%d\n",z);else printf("%d\n",y);else if (x<z)printf("%d\n",z);else printf("%d\n",x);}A) 34 B) 12 C) 9 D)}A) Hello! B) Hello!Good Morning!C) Hello! D) Hello!Good morning!Bye_Bye!Bye_Bye!51、执行下列程序段后的输出结果是A) 3D) 452、设达A) ZD) A53void main( ){ int x=8,y=-7,z=9;if (x<y)if (y<0) z=0;else z-=1;printf("%d\n",z);}A) 8 B) 1 C) 9D) 054、运行下面程序时,若从键盘输入"5 <CR>",则程序的输出结果是C) 5"3,结果是#include <stdio.h>void main( ){ int a,b,s;scanf("%d,%d",&a,&b);s=a;if (s<b) s=b;s=s*s;printf("%d\n",s) ;}A) 14 B) 16 C) 18D) 2056、}A) 3,0D) 3,157等级:B 分数:60~84等级:C 分数:60 以下对于等级grade输出相应的分数区间,能够完成该功能的程序段是____D____.{case 'A':printf("85--100\n");case 'B':printf("60--84\n");case 'C':printf("60以下\n");default:printf("等级错误!\n");}!\n");'B':printf("60--84\n");break;case 'C':printf("60以下\n");default:printf("等级错误!\n");}{case'A':printf("85--100\n");break;case'B':printf("60--84\n");break;case 'C':printf("60以下}58y=A) y=1;y=1;y=-1;C) y=0; D) y=-1;if (x>=0) if (x>0) y=1;else y=-1;59、有如下程序#include <stdio.h> void main( ){ float x=5.0,y;if(x<0.0) y=0.0;case 1:switch (y){casecase1:printf("second\n");break;}case 2:printf("third\n");}}A) firstC) first61voidif (!c) x=15;else x=25;printf("d=%d\n",d);} D) 2562、有如下程序:#include <stdio.h>void main( ){ int a=2,b=-1,c=2;if (a<b)C) 2结果是else if (y==0) x=5;else x=6;printf("%d,%d\n",x,y);}D) 出错信息64、有如下程序#include <stdio.h>void main( ){ int x=1,a=0,b=0;switch(x){}}A)65、{ int a=-1,b=1,k;if ((++a<0) && (b--<=0))printf("%d %d\n",a,b);else}A) -1 1 B) 0 1 C) 1 0D) 0 066、假定w、x、y、z、m均为int型变量,有如下程序段:w=1;x=2;y=3;z=4;的值是C) 2结果是A) a<=100 B) 100 C) 0D) 168、若执行下面的程序从键盘上输入9,则输出结果是.______B________void main( ){int n;scanf("%d",&n);if (n++<10) printf("%d\n",n);else printf("%d\n",n--);}A) 11 B) 10 C) 9 D) 869}A) 7D) 470void main( ){int x;scanf("%d",&x);if (x++>5) printf("%d\n",x);}A) 7 B) 6 C) 5D) 471、以下程序段运行结果是____A____. int x=1,y=1,z=-1;x+=y+=z;D)C) 4,3 D) 2,-173、运行下面程序时,若从键盘输入数据为"123",则输出结果是___C____.void main(){ int num,i,j,k,place;scanf("%d",&num);if (num>99)place=3;else if(num>9){case 1: printf("%d\n",k);}}A) 123 B) 1,2,3 C) 321 74、执行下列程序后的输出结果是___D____.#include <stdio.h>void main( ){ int k=4,a=3,b=2,c=1;printf("%d\n",k<a?k:c<b?c:a);C) 2a输入b=a>15?a+10:a-10;printf("%d\n",b) ;}A) 5 B) 25 C) 1577、运行下面程序后,输出是___D___.#include <stdio.h>void main( ){ int k=-3;if (k<=0) printf("****\n");else printf("####\n")}B) ****D)78、执}A) 有语法错误不能编译B) 能通过编译,但不能通过连接C) 输出****D) 输出#### 性,C语言规定else总是与___C___组成配对关系.A) 缩排位置相同的ifB) 在其之前未配对的ifC) 在其之前尚未配对的最近的ifD) 同一行上的if型变量,的值为C) 1A)是死循环B)循环执行两次C)循环执行一次D)有语法错误82、对下面程序段描述正确的是___B____.while (!x!=0) s+=++x;printf("%d",s);A) 运行程序段后输出0B) 运行程序段后输出1C) 程序段中的控制表达式是非法的D) 程序段循环无数次83、A) ##84{ int a=1,b=10;do{ b-=a;a++;} while(b--<0);}A) 3,11 B) 2,8 C) 1,-1D) 4,985、下面程序段的运行结果是____B______.int n=0;C) 234结果是C)void main(){ int s=0,i=1;while (s<=10){ s=s+i*i;}printf("%d",--i);}A) 4 B) 3 C) 5D) 688、函数pi的功能是根据以下近似公式求π值:n)}A) 1/i*i B) 1.0/i*i C)1.0/(i*i) D) 1.0/(n*n)89、下面程序段的运行结果是for(x=10;x>3;x--){ if(x%3) x--;--x; --x;printf("%d ",x);}A) 6 3 B) 7 4 C) 6 2结果是printf("%d\n",b);}A) 34 B) 24 C) 26 D) 25_____D______.for(i=1;i<=5;)printf("%d",i);i++;A) 12345 B) 1234 C) 15D) 无限循环92、}A) 2 093、以{ int i=10,j=0;do{ j=j+1; i--;}while(i>2);}A) 50 B) 52 C) 51D) 894、以下函数的功能是:求x的y次方,请填空.____C______#include<stdio.h>C) x{ int x=23;do{ printf("%d",x--);}while(!x);该程序的执行结果是___B____A) 321 B) 23C) 不输出任何内容D) 陷入死循环96、以下程序段的执行结果是____C____.A) 12D) 2597、{ if (i%2!=0) {printf("#");continue;}printf("*");}printf("\n");}A) #*#*# B) ##### C) *****D) *#*#*98、下面程序的输出结果是____D______.#include<stdio.h>while (--y);printf("%d\n",y--);}A) -1 B) 1C) 8 D) 0100、有如下程序#include<stdio.h>void main( ){ int n=9;while(n>6){n--;printf("%d",n);}A) 9878765101A) 6 B) 3 C) 死循环D) 0102、以下循环体的执行次数是___D____#include<stdio.h>void main( ){ int i,j;for(i=0,j=1; i<=j+1; i+=2, j--)printf("%d \n",i);}A) 3 B) 2 C) 1出为ch<='Z')}printf("\n");}A) ABCdef B) abcDEF C) abc D) DEF104、下面程序的输出结果是____D______.main( ){int i,k=0, a=0, b=0;for(i=1;i<=4;i++)}A) k=5b=4b=4105、执行下面程序段后,k的值是____D_____.int i,j,k;for(i=0,j=10;i<j;i++,j--)k=i+j;A) 9 B) 11 C) 8 D) 10106、下面程序是计算n个数的平均值,请填空.____B___#include<stdio.h>C) xavg/n avg/x avg/n107、以下程序的功能是:从键盘上输入若干个学生的成绩, 统计并输出最高成绩和最低成绩,当输入负数时结束输入。
C语言程序设计 (何钦铭 颜晖 著) 高等教育出版社第四章 课后答案

#include <stdio.h>#include <math.h>void main(){double eps,s,item,flag,denominator;s=0;item=1;flag=1;denominator=1;printf("Enter eps: ");scanf("%lf",&eps);while(fabs(item)>=eps){item=flag/denominator;s=s+item;flag=-flag;denominator=denominator+3;}printf("s=%lf\n",s);}练习4-4#include <stdio.h>void main(){int num,n;float score,total=0;num=0;n=0;printf("Please input score # 1 :");scanf("%f",&score);while(score>=0){if(score<60)num++;total=total+score;n++;printf("Please input score #%d(0~100): ",n+1);scanf("%f",&score);}printf("The average score is %.2f.\n",total/n);printf("The numbers between 0 and 59 is %d.\n",num); }#include <stdio.h>void main(){int i,j,n,num;printf("Enter n : ");scanf("%d",&n);for(i=1;i<=n;i++){printf("Please input an integer : ");scanf("%d",&num);for(j=2;j<=num-1;j++)if(i%j==0)break;if(j>num-1 && num!=1)printf("%d is a prime.\n",num);else printf("%d is not a prime.\n",num);}}练习4-8#include <stdio.h>void main(){int i,j,n;double e,product;e=1;printf("Enter n : ");scanf("%d",&n);for(i=1;i<=n;i++){product=1;for(j=1;j<=i;j++)product=product*j;e=e+1/product;}printf("e=%.2lf\n",e);}练习4-11#include <stdio.h>void main(){int i,n,min,num;printf("Enter n : ");scanf("%d",&n);for(i=1;i<=n;i++){printf("Enter an integer : ");scanf("%d",&num);if(i==1)min=num;else if(num<min)min=num;}printf("The Min number is %d.\n",min); }练习4-12#include <stdio.h>void main(){int num1,num2=0,flag=1;printf("Enter an integer : ");scanf("%d",&num1);if(num1<0){flag=-1;num1=-num1;}while(num1!=0){num2=num2*10+num1%10;num1=num1/10;}num2=flag*num2;printf("The new number is %d.\n",num2); }练习4-13#include <stdio.h>void main(){int i,j,count=0;for(i=100;i<=200;i++){for(j=2;j<=i-1;j++)if(i%j==0)break;if(j>i-1){count++;if(count%8==0)printf("%8d\n",i);else printf("%8d",i);}}printf("\n");}练习4-14#include <stdio.h>void main(){int i,f1=1,f2=1,f;printf("%8d\n",f1);printf("%8d\n",f2); /*输出前两项*/for(i=3;i<=20;i++){f=f2;f2=f1+f2;f1=f;printf("%8d\n",f2);}printf("\n");}习题4-1#include <stdio.h>void main(){int num=1,sum=0;while(num>0){printf("Enter an integer :");scanf("%d",&num);if(num<=0)break;if(num%2==0)sum=sum+num;}printf("The sum is %d.\n",sum); }习题4-2#include <stdio.h>#include <math.h>double fact(int n);void main(){int i=1;double x,item,s=0;printf("Enter x :");scanf("%lf",&x);item=x;while(fabs(item)>=0.00001){s=s+item;i++;item=pow(x,i)/fact(i);}printf("The sum is %lf.\n",s);}double fact(int n){int i;double product=1;for(i=1;i<=n;i++)product=product*i;return product;}习题4-3#include <stdio.h>void main(){int num,sum=0,count=0;printf("Enter an integer :");scanf("%d",&num);if(num<0)num=-num;while(num>0){sum=sum+num%10;num=num/10;count++;}printf("The sum is %d.\n",sum);printf("The count is %d.\n",count);}习题4-4#include <stdio.h>void main(){int i,n;double a,b,x,sum;a=2;b=1;sum=0; /*a为分子,b为分母*/ printf("Enter an integer : "); /*输入项数*/scanf("%d",&n);for(i=1;i<=n;i++) /*求前n项之和*/{sum=sum+a/b;x=a+b;b=a;a=x;}printf("The sum is %lf.\n",sum); /*输出和*/}习题4-5#include <stdio.h>void main(){int i,j,a,n;double item,sum; /*item为项变量,sum为累加和变量*/sum=0;printf("Enter two integers a and n : ");scanf("%d%d",&a,&n);for(i=1;i<=n;i++) /*求前n项之和*/{item=0;for(j=1;j<=i;j++) /*求第i项*/item=item*10+a;sum=sum+item;}printf("The sum is %lf.\n",sum); /*输出和*/}习题4-6#include <stdio.h>void main(){int i,j,k,count; /*count为换法种数,i为1分的硬币数,j为2分的硬币数,k为5分的硬币数*/count=0;for(i=1;i<=100;i++)for(j=1;j<=50;j++)for(k=1;k<=20;k++)if(i+2*j+5*k==100){printf("1分=%d, 2分=%d, 5分=%d\n",i,j,k);count++;}printf("换法种数=%d\n",count);}习题4-7#include <stdio.h>void main(){int i,m,digit,sum; /*sum为各位数字的立方和变量*/for(i=1;i<=10000;i++){/*求整数i中各位数字的立方和*/m=i;sum=0;while(m!=0){digit=m%10;sum=sum+digit*digit*digit;m=m/10;}if(i==sum)printf("%d\n",i); /*输出满足条件的整数i*/}}习题4-8#include <stdio.h>int prime(int n);void main(){int m,i;for(m=6;m<=100;m=m+2)for(i=2;i<=m-1;i++)if(prime(i) && prime(m-i)){printf("%d=%d+%d\n",m,i,m-i);break;}}int prime(int n) /*判定n是否素数的函数,返回1表示素数,返回0表示非素数*/{int i,flag;flag=1; /*初值为1*/for(i=2;i<=n-1;i++)if(n%i==0){flag=0;break;} /*置flag为0,表示非素数*/ return flag;}习题4-9#include <stdio.h>void main(){long int m,n,pow,digit; /*m为长整数变量,pow为m的幂*/printf("Enter a long integer :"); /*输入一个长整数m*/scanf("%ld",&m);/*求长整数m的幂,存放在pow变量中*/n=m;pow=1;while(n!=0){n=n/10;pow=pow*10;}pow=pow/10;/*从m的最高位开始,逐位输出各数位上的数字*/while(m!=0){digit=m/pow; /*求最高位数字*/m=m%pow;pow=pow/10; /*幂pow缩小10倍*/printf("%d ",digit);}printf("\n");}习题4-10#include <stdio.h>void main(){int i,m,n;printf("Enter an integer m :"); /*输入一个正整数m*/ scanf("%d",&m);n=m/2;printf("%d=1",m);for(i=2;i<=n;i++)while(m%i==0){printf("*%d",i);m=m/i;}printf("\n");}习题4-11#include <stdio.h>void main(void){int m, n, j, k; /* j表示最小公倍数,k表示最大公约数*/printf("Input two integer m and n : ");scanf("%d%d",&m,&n);j = m;while(j % n != 0) /* 求最小公倍数,存放在j变量中*/j = j + m;k = (m * n) / j; /* 求最大公约数,存放在k变量中*/printf("最小公倍数是%d \n最大公约数是%d\n ", j, k);}习题4-12#include <stdio.h>void main(void){int i;double h,s; /* h为高度,s为总路程*/h=100;s=100; /* 赋初值*/for(i=1;i<10;i++) /* 循环9次,求出第10次落地的总路程*/{h=0.5*h;s=s+2*h;}h=0.5*h; /* 第10次反弹的高度*/printf("第10次落地的总路程是%lf, 第10次反弹的高度是%lf\n ", s, h); }习题4-13#include <stdio.h>void main(void){int i,j;for(i=1;i<=7;i++){if(i<=4) /* 输出图形的上4行*/{for(j=1;j<=20-2*i;j++)printf(" "); /* 输出行前的空格*/for(j=1;j<=2*i-1;j++)printf("* "); /* 输出一行中的* */ }else /* 输出图形的下3行*/{for(j=1;j<=12+2*(i-4);j++)printf(" "); /* 输出行前的空格*/for(j=1;j<=2*(8-i)-1;j++)printf("* "); /* 输出一行中的* */ }printf("\n"); /* 换行*/}}习题4-14#include <stdio.h>void main(void){int x1,x2,i;x2=1; /* 赋初值:第10天的桃子数*/for(i=1;i<=9;i++) /* 循环9次,求出第1天的桃子数*/{x1=2*(x2+1);x2=x1;}printf("total=%d\n",x2); /* 输出第1天的桃子数*/}。
c语言前五章基础知识练习题答案(C程序设计第五版)
一、单选题1. C语言中的三大基本数据类型包括( B )A.整型、实型、逻辑型B.整型、实型、字符型C.整型、逻辑型、字符型D.整型、实型、逻辑型、数组型2. 在C语言中,以下合法的字符常量是( C )A. '\048'B. 'ab'C. '\43'D. "\0"3.设x 为 int 型变量,执行下列语句: x=10; x+=x-=x-x; 则x的值为 ( B )A. 15B. 20C. 25D. 304.逗号表达式(a=3*5,a*4),a+15的值是( B )A.15B. 30C. 60D. 755. .以下程序的输出结果是( C )。
main( ){ int x=10,y=11;printf("%d,%d\n",x--,--y);}A. 11,11B. 10,11C. 10, 10D.11,106.设有变量说明:int a=7,b=8;那么语句:printf("%d,%d\n",(a+b,a),(b,a+b));的输出应该是( A )A. 7,15B. 8,15C. 15,7D.15,87. C语言变量名中不能使用的字符是( D )A. 数字B. 字母C. 下划线D. 关键字8.以下变量定义中合法的是( A )A.short a=2.1e-1;B. double b=1+5e0.5;C. long do=0xffe ;D. float 3_end=1-e3;9.若有说明语句char ch1=′\x79′;则ch1(D )A.包含4个字符B.包含3个字符C. 包含2个字符D.包含1个字符10. 设整形变量a=12;则执行完语句a+=a-=a*a后a的值为()A. 552B. 264C. -264D. 14411.设a=1,b=2,c=3,d=4,则表达式:a>b?a:c<d?a:d的结果是(A )A.1 B.2 C.3 D.412. 下面程序段执行结果是( B )int i=5,k; k=(++i)+(++i)+(i++); printf("%d,%d",k,i);A. 24,8B. 21,8C. 21,7D. 24,713.以下选项中属于C语言的数据类型是( B )。
C语言试题和答案大全
模块1 C语言基础知识1. 选择题(1)C语言中运算对象必须是整型的运算符是(B )。
A. %=B. /C. =D. <=(2)以下所列的C语言常数中,错误的是(B )。
A. 0xFFB. 1.2E0.5C. 2LD. -.67(3)以下选项中能作为用户标识符的是( C )。
A. voidB. 7_9C. _3_D. Dr.Tom(4)以下所列的C语言字符常量中,合法的是( B )。
A. ”B”B. ’\n’C. ’中国’D. d(5)以下选项中正确的定义语句是( D )。
A. int a:b;B. int ,a,b;C. int a+b=6;D. int a=6,b;(6)以下关于long、int、short型数据占用内存大小的叙述中正确的是( D )。
A. 均占4个字节B. 根据数据的大小来决定所占内存的字节数C. 由用户自己定义D. 由C语言编译系统决定(7)若有定义语句:int x=10;,则表达式x-=x+x的值为( B )。
A. -20B. -10C. 0D. 10(8)表达式((a=3*5,a+4),a+5)的值是( A )。
A. 20B. 29C. 60D. 90(9)若有定义语句:int a=3,b=4,c=5;,则以下表达式中值为0的是( D )。
A. a&&bB. a<=bC. a||b+c&&b-cD. !((a<b)&&c||1)(10)设有以下定义:int i;char c;float f;,以下结果为整型的表达式是( B )。
A. i+fB. i*cC. c+fD. i+c+f2. 填空题(1)设有int n=12;,则表达式(n++*1/3)的值是 4 。
(2)定义以下变量:char c;int x;float y;double z;,则表达式c*x+y-z,所求得的数据类型为double 。
(3)设变量a和b已正确赋初值,请写出a/=a+b等价的赋值表达式a=a/(a+b) 。
c语言答案
1、输入两个数,输出较大数的平方值。
#include<stdio.h>main(){int a,b,t;printf("Please enter two numbers:");scanf("%d%d",&a,&b);if(a>b){a=t;a=b;b=t;}printf("The result is:%d",b*b);getch();}2、计算并输出50-100间的数的和。
#include "stdio.h"main(){ int i,sum;for(i=50;i<=100;i++)sum=sum+i;printf("sum is %d",sum);getch();}3、用数组编程,有一个4×4的矩阵,编程序计算并输出对角线元素之和#include<stdio.h>main(){int a[4][4],i,j,sum=0;printf("Please enter 16 numbers:");for(i=0;i<4;i++)for(j=0;j<4;j++)scanf("%d",&a[i][j]);for(i=0;i<4;i++)for(j=0;j<4;j++)if(i==j)sum=sum+a[i][j];printf("The result is:%d",sum);getch();}4、编写程序,通过键盘输入2个整数,计算并输出它们的平均值。
#include "stdio.h"main(){ int i,j,avg;printf("enter two number:/n") ;scanf("%d%d",&i,&j);avg=(i+j)/2;printf("avg is %d",avg);getch();}5、编写程序,在屏幕上输出字符串"2011 C test"。
C语言实验报告第3章答案
3.2基础实验一、程序分析1.以下程序若输入’a’,则输入格式为:__c1=a____;运行结果为:___a,A↙_____。
#include<stdio.h>intmain( ){char c1,c2;scanf(“c1=%c”,&c1);c2=c1-32;printf(“%c,%c\n”,c1,c2);return 0;}2.以下程序如果使得a的值为2、b的值为3,则输入格式为:_a=2,b=3__;运行结果为:_2,3↙_。
#include<stdio.h>intmain( ){ int a,b;scanf(“a=%d,b=%d”,&a,&b);printf(“%d,%d\n”,a,b);return 0;}3.以下程序若输入12.3、7.6、1.1,则输入格式为:_12.3 7.6 1.1__;运行结果为:_aver=7.00___。
#include<stdio.h>intmain( ){ floata,b,c,d;scanf(“%f%f%f”,&a,&b,&c);d=(a+b+c)/3;printf(“aver=%.2f”,d);return 0;}二、程序填空1.输入一个四位整数,求各位数字之和(如1234,则结果为1+2+3+4=10)。
若输入3562,则运行结果为:___3+5+6+2=16↙____________。
#include <stdio.h>intmain( ){ int n,a,b,c,d,m;scanf(“%d”,&n);a=n%10;b=(n/10)%10;c=(n/100)%10;d=__n/1000________;m=__a+b+c+d________;printf(“%d+%d+%d+%d=%d\n ”, d,c,b,a,m);return 0;}2.给定一个华氏法表示的温度值,将其转换为摄氏法表示的温度,转换公式为则运行结果为:__f=64.00,c=17.78↙__。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 第一章 1. C++语言的标准有哪些?它有哪些编程方法?结构化程序设计的结构有哪些? 答案:标准:C++国际标准ISO/IEC 14882:1998,常被称为C++98、标准C++或ANSI/ISO C++;C++标准第二版(ISO/IEC 14882:2003)。 3种编程方法:以C语言为子集的结构化程序设计模式、以类为核心的面向对象程序设计模式以及以模版为机制的通用编程模式。 结构化程序设计的结构:顺序结构、选择结构和循环结构。 2. 面向对象的程序设计有3个主要特征,他们分别是什么?试举例说明。 答案:3个主要特征:封装、继承和多态。 封装:封装是将数据和代码捆绑到一起,避免了外界的干扰和不确定性。例如C++中的类,它定义了该集合中每个对象所共有的属性和方法。 继承:继承是让某个类型的对象获得另一个类型的对象的特征。例如:C++中子类对父类的继承,子类具有父类的特性,同时还可以拥有自己的新特性。 多态:多态是指不同类型的对象接收相同的消息时产生不同的行为。多态机制使具有不同内部结构的对象可以共享相同的外部接口,通过这种方式减小代码的复杂度。例如函数的重载。 3. C++是以编译方式实现的高级语言,它的编译过程可分为3个子过程,它们分别是什么? 答案:创建、编译和连接。 4. 参照本章示例,编写1个C++程序:输入圆的半径,输出其周长。 答案: #include using namespace std; int main() { double r, area; cout<<"输入圆的半径: "; cin>>r; area=2*3.14159*r; cout<<"圆的周长为:"< return 0; } 第二章 1.下列常量表示在C++中是否合法?若不合法,指出原因;若合法,指出常量的数据类型。 答案:32767:合法,int 35u:合法,无符号整形 1.25e3.4:不合法,e后面的数字必须是整数 3L:合法,长整形 0.0086e-32:合法,实数 ‘\87’:不合法 ‚Computer System‛:合法,字符串 ‚a‛:合法,字符串 ‘a’:合法,字符 ‘\96\45’:不合法,‘96’ ‘\45’分别为字符类型 .5:合法,double 2.字符常量与字符串常量有什么区别?指出下列哪些表示字符?哪些表示字符串?哪些既不表示字符也不表示字符串? ‘0x66’ China ‚中国‛ ‚8.42‛ ‘\0x33’ 56.34 ‚\n\t0x34‛‘\r’ ‘\\’ ‘8.34’ ‚\0x33‛ ‘\0’ 答案:字符: ‘\\’, ‘\0’ 字符串:‚中国‛, ‚8.42‛, ‚\0x33‛ 非字符亦非字符串:‘0x66’, China,‘\0x33’,56.34,‚\n\t0x34‛‘\r’, ‘8.34’ 3.定义两个变量a和b,初值分别为8和10,若要a和b的值互换,即a为10,b为8,如何实现(可用另外一个变量t作为过渡)?如不用中间变量又如何实现? 答案:用变量t作为过渡 #include using namespace std; int main() { int a=8,b=10; int t; t=a; 2
a=b; b=t; cout<<"a: "< using namespace std; int main() { int a=8,b=10; a=a^b; b=b^a; a=a^b; cout<<"a: "< using namespace std; int main() { int a=8,b=10; a=a+b; b=a-b; a=a-b; cout<<"a: " cin>>c1>>c2>>c3; 若在执行过程中,输入: ‘a’ ‘b’ ‘c’ 则cin执行后,c1、c2、c3的值分别是什么?若输入: abcdef 则cin执行后,c1、c2、c3的值又分别是什么? 答案:输入‘a’ ‘b’ ‘c’后,c1的值为 ‘ , c2的值为a , c3的值为 ’ 输入abcdef后,c1的值为 a , c2的值为b , c3的值为 c 8.设有语句: int a, b, c; cin>>hex>>a>>oct>>b>>dec>>c; cout<(7) 设x=8 ‘a’+x%3+5/2-‘\24’=97+2+2-20=81 3,在下列表达式中,哪些是合法的赋值表达式?哪些不是?为什么? (a,b,c,x,y都是已定义的int 型变量) (1)a=b=4.5+7.8 是 (2)c=3.5+4.5=x=y=7.9 不是,因为4.5是常量不能作为左值 (3)x=(y=4.5)*45 是 (4)a=x++=++y 不是,x++不能作为左值 4,写出下面表达式运算后a的值,设原来的a都是10. (1)a+=a <=> a=a+a=20 (2)a%=(7%2) <=> a=a%(7%2)=10%1=0 (3)a*=3+4 <=>a=a*(3+4)=70 (4)a/=a+a <=>a=a/(a+a)=10/20=0 (5)a-=a <=>a=a-a=0 (6)a+=a-=a*=a <=>a+=a-=100 =>a+=0 =>a=0 5,设m,n的值分别为10,8,指出下列表达式运算后a,b,c,和d的值。 (1)a=m++ + n++=10+8=18 (2)b=m++ + ++n=10+9=19 (3)c=++m + ++n=11+9=20 (4)d=m-- + n++=10+8=18 6,设a,b,c的值分别为5,8,9;指出下列表达式运算后x ,y和z 的值 (1)y=(a+b,c+a)=(13,14)=14 (2)x=y=a,z=a+b x=5 y=5 z=13 (3)y=(x=a*b , x+x , x*x)=(x=40,80,1600)=1600 x=40 (4)x=(y=a ,z=a+b)=(y=5,z=13)=13 y=5 z=13 7,设有变量: float x, y; int a ,b; 指出运算下列表达式后x , y, a和b的值。 x=a=3.523 x=3 y为null a=3 b为null a= x =3.523 x=3.523 y为null a=3 b为null x=a=y=3.523 x=3.0 y=3.532 a=3 b为null