浙江传媒学院C语言程序设计期终考试A卷
- 格式:doc
- 大小:55.50 KB
- 文档页数:8
浙江大学C语言理论考试模拟试题答案一、判断题共10题,每题1分,共10分。
正确的请选择A,错误的请选择B。
1、在C语言中,函数不可以嵌套定义,但函数可以嵌套调用。
AA、正确B、错误解答:A2、在程序中else 子句可以单独使用。
BA、正确B、错误解答:B3、C 语言源程序文件通过了编译、连接之后, 生成一个后缀为.EXE 的文件。
( ) AA、正确B、错误解答:A4、_ya是不合法的C语言标识符。
BA、正确B、错误解答:B5、在数组初始化时,如果初值个数多于数组长度,将出现错误。
AA、正确B、错误解答:A6、C语言规定,函数返回值的类型是由return语句中的表达式类型所决定。
BA、正确B、错误解答:B7、若有定义int *p, 则表达式p++ 的值就是p 所指向的变量的地址值加1。
BA、正确B、错误解答:B8、'\n'不是一个字符常量。
BA、正确B、错误解答:B9、表达式(z=0, (x=2)||(z=1),z) 的值是1。
BA、正确B、错误解答:B10、若打开文件的方式为“w”而该文件已经存在,则文件中原有数据被清空。
A、正确B、错误二、单选题请从给定的选项中选择一个唯一正确的选项。
每小题2分,共10题,20分。
1、 C下面有关变量的命名,不合法的是:( )A. _intB. __intintC. __int&intD. ___intintintC解答:C2、有变量定义int a;float c;下面输入语句有语法错误的是( )。
A. scanf("%d,%f", &a, &c);B. scanf("x=%d, c=%f", &a, &c);C. scanf("%d%f", &a, &c);D. scanf("%f %d",&a, &c);D解答:D3、下面关于函数参数使用的说法,不正确的是:()A. 函数调用时实参按顺序传递到形参;B. 函数调用时实参把值传递给形参;C. 函数的实参和形参个数可以不一致,但使用时应尽量一致;D. 函数的实参和形参可以同名;C解答:C4、已知int k=1; for(k=1;1;k++) if(k) break; for语句的循环次数是( )。
一、判断题。
共10题,每题1分,共10分。
正确的请选择A,错误的请选择B。
1、C语句必须用一个分号作为结束。
A、正确B、错误正确答案:A,结果:正确2、设有以下定义"int a[10],*p=a;", 则*p被赋初值为数组元素a[0]的地址。
A、正确B、错误正确答案:B,结果:正确3、设变量定义为 char cc[ ]="12\n345" ,则表达式 sizeof(cc) 的值是7。
A、正确B、错误正确答案:A,结果:正确4、若执行fopen函数时发生错误,则函数的返回值是0。
A、正确B、错误正确答案:A,结果:正确5、在函数内部定义的变量称为局部变量。
A、正确B、错误正确答案:A,结果:正确6、在c程序中,else的个数不能多于if的个数。
A、正确B、错误正确答案:A,结果:正确7、若函数f()要返回表达式a+b的值,则必须写成return (a+b)。
A、正确B、错误正确答案:B,结果:正确8、有以下语句,输出结果是:0int x=40,y=4,z=4;x=x==(y=z); printf("%d\n",x);A、正确B、错误正确答案:A,结果:正确9、表达式 3.14%2 不符合C语言语法。
A、正确B、错误正确答案:A,结果:正确10、对于下列for循环语句,循环一次也不能执行A、正确B、错误正确答案:A,结果:正确二、单选题。
请从给定的选项中选择一个唯一正确的选项。
每小题2分,共10题,20分。
1、表达式 strlen("hello\nWang\n") 的值是_______。
A. 10B. 11C. 12D. 13正确答案:B,结果:正确2、C下面有关变量的命名,不合法的是:( )A. _intB. __intintC. __int&intD. ___intintint正确答案:C,结果:正确3、设变量定义为 int a[2]={1,3}, *p=&a[0]+1;,则*p的值是_____。
《高级语言程序设计1》期末考试试题(A卷) (2005.1) 姓名: 学号: 专业(系):一、标记出如下程序中的语法错误,并简单说明出错原因(6分)。
#include<iostrem.h>void main(){int d[10], abc[6] = {2,4,0,-5,10,6,-8}, count=0;for(i=0; i<10; i++)if(d[i]=i) count++;else count -;cout<<” count=”<<count<<en dl;switch( d[i] ){case 1,2: cout<<”1,2\n”; break;case 3: cout<<”3\n”; break;default: cout<<”others\n”;}1+2, 2+=3, count+=5;}二、选择题(14分)(共7题,每题2分)1.以下程序的输出结果是_____。
#include<iostream.h>main(){ int x=1,y=0,a=0,b=0;switch(x){case 1:switch(y){case 0:a++;break;case 1:b++;break;}case 2:a++;b++;break;}cout<<a<<","<<b<<endl;}A. 2,1B.1,1C.1,0D.2,22.以下能正确计算1*2*3*...*10的程序段是()。
A)do {i=1;s=1; B)do {i=1;s=0;s=s*i; i++;} s=s*i;i++;}while(i<=10); while(i<=10);C) i=1;s=1; D)i=1;s=0;do {s=s*i; do{s=s*i;i++;} i++;}while(i<=10); while(i<=10);3. int a=1,b=2,c=2;while(a<b<c) {t=a;a=b;b=t;c--;}cout<<a<<”,”<<b<<”,”<<c;运行结果为()。
浙江理工大学20 /20 学年第学期试卷考试时间年月日专业班级学号姓名成绩阅卷老师《C程序设计》期末考试卷A一、语言基础(每题2分,共26分)1.C程序的基本组成单位是什么?2.若x的当前值为5,执行语句“if(x=3) x=x+5后,x的值是多少?3.计算表达式“4/5*(float)3+(float)3*4/5”的值。
4.函数f定义如下,则执行语句“m=f(5);”后,m的值应为。
int f(int k){If(k==0||k==1) return 1;Else return f(k-1)+f(k-2);}5.写出下列程序段的输出结果。
char c,k;c='b';k=4;页脚内容1switch(c){case 'a':k=1;case 'b':k=2;case 'c':k=3;}6.定义int x,y,z;x=y=z;执行语句z=--x&&y++;后,x,y,z的值分别是多少?7.符号“a”和’a’的区别是。
8.在C语言程序设计中,正确的标识符是由组成的。
9.若fp 已正确定义为一个文件指针,d1.dat 为二进制文件,请填空,以便为“读”而打开此文件:fp=fopen( );。
浙江理工大学20 /20 学年第学期试卷考试时间年月日专业班级学号姓名成绩阅卷老师10.在循环中,continue 语句与break 语句的区别是:continue 语句是,break 语句是。
11.若在程序中用到“putchar”,应在程序开头写上包含命令,若在程序中用到“strlen()”函数时,应在程序开头写上包含命令。
页脚内容212.设y为int型变量,请写出描述“y是奇数”的表达式。
13.若int x=5;while (x>0)printf(“%d”,x--);的循环次数为。
二、程序填空(每空2分,共22分)程序1:[程序说明]输入三角形的三条边a,b,c,求三角形的面积。
C期末考试卷A卷答案Newly compiled on November 23, 2020电类08-09二学期C++(上)期末考试卷A 卷答案一.大学计算机基础部分(一). 选择题A 、B 、C 、D 、C 、B 、B 、D 、B 、C(二). 填空题(1)16,FFFF (2)逻辑与、逻辑或(3)冒泡排序 、 选择排序 (4)查找 回溯(5)# : a[i]>number 或 number<a[i] 或 a[i]>=number 或 number<=a[i]@: number → a[10]二.C++程序设计部分(三). 选择题A 、C 、D 、B 、B 、C 、B 、B 、C 、C(四). 填空题(1)21;(2)f ;(3)0, 1, 2, 3, 4, 5, 6;(4)6;(5)789;(6)1;(7)成员函数;(8)1;(9)局部变量sum 未初始化;或 改为全局或static (10)友元函数(五). 阅读填空题1. (1)First: a=94,b=16,c=178(2)Second: a=178,b=94,c=16 2. (3))31(2n n x y +⋅=或)391(2n n y +⋅= 或 29 (4) y=5123. (5) Input 5 integers:(7) 141;64;854. (8) The average is:(9) The number is:35.(10) 5 is Constructor. (11) Copy Constructor.(12) The private data is: NumA=5(13) 5 is Destructor.(14) 5 is Destructor.(六). 完善程序题1、编写程序求π的值(每空2分,共6分)(1) * arctan( 1/ )(2) e / i > 1e-15 )(3) e*x*x ;2、输入一个8位二进制数,将其转换为十进制数输出。
一、判断题。
共10题,每题1分,共10分。
正确的请选择A,错误的请选择B。
1、int *p1[5], (*p2)[5]; 试问语句p1=p1+2是否正确A、正确B、错误2、C语言源程序是可以用来直接运行的程序。
A、正确B、错误3、break语句只能用于循环语句内部。
A、正确B、错误4、C的double类型数据可以精确表示任何实数。
A、正确B、错误5、在C 语言程序中,在函数内部定义的变量称为全局变量。
A、正确B、错误6、在函数调用时,实参和形参共用存储单元。
A、正确B、错误7、判断一个量是否为“真”时,以0代表“假”,以非0代表“真”。
A、正确B、错误8、当顺利执行了文件关闭操作时,fclose函数的返回值是0。
A、正确B、错误9、可以根据需要在一个函数中定义另一个函数。
A、正确B、错误10、在C语言中,数组名是一个不可改变的地址常量,不能对它进行赋值运算。
A、正确B、错误特别提示:答题选择答案时,不要点击“单选钮”,请点击“选择项的文字”,否则答案不会真被选中。
只有答案的选择项字母出现在“解答文本框”,才表示你已经成功选取了答案。
二、单选题。
请从给定的选项中选择一个唯一正确的选项。
每小题2分,共10题,20分。
1、若x是实型变量,表达式(x=19/4) 的值是______ 。
A. 4B. 4.0C. 5D. 5.02、下列选项中正确的语句组是______。
A. char s[8];s={"Beijing"}B. char *s;s={"Beijing"}C. char s[8];s="Beijing"D. char *s=NULL; s="Beijing"3、结构型变量占用内存的字节数是______。
A. 各成员占用内存字节数之和B. 第一个成员占用的内存字节数C. 占用内存最大成员所需的字节数D. 最后一个成员占用的内存字节数4、 设 int *p,a[10]; p=a;下列不能与a[i]等价的是______。
一、判断题。
共10题,每题1分,共10分。
正确的请选择A,错误的请选择B。
1、C语句必须用一个分号作为结束。
A、正确B、错误正确答案:A,结果:正确2、设有以下定义"int a[10],*p=a;", 则*p被赋初值为数组元素a[0]的地址。
A、正确B、错误正确答案:B,结果:正确3、设变量定义为 char cc[ ]="12\n345" ,则表达式 sizeof(cc) 的值是7。
A、正确B、错误正确答案:A,结果:正确4、若执行fopen函数时发生错误,则函数的返回值是0。
A、正确B、错误正确答案:A,结果:正确5、在函数内部定义的变量称为局部变量。
A、正确B、错误正确答案:A,结果:正确6、在c程序中,else的个数不能多于if的个数。
A、正确B、错误正确答案:A,结果:正确7、若函数f()要返回表达式a+b的值,则必须写成return (a+b)。
A、正确B、错误正确答案:B,结果:正确8、有以下语句,输出结果是:0int x=40,y=4,z=4;x=x==(y=z); printf("%d\n",x);A、正确B、错误正确答案:A,结果:正确9、表达式 3.14%2 不符合C语言语法。
A、正确B、错误正确答案:A,结果:正确10、对于下列for循环语句,循环一次也不能执行A、正确B、错误正确答案:A,结果:正确二、单选题。
请从给定的选项中选择一个唯一正确的选项。
每小题2分,共10题,20分。
1、表达式 strlen("hello\nWang\n") 的值是_______。
A. 10B. 11C. 12D. 13正确答案:B,结果:正确2、C下面有关变量的命名,不合法的是:( )A. _intB. __intintC. __int&intD. ___intintint正确答案:C,结果:正确3、设变量定义为 int a[2]={1,3}, *p=&a[0]+1;,则*p的值是_____。
《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.下列程序段输出结果为 _____。
int a=1,b=2,c=2,t;. .专业.知识.分享. .. .专业.知识.分享. .while(a<b<c) { t=a; a=b; b=t; c--; }printf(“%d,%d,%d”,a,b,c);A .1,2,0B .2,1,0C .1,2,1D .2,1,1【解答】a=1,b=2,c=2(1) 表达式a<b<c → 1<2<2 → 1 < 2 → 1条件成立,则执行循环体,结果为:a=2,b=1,c=1(2) 表达式a<b<c → 2<1<1 → 0 < 1 → 1条件成立,则执行循环体,结果为:a=1,b=2,c=0(3) 表达式a<b<c → 1<2<0 → 1 < 0 → 0条件不成立,循环结束。
浙江传媒学院《C语言程序设计》期终(考试)(A)卷 2005—2006 学年 第 二 学期 任课教师 系 班 姓名 学号 得分
一、 选择题(共40分,每小题2分) 1、组成C语言程序的是( ) A、过程 B、函数 C、子程序 D、主程序和子程序 2、 下列字符序列中,合法的标识符是( ) A、S.b,sum,average,_above B、class,day,louts_1,2day C、#md,&12x,momth,student_n1 D、D56,r_1,name,_st_1 3、设n=10,i=4,则赋值运算n%=i+2执行后,n的值为( ) A、0 B、2 C、4 D、6 4、下述程序的输出结果是( ) #include void main() { int x=-1,y=3,k; k=x++<=0&&!(y--<=0); printf(“%d,%d,%d”,k,x,y); } A、0,0,3 B、0,1,2 C、1,0,2 D1,1,3 5、执行下面程序中输出语句后, a的值是( ) void main() { int a;
printf("%d\n",(a=4*5,a*4,a+5)); } A、85 B、80 C、25 D、20 6、执行下列程序时输入:1234567,程序的运行结果为( ) void main() { int x,y; scanf(“%2d%*2c%2d”,&x,&y); printf(“%d\n”,x+y); } A、57 B、68 C、17 D、46 7、为了避免嵌套的条件语句if-else的两义性,C语言规定:else与( )配对 A、缩排位置相同的if B、其之前最后的if C、其之后最近的if D、同一行上的if 8、执行下列程序,当输入2时输出的结果是( ) void main() { int k; scanf(“%d”,&k); switch(k){ case 1: printf(“%d\n”,k++); case 2: printf(“%d\n”,k++); case 3: printf(“%d\n”,k++); case 4: printf(“%d\n”,k++); break; default:printf(“Full!\n”); } } A、1 B、2 C、2 D、1 3 2 4 3 5 4 9、以下for语句构成的循环执行的次数为( ) #include #define N 2 #define M N+1 #define NUM (M+2)*M/2 void main() { int i,n=0; for(i=0;i<=NUM;i++){ n++; printf(“%d”,n); } printf(“%d”,n); } A、7 B、9 C、11 D、13 10、在循环体中执行break语句,其作用是( ) A、终止程序运行 B、继续执行break语句之后的循环体各语句 C、结束本次循环,进行下次循环 D、跳出该循环体,提前结束循环 11、对于for(表达式1;;表达式3)可理解为( ) A、for(表达式1;0;表达式3) B、for(表达式1;1;表达式3) C、for(表达式1;表达式1;表达式3) D、for(表达式1;表达式3;表达式3) 12、若有以下定义和语句: int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则不能表示 a数组元素的表达式是( )。 A.a[*p] B.a[10] C.*a D.a[p-a] 13、以下对二维数组a进行不正确初始化的是( ) A、int a[ ][3]={3,2,1,1,2,3}; B、int a[ ][3]={{3,2,1},{1,2,3}}; C、int a[2][3]={{3,2,1},{1,2,3}}; D、int a[ ][ ]={{3,2,1},{1,2,3}}; 14、执行下面程序段后,其输出结果是( ) char str[ ]=”ab\056\n\0/2\\\n”; printf(“%d”,strlen(str)); A、3 B、4 C、2 D、12 15、下面函数的功能是( ) int fun(char s[ ], char t[ ]) { int i=-1; while(++i,s[i]==t[i]&&s[i]!=’\0’); return (s[i]==’\0’&&t[i]==’\0’); } A、比较字符串s和t的长度 B、比较字符串s和t的大小 C、比较字符串s和t是否相等 D、将字符串t赋给字符串s 16、#define能作简单的替代,用宏来替代计算多项式3*x*x+2*x+1的值的函数f,正确的宏定义语句为( ) A、#define f(x) 3*x*x+2*x+1 B、#define f 3*x*x+2*x+1 C、#define f(a) (3*a*a+2*a+1) D、#define (3*x*x+2*x+1) f(x) 17、下面vc编译环境下的程序有两个printf语句,如果第1个printf语句输出的是194,则第2个printf语句的输出结果是( ) void main() { int a[10]={1,2,3,4,5,6,7,8,9,0},*p; p=a; printf(“%x\n”,p); printf(“%x\n”,p+8); } A、224 B、226 C、1b4 D、1b6 18、设有定义语句“int w[3][4]={{0,1},{2,4},{5,8}}, (*p)[4]=w;”,则数值为4的表达式是( ) A、*w[1]+1 B、p++,*(p+1) C、w[2][2] D、p[1][1] 19、下述程序输出结果是( ) #include void main() { int a[3][4]={{1,2,3,4},{3,4,5,6},{5,6,7,8}}; int i, (*p)[4]=a,*q=a[0]; for(i=0;i<3;i++){ if(i==0) (*p)[i+i/2]=*q+2; else p++,++q; } for(i=0;i<3;i++) printf(“%d,”,a[i][j]); } A、2,4,7 B、2,5,7 C、3,4,7 D、3,5,7 20、有以下程序 struc STU{ char name[10]; int num; }; void f1(struct STU c) { struct STU b={"LiSiGuo",2042}; c=b; } void f2(struct STU *c) { struct STU b={"SunDan",2044}; *c=b; } void main( ) { struct STU a={"YangSan",2041},b={"WangYin",2043}; f1(a);f2(&b); printf("%d %d\n",a.num,b.num); } 执行后的输出结果是( ) A、2041 2044 B、2041 2043 C、2042 2044 D、2042 2043
二、 填空题(共20分,每空1分) 1、若a,b和c均是int型变量,则执行表达式a=(b=4)+(c=3)后,a值为 ,
b值为 ,c值为 。 2、若x和n均是int型变量,且x的初值为12,n的初值为5,则执行表达式x%=(n%=3)后x的值为 。 3、在C语言中,定义整型变量i的语句是 ;定义含有100个元素的语句是 ;定义p为指向结构类型student的指针变量的语句是 ;定义f为带回整型函数值的函数的语句是 ;定义一个大小为20的字符数组arr,应写为 。 4、表达式8.4*(3/5)的值为 。 5、条件“206、已知字符A的ACSII码值为65,以下语句的输出结果是 。 char ch=’B’; printf(“%c %d\n”,ch,ch+3); 7、设有char *a=” BCDA”,则printf(“%s”,a)是 ,而printf(“%c”,*a)的输出是 。 8、定义int a[ ]={1,2,3,4,5,6},*p=a; 表达式(*++p)++的值是 。 9、设有以下语句:int a[10][20], *p=a; 则a[3][4]用p表示的指针表达式为 。 10、以下函数用来求出两个整数之和,并通过形参将结果传回,请填空。 void func(int x, int y, z){ *z=x+y; } 11、C语言中,对于循环结构,有do-while语句、while语句和 语句。 12、有如下定义: struct { int x; char *y; }tab[2]={{1,”ab”},{2,”cd”}},*p=tab; 则表达式*p->y的结果是 ,表达式*(++p)->y的结果是 。
三、 程序阅读题(共20分,每空1分) 1、下面程序为检验输入的三条边值能否构成三角形,请填空。 void main() { int i,s[3]; for(i=0;i<3;i++) scanf(“%d”,&s[i]); switch( ) { case 0: printf(“wrong input”); case 1: printf(“special kind and”); case 2: printf(“right input”); } } int judge( ) { int i; for(i=0;i<3;i++) { if(s[i]<0||s[i%3]+s[(i+1)%3]<=s[(i+2)%3]) return 0; if(s[i%3]*s[i%3]+s[(i+1)%3]*s[(i+1)%3]== s[(i+2)%3]*s[(i+2)%3]) return ; } return ; } 2、下列函数从字符数组s[ ]中删除存放在c中的字符,请填空。 void delete(char s[ ], char c) { int i,j; for(i=j=0; ;i++) if(s[i] c) s[ ]=s[i]; =’\0’; } 3、下面的函数strcat(str1,str2)实现将字符串str2拼接到字符串str1后面的功能。请在程序中的空白处填入一条语句或一个表达式。 Char *strcat(char* str1, char* str2)