C++期中测验试卷及参考答案
C期中测验答案
《程序设计语言C》期中测验学号:姓名:(考试时间:45分钟)一、单项选择题(每小题 3 分,共30 分)1. C 语言程序中可以对程序进行注释,注释部分必须用符号_C_括起来。
A、…{… 和‟}‟B、…[…和‟]‟C、“/*”和”*/”D、“*/”和”/*”2. 下列运算符中,优先级最低的是_D____。
A、*B、!=C、+D、=3. 若变量已正确定义,表达式(j=3, j++) 的值是_A__ 。
A、3B、4C、5D、04. 已知字符…a‟ 的ASCII码为97 ,执行下列语句的输出是_D____。
printf ("%d, %c", ‟b‟, ‟b‟+1 ) ;A、98, bB、语句不合法C、98, 99D、98, c5. 要调用数学函数时,在#include命令行中应包含_C____。
A、<stdio.h>B、<string.h>C、<math.h>D、<ctype.h>6. 判断i和j至少有一个值为非0的表达式是_A____。
A、i!=0 || j!=0B、i*j!=0C、!(i==0 || j==0)D、i&&j7. 若a是基本整型变量,c是单精度实型变量,输入语句___D___是错误的。
A、scanf(”%d,%f”, &a, &c);B、scanf(”d=%d, c=%f”, &a, &c);C、scanf(”%d%f”, &a, &c);D、scanf(”%d%f”, a, c);8. 有输入语句:scanf(“a=%d:b=%d:c=%d”,&a,&b,&c);为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应当是 B 。
A、132<回车>B、a=l:b=3:c=2<回车>C、1,3,2<回车>D、a=1,b=3,c=2<回车>9. 设x,y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是 D .A、…x‟&&‟y‟B、x<=yC、x||y+z&&y-zD、!((x<y)&&!z||1)10. 设有程序段int k=10;while (k=0) k=k-1;则下面描述中正确的是 CA) while循环执行10次B) 循环是无限循环C) 循环体语句一次也不执行D) 循环体语句执行一次二、填空题(每小题 3 分,共15 分)1. 写出下列程序段的输出结果。
大学计算机专业《C语言程序设计》期中试卷及答案(二)
大学计算机专业《C语言程序设计》期中试卷及答案试卷编号:9689所属语言:C语言试卷方案:期中考试试卷总分:100分共有题型:5种一、填空共15题(共计15分)第1题(1.0分)题号:92C语言中的字符变量用保留字【1】来说明.答案:=======(答案1)=======char第2题(1.0分)题号:433已知x=3,y=2,则表达式x*=y+8的值为【1】.答案:=======(答案1)=======30第3题(1.0分)题号:388设x和y均为int型变量,且x=1,y=2,则表达式1.0+x/y的值为【1】.答案:=======(答案1)=======1.0=========或=========1第4题(1.0分)题号:293getchar()函数只能接收一个【1】.答案:=======(答案1)=======字符第5题(1.0分)题号:437以下程序的输出结果为【1】,#include "stdio.h" main(){int a=010,j=10;printf("%d,%d\n",++a,j--);} 答案:=======(答案1)=======9,10第6题(1.0分)题号:498c语言程序的三种基本结构是:顺序结构,选择结构,【1】结构.答案:=======(答案1)=======循环第7题(1.0分)题号:100已知a=13,b=6, a||b的十进制数值为【1】.答案:=======(答案1)=======1第8题(1.0分)题号:441设a=3,b=4,c=4,则表达式a+b>c&&b==c&&a||b+c&&b==c的值为【1】.答案:=======(答案1)=======1第9题(1.0分)题号:457设a,b,c,t为整型变量,初值为a=3,b=4,c=5,执行完语句t=!(a+b)+c-1&&b+c/2后,t的值是【1】.答案:=======(答案1)=======1第10题(1.0分)题号:389设i,j,k均为int型变量,则执行完for循环for(i=0,j=10;i<=j;i++,j--) k=i+j;后,k的值为【1】.答案:=======(答案1)=======10第11题(1.0分)题号:421若输入字符串:abcde<回车>,则以下while循环体将执行【1】次.While((ch=getchar())=='e') printf("*");答案:=======(答案1)=======第12题(1.0分)题号:533设x和y均为int型变量,则以下for循环中的scanf语句最多可执行的次数是【1】. for (x=0,y=0;y!=123&&x<3;x++)scanf ("%d",&y);答案:=======(答案1)=======3第13题(1.0分)题号:328C语言中,数组元素的下标下限为【1】.答案:=======(答案1)=======第14题(1.0分)题号:346合并字符串的库函数是【1】,只写函数名即可.答案:=======(答案1)=======strcat第15题(1.0分)题号:341定义int a[2][3];表示数组a中的元素个数是【1】个.答案:=======(答案1)=======6二、判断共15题(共计15分)第1题(1.0分)题号:715整数 -32100可以赋值给int型和long int型变量.答案:Y第2题(1.0分)题号:929在C语言中,5种基本数据类型的存储空间长度的排列顺序为:char<int<long int <=float<double答案:Y第3题(1.0分)题号:928C程序中的关键字必须小写.答案:Y第4题(1.0分)题号:194若有定义和语句:int a;char c;float f;scanf("%d,%c,%f",&a,&c,&f);若通过键盘输入:10,A,12.5,则a=10,c='A',f=12.5.答案:Y第5题(1.0分)题号:944C语言中,赋值表达式加上分号就构成了赋值语句.答案:Y第6题(1.0分)题号:716若i =3,则printf("%d",-i++);输出的值为 -4.答案:N第7题(1.0分)题号:950逻辑运算符中的"&&"和"||"低于关系运算符,"!"高于算术运算符.答案:Y第8题(1.0分)题号:951在执行switch语句时,default和各个case的出现次序不影响执行结果.答案:Y第9题(1.0分)题号:869若有int i=10, j=0;则执行完语句if (j=0)i++; else i--; i的值为11.答案:N第10题(1.0分)题号:953C语言中的for语句可以用于循环次数已经确定的情况,但是不能用于循环次数不确定而只给出循环结束条件的情况.答案:N第11题(1.0分)题号:742若有说明int c;则while(c=getchar());是正确的C语句.答案:Y第12题(1.0分)题号:954continue语句只结束本次循环,而不是终止整个循环的执行.break语句则是结束整个循环过程,不再判断执行循环的条件是否成立.答案:Y第13题(1.0分)题号:736int a[3][4]={{1},{5},{9}}; 它的作用是将数组各行第一列的元素赋初值,其余元素值为0.答案:Y第14题(1.0分)题号:735如果想使一个数组中全部元素的值为0,可以写成int a[10]={0*10};答案:N第15题(1.0分)题号:926任何数组的下标都是从0开始;答案:Y三、单项选择共20题(共计40分)第1题(2.0分)题号:2004下列字符序列中,不可用作C语言标识符的是().A:b70B:#abC:symbolD:a_1答案:B第2题(2.0分)题号:2137下列表达式中,可作为C合法表达式的是().A:[3,2,1,0]B:(3,2,1,0)C:3=2=1=0D:3/2/1/0答案:B第3题(2.0分)题号:2037若k,g均为int型变量,则下列语句的输出为().k=017; g=111; printf("%d\t",++k); printf("%x\n",g++);A:15 6fB:16 70C:15 71D:16 6f答案:D第4题(2.0分)题号:2043已知字母a的ASCII十进制代码为97,则执行下列语句后的输出结果为(). char a='a'; a--;printf("%d,%c\n",a+'2'-'0',a+'3'-'0');A:b,cB:a--运算不合法,故有语法错C:98,cD:格式描述和输出项不匹配,输出无定值答案:C第5题(2.0分)题号:2128下列程序段的输出结果为().float x=213.82631;printf("%3d",(int)x);A:213.82B:213.83C:213D:3.8答案:C第6题(2.0分)题号:2222语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是(说明:'\b'是退格符)().A:a\bre\'hi\'y\\\bouB:a\bre\'hi\'y\bouC:re'hi'youD:abre'hi'y\bou答案:C第7题(2.0分)题号:2028假设所有变量均为整型,表达式:a=2,b=5,a>b?a++:b++,a+b的值是().A:7B:8C:9D:2答案:B第8题(2.0分)题号:2145int a=3,b=2,c=1;if(a>b>c)a=b;else a=c;则a的值为().A:3B:2C:1D:0答案:C第9题(2.0分)题号:2062假定所有变量均已正确定义,下列程序段运行后x的值是().k1=1;k2=2;k3=3;x=15;if(!k1) x--;else if(k2) x=4;else x=3;A:14B:4C:15D:3答案:B第10题(2.0分)题号:2136下列程序段的输出结果为().int a=7,b=9,t;t=a*=a>b?a:b;printf("%d",t);A:7B:9C:63D:49答案:C第11题(2.0分)题号:2319在C语言中,要求运算数必须是整型的运算符是(). A:^B:%C:!D:>答案:B第12题(2.0分)题号:2251以下不是无限循环的语句为().A:for(y=0,x=1;x>++y;x=i++) i=x;B:for(;;x++=i);C:while(1){x++;}D:for(i=10;;i--) sum+=i;答案:A第13题(2.0分)题号:2123设j和k都是int类型,则for循环语句().for(j=0,k=0;j<=9&&k!=876;j++) scanf("%d",&k); A:最多执行10次B:最多执行9次C:是无限循环D:循环体一次也不执行答案:A第14题(2.0分)题号:2141以下程序段的输出结果为().for(i=4;i>1;i--)for(j=1;j<i;j++)putchar('#');A:无B:######C:#D:###答案:B第15题(2.0分)题号:2059以下程序的运行结果是().main(){ int n;for(n=1;n<=10;n++){if(n%3==0) continue;printf("%d",n);}}A:12457810B:369C:12D:1234567890答案:A第16题(2.0分)题号:2147while(fabs(t)<1e-5)if(!(s/10))break;循环结束的条件是(). A:t>=1e-5||t<=-1e-5||s>-10&&s<10B:fabs(t)<1e-5&&!s/10C:fabs(t)<1e-5D:s/10==0答案:A第17题(2.0分)题号:2273设有数组定义: char array [ ]="China"; 则数组 array所占的空间为().A:4个字节B:5个字节C:6个字节D:7个字节答案:C第18题(2.0分)题号:2280若有说明 int a[3][4];则对a数组元素的正确引用是().A:a[2][4]B:a[1,3]C:a[1+1][0]D:a(2)(1)答案:C第19题(2.0分)题号:2269以下不正确的定义语句是().A:double x[5]={2.0,4.0,6.0,8.0,10.0};B:int y[5]={0,1,3,5,7,9};C:char c1[]={'1','2','3','4','5'};D:char c2[]={'\x10','\xa','\x8'};答案:B第20题(2.0分)题号:2074下列语句中,不正确的是().A:static char a[2]={1,2};B:static int a[2]={'1','2'};C:static char a[2]={'1','2','3'};D:static char a[2]={'1'};答案:C四、程序填空共4题(共计24分)第1题(6.0分)题号:24/*------------------------------------------------------- 【程序填空】---------------------------------------------------------题目:以下程序的功能是对任一整数N(N≠0),它都可以分解成1(或-1)和一些质数(素数)因子的形式。
C语言期中试卷(含答案)
《 C语言》课程期中考试试卷一. 在A B C D四个选项中,选择一个正确的答案填入括号内( )1、用char定义的变量在IBM PC机中能表示的数的范围是:A) 0 ~+255 B) 0 ~+65535C) -128 ~+127 D) 只能存字符,不能存数( )2、设有int k=2; 则执行printf(“%d”,k++);的输出为:A) 0 B) 1 C) 2 D) 3()3、在while(!x)中,!x与______等价。
A) x==0 B) x!=0 C) x==1 D) x!=1()4、设有声明int value=‟5‟;,则执行下列选项的赋值语句后,value的值不等于5的是_____。
A.) value=value - ‟0‟; B) value=value - 0x30;C) value=value - 49; D) value=value - ‟\060‟;()5、如int k=7;float x=2.5,y=4.7; 则表达式 x+k%3*(int)(x+y)%2/4 运算后的值是:A) 0 B) 2 C) 2.5 D) 2.75( ) 6、若有int a,b;则语句:printf("%d",(a=2)&&(b=-2);的输出结果是:A)无输出 B)结果不确定 C)-1 D)1( ) 7、设有int a=2; 则执行printf("%d",5>a>1);的输出为:A)0 B)1 C)2 D)3( ) 8、执行语句c=(a=2,a+1,b=a++);后, a,b,c的值依次为:A)2,3,4 B)3,3,3 C)4,5,4 D)3,2,2( )9、以下程序的输出结果是A)2 0 B)3 1 C)3 2 1 D)2 1 0main( ){ int n=4;while(n--)printf("%d ",--n);}( )10、给出以下定义:char x[ ]="abcdef";char y[ ]={'a','b','c','d','e','f'};则正确的叙述为A) 数组x和数组y等价 B) 数组x和数组y的长度相同C) 数组x的长度大于数组y的长度 D) 数组x的长度小于数组y的长度( )11、若对一个函数调用在前, 定义在后,C语言将视其返回值为__________类型。
C 期中考试卷答案及评分标准.doc
期中考试卷日期:2009/5/8 地点:东校区A501时间:2:40-3:40pm, 60分钟,满分:100分一、填空题(30分,每空1分,lOmin)1.程序设计的方法大致分为两类:_自顶向下—和—自底向上—。
一类方法将复杂问题分解成多个小的、简单的问题求解,而另一类则将小问题的解组合起来解决复杂的问题。
现实中的程序设计一般是两者的结合。
2.结构化程序是一种单入口单出口的程序,所使用的三种基本控制结构是:_顺序一、一选择一和一循环一3.定义一种程序设计语言必须描述它的语法和语义,其中前者是刻画什么样的符号传是有效单词,而后者描述的是程序语句的含义。
常用于定义前者的方法包括:_BNF—和—语法图—o4.一个C++语言程序是由一个一主函数—再加上若干—类_或一函数—组成。
程序代码要经过一编译_、链接等过程才能运行。
5.数据类型决定了数据的一表示方式_、_取值范围和一可以进行的操作一o6.下列标识符中哪些可以作为程序员自定义的合法标识符?_A_A. _whileB. newC. 3rlD. number3.57.函数有两种声明形式:_引用性声明一和一定义性声明其中前者又称为函数原型,只说明函数的一函数名_、一形参_______ 和—返回值 _______ ;后者又称为函数定义,给出函数体。
&静态变量既可以是局部变量,也可以是全局变量。
静态变量的生存期为一全局寿命—。
当声明为静态全局变量时,其作用域为_文件域—o9.ptr是一个float类型的指针,ptr指向地址2400,地址中存放的值为24。
那么ptr+1的值是一2404, *ptr+l的值是_25 _____ o10.现有声明语句char name[25] = "Sun Yat-sen University",那么sizeof (name)的值为_______________ , strlen(name)的值为B 。
A. 20B.22C. 23D. 21E. 2511.C++类的对象成员的构造函数的调用先于类自身构造函数的执行,而且对象成员构造函数的执行次序取决于:AA.在类中声明的次序B.在初始化列表中的次序二、找错题(15分,每题5分,lOmin)1.给定下述BNF,找出不符合所描述语法的句子:三、简答题(15分,每题5分,lOmin)1.请说明算法、实体和程序之间的关系。
C期中考试(含答案)
计算机基础(二)期中考试卷(含答案)一、选择题(1-15题每题2分,16-25题每题3分,共60分)(1)下列常数中不能作为C语言常量的是【B】A)0xabc B)2.5e-0.2 C)32 D)0747 (2)下列可用于C用户标识符的一组是【B】A)void, define, WORD B)a3_b3, _123, CarC)For, -abc, IFCase D)2a, DO, sizeof(3)C语言中运算对象必须是整型的运算符是【A】A)%= B)/ C)= D)<=(4)已知int x=10, y=3;则执行该语句printf("%d,%d\n",x--,--y);的输出结果是【D】A)10,3 B)9,3 C)9,2 D)10,2(5)short型的数据长度为2个字节,则unsigned short 类型数据的取值范围是【C】A)-127~128 B)0~255 C)0~65535 D)0~32768 (6)已知int x=6,y=2,z;则执行表达式z=x=x>y后,变量z 的值为【B】A)0 B)1 C)4 D)5(7)已知int x=5,y=3;则表达式(x||y)&&78的结果为【A】A)1 B)0 C)5 D)78(8)已知int x=1,y=1;表达式(!x||y--)的值是【B】A)0 B)1 C)2 D)-1(9)已知int i,j;则内循环体的执行次数是【C】for(i=6;i;i--)for(j=0;j<5;j++);A)40 B)35 C)30 D)25(10)已知int x,i,j,k;则计算表达式x=(i=4,j=16,k=32)后,x的值为【C】A)4 B)16 C)32 D)52(11)下列程序段执行后,x的值为【D】int a=14,b=15,x;char c='A';x=(a&&b)&&(c<'B');A)ture B)false C)0 D)1(12)下列表达式中,结果为5的是【B】A)6*5%6 B)5*-2+15 C)5+75%10 D)6+-2/3 (13)已知int k=10;则下列程序的输出结果为【B】do{printf("%d",k--);}while(!k);A)9 B)10 C)10987654321 D)没有输出(14)对以下程序段的描述,正确的是【C】x=-1;do{x=x*x;}while(!x);A)是死循环 B)循环体执行两次C)循环体执行一次 D)有语法错误(15)已知int i,j;则for(i=j=0; i<10&&j<8; i++,j+=3);控制的循环体执行的次数是【C】A)9 B)8 C)3 D)2(16)以下程序输出结果是【A】#include <stdio.h>int main(void){int a=10,b=50,c=30;a=a>30?1:2;b=b>30?1:2;c=c>30?1:2;printf("%d,%d,%d\n",a,b,c);return 0;}A)2,1,2 B)1,2,1 C)1,1,2 D)2,1,1 (17)下列程序的输出结果是【D】#include <stdio.h>int main(void){int a=45,b=40,c=50,d;d=a>30?b:c;switch(d){case 30: printf("%d,",a);case 40: printf("%d,",b);case 50: printf("%d,",c);default: printf("#");}return 0;}A)40,50 B)50,# C)40,# D)40,50,# (18)下列程序的输出结果是【B】#include <stdio.h>int main(void){int a=10,b=10,k;for(k=0;a>8;b=++k)printf("%d,%d,",a--,--b);return 0;}A)10,9,9,8, B)10,9,9,0,C)10,10,9,1, D)9,9,9,1,(19)下列程序的输出结果是【B】#include <stdio.h>int main(void){int a,b,m;for(a=5;a>=1;a--)for(m=0,b=a;b<=5;b++)m=m+a*b;printf("%d\n",m);return 0;}A)30 B)15 C)20 D)1(20)下列程序的输出结果是【A】#include <stdio.h>int main(void){char c;c=('z'-'a')/2+'A';putchar(c);return 0;}A)M B)N C)O D)Q(21)下列程序的输出结果是【D】#include <stdio.h>int main(void){int k=8;switch(k){case 9:k+=1;case 10:k+=1;case 11:k+=1;break;default:k+=1;}printf("%d\n",k);return 0;}A)12 B)11 C)10 D)9(22)下列程序的输出结果是【B】#include <stdio.h>int main(void){int i=6;while(i--)printf("%d",--i);printf("\n");return 0;}A)531 B)420 C)654321 D)死循环(23)下列程序的输出结果是【C】#include <stdio.h>int main(void){int i=1,j=1,k=2;if((j++||k++)&&i++)printf("%d,%d,%d\n",i,j,k);return 0;}A)1,1,2 B)2,2,1 C)2,2,2 D)2,2,3 (24)下列程序的输出结果是【C】#include <stdio.h>int main(void){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("%.2f\n",y);return 0;}A)0.00 B)0.25 C)0.50 D)1.00(25)执行下列程序从键盘上输入5,2,则输出结果是【C】#include <stdio.h>int main(void){int a,b,k;scanf("%d,%d",&a,&b);k=a;if(a<b) k=a%b;else k=b%a;printf("%d\n",k);return 0;}A)5 B)3 C)2 D)0二、编程题(每题10分,共40分)(1)用户输入圆柱体半径r和高h,输出其体积V,要求输出结果小数点后保留2位有效数字。
《C程序设计》期中试题答案
共7页-第 6 页
} } 4. 如果 a 的因子和等于 b,b 的因子和等于 a,且 a〈〉b,则称 a,b 为亲密数对。 编程找出 10000 以内的亲密数来。
#include<stdio.h> void main() { int a,b,suma,sumb,i,count=0; printf("10000 以内的亲密数对:\n"); for(a=1;a<=10000;a++) { suma=0;sumb=0; for(i=1;i<=a/2;i++) if(a%i==0) b=suma; if(a>b) continue; suma=suma+i;
2
(7)
}while( (8) ); if(n>10000) break; n--; bits=0; a=n; while(a){bits++;a=a/10;} if(bits==2) { x=n%10;y=n/10;
(7): (8):
a=sqrt(n);
a*a!=n++
if((9)) printf("%6d",n); (9): } else if(bits==4) { x=n%100;y=n/100;
for ( k=1; k<=n; k++) printf(“%ld\n”, s); }
fun(k)
3、卡布列克数,定义为:若正整数 n 的可以分割为二个数,而这二个数相加后和 的平方恰好等于 n,那么 n 就是卡布列克数。例如 3025=55 ,而 30+25=55。 以下是找出 10000 以内的卡布列克数的程序,请将空白处补上。 #include <stdio.h> #include <math.h> void main ( ) { long n,x,y,a,b,bits; for(n=16;n<=10000;n++) { do { if(n>10000) break;
C语言期中试卷(含答案)
《 C语言》课程期中考试试卷一. 在A B C D四个选项中,选择一个正确的答案填入括号内( )1、用char定义的变量在IBM PC机中能表示的数的范围是:A) 0 ~+255 B) 0 ~+65535C) -128 ~+127 D) 只能存字符,不能存数( )2、设有int k=2; 则执行printf(“%d”,k++);的输出为:A) 0 B) 1 C) 2 D) 3()3、在while(!x)中,!x与______等价。
A) x==0 B) x!=0 C) x==1 D) x!=1()4、设有声明int value=‟5‟;,则执行下列选项的赋值语句后,value的值不等于5的是_____。
A.) value=value - ‟0‟; B) value=value - 0x30;C) value=value - 49; D) value=value - ‟\060‟;()5、如int k=7;float x=2.5,y=4.7; 则表达式 x+k%3*(int)(x+y)%2/4 运算后的值是:A) 0 B) 2 C) 2.5 D) 2.75( ) 6、若有int a,b;则语句:printf("%d",(a=2)&&(b=-2);的输出结果是:A)无输出 B)结果不确定 C)-1 D)1( ) 7、设有int a=2; 则执行printf("%d",5>a>1);的输出为:A)0 B)1 C)2 D)3( ) 8、执行语句c=(a=2,a+1,b=a++);后, a,b,c的值依次为:A)2,3,4 B)3,3,3 C)4,5,4 D)3,2,2( )9、以下程序的输出结果是A)2 0 B)3 1 C)3 2 1 D)2 1 0main( ){ int n=4;while(n--)printf("%d ",--n);}( )10、给出以下定义:char x[ ]="abcdef";char y[ ]={'a','b','c','d','e','f'};则正确的叙述为A) 数组x和数组y等价 B) 数组x和数组y的长度相同C) 数组x的长度大于数组y的长度 D) 数组x的长度小于数组y的长度( )11、若对一个函数调用在前, 定义在后,C语言将视其返回值为__________类型。
温州大学c语言历年期中考试题目精选及解答
输出
每个测试数据的输出有两行,第一行先输出测试数据的编号,格式如 case#i,其中 i 为测试数据 编号。 第二行是一个整数,表示对应的整数直角三角形的个数。
输入样列
4 5 10 20 30
输出样例
输出样例
yes no ************************************************************************************* #include <stdio.h>
int fun(char a[][10]) {
int i,j,m,l,k,res=1,sum=0; int b[10];//b[1]到 b[9]保存是否有 1-9 的数字 //判断每行是否满足题意 for(i=0;i<9;i++){ for(j=0;j<10;j++) b[j]=0;
for(j=0;j<9;j++) b[a[i][j]-'0']=1;
sum=0; for(j=0;j<10;j++) sum=sum+b[j]; if(sum!=9) re
turn 0; }
//判断每列是否满足题意 for(i=0;i<9;i++){ for(j=0;j<10;j++) b[j]=0;
case#1 1 case#2 2 case#3 6 case#4 11 ************************************************************************************** ******** #include<stdio.h>
C程序设计基础期中测验试题详解
C程序设计基础期中测验试题详解1 / 12————————————————————————————————作者:————————————————————————————————日期:2 / 12《C程序设计基础及实验》课程期中考试试卷参考答案试题一、单选题(每小题2分,共20分)1. 以下正确的字符常量是______。
A.’\412’B.255 C.’\08’D.’\’【解答】A.八进制412超出了8位二进制所能表示的范围03ff;B. 255是一个合法的整数,可以表示一个字节的值;C. 8不是一个合法的八进制数字;D. \是转义字符,\’表示单个单引号字符本身,所以。
字符常量缺少右单引号。
2. 假设有定义:float x=16/5/2.0, y=16/5.0/2; 则x 和y 的值分别为______。
A.1.5 1.6 B.1.6 1.6 C.1.5 1.5 D.1.6 1.5【解答】16/5/2.0 → (16/5)/2.0 → 3/2.0 → 1.516/5.0/2 → (16/5.0)/2 → 3.2/2 → 1.63. 下列语句中,_____ 将输出%d。
A.printf(“%d”); B.printf(“%%d”); C.printf(“\%d”); D.printf(“%%%d”)【解答】A.%d表示输出十进制整型量,但缺少相应的输出表达式,故输出结果是随机值;B.%%表示输出一个%符号本身,d是普通字符,原样输出,所以输出%d;C.\%表示符号%,%d表示输出十进制整型值,故输出结果是随机值;D.%%表示输出符号%本身,%d表示输出十进制整型值。
4. 下列程序段输出结果为_____。
int x=1, y=012;printf(“%d”,y*x++);A.12 B.10 C.20 D.24【解答】x++表达式的值是1,y*x++ → y*1 → y → 012 → 105. 下列程序段输出结果为_____。
c期中考试题库及答案
c期中考试题库及答案一、选择题(每题2分,共20分)1. 以下哪个选项是C语言中合法的变量名?A. 2variableB. variable2C. variable-nameD. variable_name答案:B2. 在C语言中,哪个关键字用于声明一个函数?A. intB. functionC. voidD. return答案:C3. C语言中,哪个运算符用于比较两个值是否相等?A. ==B. !=C. =D. <=答案:A4. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. %D. ++答案:A5. 在C语言中,哪个函数用于计算一个数的绝对值?A. abs()B. fabs()C. sqrt()D. pow()答案:A6. C语言中,哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A7. 在C语言中,哪个函数用于将字符串复制到另一个字符串?A. strcpy()B. strncpy()C. strcat()D. strncat()答案:A8. C语言中,哪个函数用于将整数转换为字符串?A. atoi()B. itoa()C. strtol()D. sprintf()答案:B9. 在C语言中,哪个关键字用于声明一个指针?A. int*B. pointerC. *D. ptr答案:C10. C语言中,哪个函数用于计算一个数的平方根?A. sqrt()B. pow()C. abs()D. log()答案:A二、填空题(每题2分,共20分)1. C语言中,用于声明一个整型变量的关键字是________。
答案:int2. C语言中,用于声明一个浮点型变量的关键字是________。
答案:float 或 double3. C语言中,用于声明一个字符型变量的关键字是________。
答案:char4. C语言中,用于声明一个布尔型变量的关键字是________。
c语言程序设计期中考试题及答案
c语言程序设计期中考试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于声明函数?A. intB. returnC. voidD. function答案:A2. 以下哪个选项是C语言中的合法整型常量?A. 0x12B. 08C. 1.2e3D. 0b1010答案:A3. 若有以下代码段:```cint a = 10, b = 20;swap(a, b);```为了使代码正常工作,函数`swap`的参数应该是什么类型?A. intB. int*C. doubleD. double*答案:B4. 在C语言中,以下哪个运算符用于计算两个数的和?A. +=B. +=C. ||D. &&答案:A5. 下列哪个选项是C语言中的合法浮点数?A. 3.14B. .14C. 3e-2D. 1e答案:C6. 在C语言中,以下哪个关键字用于声明一个结构体?A. structB. unionC. enumD. typedef答案:A7. 以下哪个选项是C语言中的合法字符常量?A. 'a'B. "a"C. 'ab'D. '0'答案:A8. 在C语言中,以下哪个关键字用于声明一个数组?A. arrayB. listC. vectorD. int[]答案:D9. 以下哪个选项是C语言中的合法字符串常量?A. "Hello, World!"B. 'Hello, World!'C. "Hello" "World!"D. 'Hello' 'World!'答案:A10. 在C语言中,以下哪个关键字用于声明一个枚举?A. enumB. listC. setD. map答案:A二、填空题(每题3分,共15分)1. C语言中,用于定义一个空语句的关键字是________。
《C语言程序设计》期中试卷及答案
int x=0177; printf(x=%3d,x=%6d,x=%6o,x=%6x,x=%6u\n”,x,x,x,x,x);
4.C语言中的逻辑运算符按优先级由高到低的排列是
5.假设变量a,b均为整型,以下语句不借助任何变量把a,b中的值进行交换,请填空。a+=b;b=a-;a- =;
A) 0 B) 1 C) true D)非0定义如下变量:
19. int n=10;
则下列循环的输出结果是B
while (n>7)
{ n--;
printf(“%d\n”,n);
}
A) 10 B) 9 C) 10 D) 9
9 8 9 8
8 7 8 7
7 6
20.若k为整型,以下while循环_____C_____次。
A) trueB) 非零值C) 0D) 1
7.设int c=5和int a, a=2+(c+=c++,c+8,++c),则a=____B______
A) 15 B) 14 C) 13 D) 16
8.设a为整形变量,不能正确表达数学关系:10<a<15 的C语言表达式是__A__
A) 10<a<15B) a==11||a==12||a==13||a==14
5.若变量已正确说明为int类型,要给a,b,c输入数据,以下正确的输入语句是D
A) read(a,b,c); B) scanf(“%d%d%d”,a,b,c);
C) scanf(“%D%D%D”,&a,%b,%c); D) scanf(“%d%d%d”,&a,&b,&c);
李红-08计信-C语言期中考试答案
1、scanf(“%d”,&x)
y=2*x+1
2、”%d”,&n
i<=n
fac*i
3、n<=100
n%3!=0
“%d”,n
六、编程题
1、main()
{ int x,y;
scanf(“%d”,&x);
if(x<1)
y=-1;
else
if(x==1)
y=0
else
y=1
printf(“%d”,y);
1、
*
**
***
****
*****
2、a,98
3、9,11,9,10
4、-1
5、a=2,b=1
五、程序填空题
1、scanf(“%d”,&x)
y=x*x+3
2、scanf(“%d%d”,&a,&b)
a+b
“%d”,sum
3、max
x:y
max>c
六、编程题
1、main()
{ printf(“**********\nHello!\n**********”);
}
2、main()
{ float c,F;
scanf(“%f”,&F);
c=5*(F-32)/9;
printf(“Wendu=%.2f”,c);
}
3、main()
{ int x,y;
scanf(“%d”,&x);
if(x<1)
y=-2;
else
intf(“%d”,y);
}
2、main()
{ int i,s=0;
C程期中试卷参考答案
C语言程序设计基础评分标准:每题2分。
全答对得2分,否则得0分。
二、程序填空(共20分,每空2分)1. scanf("%d",&x) ; y=100*c+10*b+a;2. a[i]=a[i-1]+a[i-2]; printf("\n") ;3. t=i; t!=0 t==i4. #include<math.h> printf("%d",i); return 0; 评分标准:每空2分,完全答对得2分,否则不得分。
三、读程(共16分,每题4分)1、* * * * *x=1y=1z=02、3,33、2,442,664、7,6,5,4评分标准:每题4分,如完全答对得4分,否则得0分。
四、编程题(共40分,第一、二小题15分,三小题10分)1、参考答案:#include<stdio.h>#include <math.h>void main(){float x,y;scanf("%f",&x);if(x<-3) y=x*x+cos(x);else if(x<3) y=sin(5*x);else y=x/2-6*x*x*x;printf(“%f”,y);}评分标准:1)N-S流程图5分。
有如下错误:无输入、无输出、顺序结构选择结构表示不正确、运算不符合题意等,每错一处扣1分。
2)程序10分。
结构错误(如main()描述错误[-1]、算法错误[-2]、函数体数据和算法顺序错误[-1]、if语句语法错误[-1])扣5分;其余错误每错一处扣1分(如没有包含math.h、数据类型描述错误、无输入输出或输入输出错误、算术运算描述错误、条件描述错误、函数调用错误等)。
2、参考答案:#include<stdio.h>void main(){float t,sum=0;int i,a=2,b=1;for( i=1;i<=10;i++){ t=(float)a/b;sum+=t;a+=2;b+=2;}printf("sum=%f",sum);}评分标准:1)本题有多种递推方法,阅卷老师可参阅如下标准。
C语言期中考试题目及答案
一、选择题:【1】在 C 语言中,用户能使用的正确标识符是。
A) 5f B) _for C) struct D) _f.5答案: B分析:标识符只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线;大小写敏感;不能使用关键字;最长 32 个字符。
【2】以下那个是正确的 C 语言常量。
A) 0678 B) '\0101' C) 1.2E3.5 D) 123L答案: D【3】以下对 C 语言源程序有关常识正确的描述是。
A) main 函数必须位于文件的开头B) 每个语句必须单独一行C) 标识符中大小写字母没有区别D) 宏定义#define 部分不一定要放在程序的最开头位置答案: D【4】以下 for 循环的执行次数是。
for(x=0,y=0;(y=123)&&(x<4);x++)A)是无限循环 B)循环次数不定 C) 执行 4 次 D)执行 3 次答案: C分析:若要判断(y=123)&&(x<4)假,因为 y=123 永远为真,所以只需要判断 x<4 为假即可。
【5】对 for(表达式 1;;表达式 3)可理解为。
A) for(表达式 1;0;表达式 3)B) for(表达式 1;1;表达式 3)C) for(表达式 1; 表达式 1;表达式 3)D) for(表达式 1; 表达式 3;表达式 3)答案: B【6】设有程序段int k=10;while(k=0) k=k-1;则下面描述中正确的是。
A) while 循环执行 10 次 B)循环是无限循环C)循环体语句一次也不执行 D)循环体语句执行一次答案: C分析:因为 k=0 为假,所以程序不执行其后的语句。
【7】C 语言中 while 和 do-while 循环的主要区别是。
A) do-while 的循环体至少无条件执行一次B) while 的循环控制条件比 do-while 的循环控制条件严格C) do-while 允许从外部转到循环体内D) do-while 的循环体不能是复合语句答案: A【8】设有: int a=1,b=2,c=3,d=4,m=2,n=2; 执行(m=a>b)&&(n=c>d) 后 n 的值为。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
<< C++语言及程序设计>>期中测验试卷
一、选择题(23分)
1、关于C++与C语言的关系的描述中,()是错误的。
A. C语言是C++的一个子集;
B. C语言与C++是兼容的;
C. C++对C语言进行了一些改进;
D. C++和C语言都是面向对象的;
2、按照标识符的要求,()符号不能组成标识符。
A.连接符;
B. 下划线;
C.大小写字母;
D.数字字符;
3、下列十六进制的整型数常数表示中,()是错误的。
A.0xaf;B. 0X1b; C. 2fx; D. 0xAE
4、下列变量名中,()是合法的。
A.CHINA;
B. byte-size;
C. double;
D. A+a
5、在int a[5]={1,3,5};中,数组元素a[2]的值是()。
A. 1;
B. 3;
C. 5;
D.0
6、在int b[][3]={{1},{3,2},{4,5,6},{0}};中a[2][2]的值是()。
A.0;
B. 5;
C.6;
D.2;
7.下列表示引用的方法中,()是正确的。
已知:int m=10;
A. int &x=m;
B. int &y=10;
C. int &z;
D. float &t=&m
8.下列各运算符中,()优先级最高。
A. +(双目);
B. *(单目);
C. <=;
D. *=
9.下列关于类型转换的描述中,()是错误的。
A.在不同类型操作数组成的表达式中,其表达式类型一定是最高类型double型;
B.逗号表达式的类型是最后一个表达式的类型;
C.赋值表达式的类型是左值的类型;
D.在由底向高的类型转换中是保值映射。
10.已知int a=1,b=2;则逗号表达式(a++,a+=b,a-b)的值是()
A、3
B、4
C、1
D、2
11.已知:int a=5;则表达式a*=2的值为( )
A、5
B、2
C、10
D、3
12.下列do-while循环的次数是()
int a=1;
do
{a--;}while(a==0);
A、0
B、1
C、2
D、无限
13.设int x=0,y=2;则语句if(!x)y++;执行完毕后y的值为()
A、0
B、2
C、3
D、4
14.已知:int a(5),b(3);当执行完语句a||b++ 后,a,b的值分别为( )
A 、1,3 B、0,4 C、5,3 D、5,4
下面程序的运行结果是()
#include<iostream.h>
void main()
{ char x(‘m’),y(‘n’);
int n=x<y;
cout<<n<<endl;
}
A、m
B、 n
C、 0
D、 1
15、执行以下程序后的输出结果是()
#include <iostream.h>
void main( )
{
char a[]=”abc\0abc”;
cout<<a<<endl;
}
A) abc\0abc B) abc\ C) abc\0 D) abc
16、设有语句char a='\72'; 则变量a包含的字符个数是()。
A)1B)2 C)3 D)说明不合法
17、若有定义:int a[2][3];,以下选项中对a数组元素正确引用的是
A)a[2][!1] B)a[2][3] C)a[0][3] D)a[1>2][ !1]
18.下列【】是C++合法的字符型常量。
(A) 97 (B)”a”(C) ‘\t’ (D) a
19.下列【】属于float类型常量。
(A) 3.14f (B) 0.0314E2 (C) 3.14L (D) 3.14
20.如有int a=11;则表达式(a++*1/4)的值是【】。
(A) 0 (B) 2.75 (C) 3 (D) 2
21.下列条件语句中,功能与其它语句不同的是【】。
(A) if (a==0) cout<<x<<endl;else cout<<y<<endl;
(B) if (a==0) cout<<y<<endl;else cout<<x<<endl;
(C) if (a!=0) cout<<x<<endl;else cout<<y<<endl;
(D) if (a) cout<<x<<endl;else cout<<y<<endl;
22、下列关于switch语句描述中,【】是正确的。
(A) switch语句中default子句只能放在最后
(B) switch语句中每个语句序列中必须有break语句
(C) switch语句中case子句后面的表达式只能是整型表达式
(D) switch语句中default子句可以没有,也可以有一个
23、设int a[]={1,2,3,4,5,6};*p=a;则值为5的表达式是【】。
(A) *p+5 (B) *(p+4) (C)*p+=9 (D)p+5
二、阅读程序,写出程序的输出结果(37分)
1、#include<iostream.h>
void main()
{ int a[]={2,4,6,8,10};
int *p=a;
cout<<*(p+3)<<endl;
for(i=0;i<5;i++)
cout<<a[i]<< “ “;
}
运行结果是:
2、#include<iostream.h>
void main()
{ int a,b;
a=5&&2+5%2-5/2;
b=a>3?a++:a--;
cout<<a<<…\t‟<<b<<endl;
}
运行结果是:
3、#include<iostream.h>
void main()
{ int a(1),b(5);
if(a)
if(b==5)
{a+=5;cout<<a<<endl;}
else
{a-=b;cout<<a<<endl;}
cout<<a+b<<endl;
}
运行结果是:
4.#include <iostream.h>
void main()
{ int i,j;
for(i=1;i<5;i++)
{ for(j=0;j<i;j++) cout<<i<<'\t';
cout<<"\n";
}
cout<<"\n";
}
5.#include<iostream.h>
void main()
{ int i(10);
while(i++)
{ if(i==30) break;
i f(i%5!=1) continue;
cout<<i<<endl;}
}
6、#include <iostream.h>
void main(){
int x=1,y=0,a=0,b=0;
switch(x)
{
case 1:switch(y)
{
case 0:a++;
case 1:b++;break;
}
case 2:a++;b++;break;
}
cout<<”a=”<<a<<”,b=”<<b<<endl;
7、#include <iostream.h>
void main()
{
int a[]={1,2,3,4,5};
int *p=a;
*(p+3)*=3;
cout<<”*p=”<<*p<<”,”<<”*(p+3)=”<<p[3]<<endl;
}
三、编程题(请按照题目要求编写出完整的程序,40分)
1、有一函数如下表示:
x (x<1)
y= x2+2x+1 (1≤x<10)
x-10 (x≥10)
请编程实现:从键盘输入x值,计算y值并输出。
2、求100之内的自然数中被13整除的最大数。
3、有一个3行3列的矩阵,求出矩阵所有数之和。
4、求Fibonacci数列的前20项,并输出在屏幕上。