四川大学c语言期末试题(版)
四川大学C语言题库
输入十进制数,输出该数的十六进制数。
#include <>int main(void){int n;printf("input:");scanf("%d", &n);printf("output:%X\n", n);return 0;输入实型数据a,b,然后输出a、b的值。
#include <>int main(void){double number1, number2;printf("please input two numbers:");scanf("%lf,%lf", &number1, &number2);printf("Output:\n");printf("a=%f,b=%f\n", number1, number2);return 0;输入一个小写英文字母,第一输出它及其ASCII码,然后输出其对应的大写字母及其ASCII 码int main(void){char ch;printf("Input a lowercase letter:");ch = getchar();printf("Output:\n");printf("%c(%d)\n", ch, ch);printf("%c(%d)\n", ch - 32, ch - 32);return 0;从键盘输入一个正三角形的边长(整型),计算该三角形的面积和周长#include <>int main(void){int side;printf("Input a side of triangle: ");scanf("%d", &side);printf("Output:\n");printf("The area of triangle is %.2f, the circle of triangle is %.0f.\n", * side *side * sqrt(3) / 4, * side);return 0;}从键盘读入一个任意字符,输出该字符ASCII的十六进制小写值#include <>int main(void){char ch;printf("Input a character: ");ch = getchar();printf("Output:%x\n", ch);return 0;从键盘输入一个正方体的边长(整型),计算该正方体的体积和表面积#include <>int main(void){int side;printf("Input a side of cube: ");scanf("%d", &side);printf("Output:\nThe volume of cube is %d, the surface area of cube is %d.\n", side * side * side, 6 * side * side);return 0;#include <>从键盘输入X,Y,Z的值#include <>int main(void){int float_z;double float_x, float_y;printf("please input x,y,z:");scanf("%lf,%lf,%d", &float_x, &float_y, &float_z);printf("Output:");printf("%f\n", float_x + float_z % 3 * (int)(float_x + float_y) % 2 / 4);return 0;}从键盘输入一日期,年月日之间以“-”分隔,并以一样的形式但以“/”作分隔符输出。
2013年C语言知识学习期末试题(A)
四川大学期末考试试题(A卷)(2013——2014 学年第一学期)课程号:303066030课序号:课程名称:计算机基础及C程序设计语言任课教师:刘亚梅刘洋任瑞玲曾晓东余勤罗伟王茂宁王忠邓丽华成绩:适用专业年级:2012级学生人数:印题份数:学号:姓名:注:1试题字迹务必清晰,书写工整。
本题8 页,本页为第 1 页2 题间不留空,一般应题卷分开教务处试题编号:学号:姓名本题8 页,本页为第 2 页教务处试题编号:学号:姓名以下叙述中正确的是______。
A)在给s1和s2数组置初值时,系统会自动添加字符串结束符,故长度都为3B)由于s1数组中没有字符串结束符,长度不能确定;但s2数组中字符串长度为3C)由于s1和s2数组中都没有字符串结束符,故长度都不能确定D)以上说法都不对25.若有定义:int a=0, *p=&a;,则语句printf("%d\n",*p);的输出结果是______。
A)随机值B)0 C)a的地址D)p的地址26.下面程序段,输出*的个数是char *s="\tx++\016yz";for (;*s!='\0';s++) printf("*");A)4 B)9 C)7 D)1127.若有以下说明,且0≤i≤10,则对数组元素的错误引用是_______。
int a[ ]={1,2,3,4,5,6,7,8,9,10}, *p = a, i;A)p[i] B)a[p-a+i] C)p+i D)*(&a[i])本题8 页,本页为第 3 页教务处试题编号:学号:姓名void main(){int a[]={2,4,6,8,10}, y=0, x, *p;p=&a[1];for(x= 1; x<3; x++)y += p[x];printf("%d\n",y);}A)10 B)11 C)14 D)15 30.以下程序运行后的输出结果是______。
大学生期末c语言试题及答案
大学生期末c语言试题及答案一、选择题(每题2分,共20分)1. C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A2. 下列关于数组的描述中,正确的是:A. 数组必须在定义时初始化B. 数组的元素类型必须一致C. 数组的下标可以是实数D. 数组的下标可以是负数答案:B3. C语言中,用于文件操作的库函数位于哪个头文件中?A. stdio.hB. math.hC. string.hD. stdlib.h答案:A4. 下列哪个运算符不能用于赋值?A. =B. +=C. *=D. %答案:D5. C语言中,用于定义一个函数的关键字是:A. functionB. defineC. defD. void答案:B6. 下列关于指针的描述中,错误的是:A. 指针可以存储地址B. 指针可以存储值C. 指针可以作为函数的参数D. 指针可以作为函数的返回值答案:B7. C语言中,用于定义一个宏的预处理指令是:A. #defineB. #includeC. #pragmaD. #if答案:A8. 下列关于循环的描述中,正确的是:A. for循环可以没有初始化表达式B. while循环可以嵌套C. do-while循环至少执行一次D. 所有循环都可以使用break语句退出答案:C9. C语言中,用于定义一个枚举类型的关键字是:A. enumB. structC. unionD. typedef答案:A10. 下列关于函数的描述中,错误的是:A. 函数可以没有返回值B. 函数可以有多个返回值C. 函数可以递归调用D. 函数可以嵌套定义答案:D二、填空题(每题2分,共20分)1. 在C语言中,字符'A'的ASCII码值是______。
答案:652. 若int a = 10; int b = 20; 则表达式a++ + b的结果是______。
c语言期末复习试题(附答案)
试卷编号:11201所属语言:C语言试卷方案:C语言期末考试试卷总分:100分共有题型:4种一、单项选择共30题(共计60分)第1题(2.0分)设有定义:intk=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是(A). A:k++B:k+=1C:++kD:k+1第2题(2.0分)已知inti=5,执行语句i+=++i后,i的值是(C).A:10B:11C:12D:A、B、C都不对第3题(2.0分)以下程序的功能是:给r输入数据后,计算半径为r的圆面积s.程序在编译时出错. #include<stdio.h>voidmain()/*Beginning*/{intr;floats;scanf("%d",&r);s=p*r*r;printf("s=%f\n",s);出错的原因是(D).A:注释语句书写位置错误B:存放圆半径的变量r不应该定义为整型C:输出语句中格式描述符非法D:计算圆面积的赋值语句中使用了非法变量第4题(2.0分)"\\\″ABC\″\\″的长度是(B).A:11B:7C:5D:3第5题(2.0分)已知intj,i=1;,执行语句j=–i++;后,j的值是(C).A:1B:2C:-1D:-2第6题(2.0分)有以下程序:#include<stdio.h>voidmain(){ints=0,a=1,n;scanf("%d",&n);do{s+=1;a=a–2;}while(a!=n);printf("%d\n",s);}若要使程序的输出值为2,则应该从键盘输入给n的值是(B). A:-1B:-3C:-5D:0第7题(2.0分)执行以下程序后,输出的结果是(D).#include<stdio.h>voidmain(){inty=10;do{y––;}while(––y);printf("%d\n",y––);}A:-1B:1C:8D:0第8题(2.0分)以下循环体的执行次数是(C).#include<stdio.h>voidmain(){inti,j;for(i=0,j=1;i<=j+1;i+=2,j––)printf("%d\n",i);}A:3B:2C:1D:0第9题(2.0分)有以下程序段:intk=0;while(k=1)k++;while循环执行的次数是(A).A:无限次B:有语法错误,不能执行C:1次也不执行D:执行1次第10题(2.0分)有以下程序#include<stdio.h>voidmain(){intm,n,p;scanf("m=%dn=%dp=%d",&m,&n,&p);printf("%d%d%d\n",m,n,p);}若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是(A). A:m=123n=456p=789B:m=123n=456p=789C:m=123,n=456,p=789D:123456789第11题(2.0分)设变量已正确定义,以下能正确计算f=n!的程序段是(D)A:f=0;for(i=1;i<=n;i++)f*=i;B:f=1;for(i=1;i<n;i++)f*=i;C:f=1;for(i=n;i>1;i++)f*=i;D:f=1;for(i=n;i>=2;i––)f*=i;第12题(2.0分)在下列程序中,没有构成死循环的程序段是(B).A:inti=100;while(1){i=i%100+1;if(i>100)break;}B:intk=1000;do{++k;}while(k>=10000);C:for(;;);D:ints=36;while(s);--s;第13题(2.0分)有如下程序:#include<stdio.h>voidmain(){intn=9;while(n>6){n--;printf("%d",n);}}该程序段的输出结果是(B).A:987B:876C:8765D:9876第14题(2.0分)以下程序的输出结果是(D).#include<stdio.h>voidmain(){intx=10,y=10,i;for(i=0;x>8;y=++i)printf("%d%d",x––,y);}A:10192B:9876C:10990D:101091第15题(2.0分)有如下程序:#include<stdio.h>voidmain(){intn[5]={0,0,0},i,k=2;for(i=0;i<k;i++){printf("%d\n",n[k]);}}该程序的输出结果是(D).A:不确定的值B:2C:1D:0第16题(2.0分)下列程序执行后的输出结果是(A).#include<stdio.h>voidmain(){chararr[2][4];strcpy(arr,"you");strcpy(arr[1],"me"); arr[0][3]='&';printf("%s\n",arr);}A:you&meB:youC:meD:err第17题(2.0分)以下程序的输出结果是(C).#include<stdio.h>voidmain(){inti,x[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf("%d,",x[i][2–i]); }A:1,5,9,B:1,4,7,C:3,5,7,D:3,6,9,第18题(2.0分)以下数组定义中不正确的是(D).A:inta[2][3];B:intb[][3]={0,1,2,3};C:intc[100][100]={0};D:intd[3][]={{1,2},{1,2,3},{1,2,3,4}};第19题(2.0分)以下能正确定义数组并正确赋初值的语句是(D). A:intN=5,b[N][N];B:inta[1][2]={{1},{3}};C:intc[2][]={{1,2},{3,4}};D:intd[3][2]={{1,2},{3,4}};第20题(2.0分)有以下程序:inta=4;intf(intn){intt=0;staticinta=5;if(n%2){inta=6;t+=a++;}else{inta=7;t+=a++;}returnt+a++;}main(){ints=a,i=0;for(;i<2;i++)s+=f(i);printf("d\n",s);}程序运行后的输出结果是(B)A:24B:28C:32D:36第21题(2.0分)以下正确的函数定义形式为(A)A:doublefun(intx,inty)B:doublefun(intx;y)C:doublefun(intx;inty)D:doublefun(intx,y)第22题(2.0分)C语言规定,函数返回值的类型是由(D)A:return语句中的表达式类型所决定的B:调用该函数时的主调函数类型所决定的C:调用该函数时系统临时决定的D:在定义该函数时所指定的函数类型所决定的第23题(2.0分)有以下程序:输出结果是()(注:5353)voidswap1(intc0[],intc1[]){intt;t=c0[0];c0[0]=c1[0];c1[0]=t;}voidswap2(int*c0,int*c1){intt;t=*c0;*c0=*c1;*c1=t;}main(){inta[2]={3,5},b[2]={3,5};swap1(a,a+1);swap2(&b[0],&b[1]);printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]); }A:3553B:5335C:3535D:5353第24题(2.0分)以下程序的输出结果是(A).amovep(int*p,int(*a)[3],intn){inti,j;for(i=0;i<n;i++)for(j=0;j<n;j++){*p=a[i][j];p++;}}main(){int*p,a[3][3]={{1,3,5},{2,4,6}};p=(int*)malloc(100);amovep(p,a,3);printf("%d%d\n",p[2],p[5]);free(p);}A)56B)25C)34D)程序错误第25题(2.0分)有以下函数:fun(char*a,char*b){while((*a!='\0')&&(*b!='\0')&&(*a==*b)){a++;b++;}return(*a–*b);}该函数的功能是(D).A:计算a和b所指字符串的长度之差B:将b所指字符串复制到a所指字符串中C:将b所指字符串连接到a所指字符串后面D:比较a和b所指字符串的大小第26题(2.0分)有以下程序:fun(charp[][10]){intn=0,i;for(i=0;i<7;i++)if(p[i][0]=='T')n++;returnn;}main(){charstr[][10]={"Mon","Tue","Wed","Thu","Fri","Sat","Sun"}; printf("%d\n",fun(str));}程序执行后的输出结果是(B).A:1B:2C:3D:0第27题(2.0分)有以下程序:main(){charstr[][10]={"China","Beijing"},*p=str;printf("%s\n",p+10);}程序运行后的输出结果是(B).A:ChinaB:BeijingC:ngD:ing第28题(2.0分)有以下程序:#definef(x)(x*x)main(){inti1,i2;i1=f(8)/f(4)i2=f(4+4)/f(2+2)printf("%d,%d\n",i1,i2);}程序运行后的输出结果是(C).A:64,28B:4,4C:4,3D:64,64第29题(2.0分)有以下程序:结果是(A)voidchange(intk[]){k[0]=k[5];}main(){intx[10]={1,2,3,4,5,6,7,8,9,10},n=0;while(n<=4){change(&x[n]);n++;}for(n=0;n<5;n++)printf("%d",x[n]);printf("\n");}A)678910B)13579C)12345D)62345A:678910B:13579C:12345D:62345第30题(2.0分)在以下程序中,能够通过调用函数fun(),使main()函数中的指针变量p指向一个合法的整型单元的是(C). A:main()int*p;fun(p);…}intfun(int*p){ints;p=&s;}B:main(){int*p;fun(&p);…}intfun(int**p){ints;*p=&s;}C:#include<stdlib.h>main(){int*p;fun(&p);…}intfun(int**p){*p=(int*)malloc(2);}…D:#include<stdlib.h>main(){int*p;fun(p);…}intfun(int*p){p=(int*)malloc(sizeof(int));}二、程序填空共1题(共计10分)第1题(10.0分)/*------------------------------------------------------- 【程序填空】--------------------------------------------------------- 功能:计算平均成绩并统计90分以上人数。
大学c语言期末考试题及答案
大学c语言期末考试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的描述中,错误的是:A. C语言是一种高级语言B. C语言的执行方式是编译执行C. C语言支持面向对象编程D. C语言具有丰富的库函数答案:C2. 在C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A3. 下列关于数组的描述中,正确的是:A. 数组必须在定义时初始化B. 数组的下标从1开始C. 数组可以存储不同类型的数据D. 数组的大小在定义后不能改变答案:D4. 在C语言中,用于文件操作的库函数是:A. printfC. fopenD. getchar答案:C5. 下列关于指针的描述中,错误的是:A. 指针可以存储变量的地址B. 指针可以作为函数的参数C. 指针可以被赋值为NULLD. 指针可以存储函数的地址答案:D6. 在C语言中,用于定义一个函数的关键字是:A. functionB. defC. voidD. int答案:B7. 下列关于循环的描述中,错误的是:A. for循环可以嵌套使用B. while循环可以和break语句一起使用C. do-while循环至少执行一次D. 循环体内不能使用continue语句答案:D8. 在C语言中,用于定义一个宏的预处理命令是:B. #includeC. #pragmaD. #import答案:A9. 下列关于函数的描述中,错误的是:A. 函数可以有返回值B. 函数可以没有参数C. 函数可以没有返回值D. 函数可以没有定义答案:D10. 在C语言中,用于定义一个枚举类型的关键字是:A. enumB. structC. unionD. typedef答案:A二、填空题(每题2分,共10分)1. C语言中,用于定义一个整型变量的关键字是____。
答案:int2. 在C语言中,表示逻辑与运算的运算符是____。
答案:&&3. 当需要在C语言中表示一个常量时,可以使用关键字____。
完整word版,C语言程序设计期末考试试题(含答案)
C语言程序设计期末考试试题及其答案一、单项选择题(本大题共20题,每题2 分,共40分)1、以下不是C语言的特点的是( )A、C语言简洁、紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件进行操作D、C语言移植性好2、以下不正确的C语言标识符是( )A、ABCB、abcC、a_bcD、ab.c3、一个C语言程序是由( )A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( )A、有零个或多个输入B、有零个或多个输出C、有穷性D、可行性5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( )A、intB、floatC、doubleD、不确定6、在C语言中,char型数据在内存中的存储形式是( )A、补码B、反码C、源码D、ASCII码7、有如下程序,输入数据:12345M678<cR>后(<CR>表示回车),x的值是( ) 。
#include<stdio.h>main(){int x;float y;scanf("%3d%f",&x,&y);}A、12345B、123C、45D、3458、若有以下定义int a,b; float x,则正确的赋值语句是( )A、a=1,b=2B、b++;C、a=b=5D、b=int(x);9、以下程序的执行结果是( )#include<stdio.h>{int i=10,j=10;printf("%d,%d\n",++i,j--);}A、11,10B、9,10C、11,9D、10,910、巳知字母A的ASCII码是65,以下程序的执行结果是( )#include<stdio.h>main(){char c1='A',c2='Y';printf("%d,%d\n",c1,c2);A、A,YB、65,65C、65,90D、65,8911、下列运算符中优先级最高的是( )A、<B、十C、%D、!=12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。
C语言末期考试模拟考题
}
运行结果是:
注:输出格式控制中的h表示输出短整形(16位)。
4.
#include<>
int main(void)
{
int d=200;
int *p1=&d, *p2=p1;
printf("%d\n", *p2**p1);
return 0;
}
运行结果是:40000
四、程序填空题(每空2分,共20分)
return 0;
}
五、编程题(共25分)
1.请设计一个函数char *StrCat(char dest[ ], char source[ ]) 以完成将源字符串source连接到目的字符串dest末尾的工作,并设计int main(void)测试程序,要求通过StrCat()函数的返回值和实参数组获取连接后的字符串,并输出该字符串。
1.为了判断两个字符串s1与s2是否相等,应当使用C
A)if( s1 = = s2 )B)if( s1 = s2 )
C)if( strcmp( s1, s2 ) )D)if( strcmp( s1, s2 ) = 0 )
2.以下程序的输出结果是A
#include <>
int a;
int main(void)
int main(void)
{
int i;
for(i=0;i<5;i++)
{
switch(i%2)
{
case 0:
printf("ห้องสมุดไป่ตู้");
break;
case 1:
printf("1");
四川大学C语言期末试题
C 循环体只执行一次 D 是无限循环 3.下列说法不正确的是( )。 A 主函数main中定义的变量在整个文件或程序中有效 B 不同函数中,可以使用相同名字的变量 C 形式参数是局部变量 D 在一个函数内部,可以在复合语句中定义变量,这些变量只在本复 合语句中有效 4.具有相同类型的指针类型变量p与数组a,不能进行的操作是( )。 A p=a; B *p=a[0]; C p=&a[0]; D p=&a; 5.关于return语句,下列正确的说法是( )。 A 可以在同一函数中出现多次 B 必须在每个函数中出现 C 只能在除主函数之外的函数中出现一次 D 在主函数中不能出现 6.数组名作为实参传递给形参时,数组名被处理为( )。 A 该数组的长度 B 该数组的元素个数 C 该数组的首地址 D 该数组中各元素的值 7.要打开一个已存在的非空文件"file"用于修改,选择正确的语句( )。 A fp=fopen("file","r"); B fp=fopen("file","w"); C fp=fopen("file","r+"); D fp=fopen("file","w+"); 8. 定义结构体的关键字是( ) A. union B. enum C.struct D.typedef 9. 以下程序的输出结果是( ) #define f(x) x*x int main(void) { int a=6,b=2,c; c=f(a)/f(b); printf(“%d\n”,c); } A. 9 B. 6 C. 36 D. 18五、填空题(本大题共来自0小题,每空2分,共20分)。
四川大学网络教育《C 语言程序设计》复习资料期末考试复习题及参考答案
《C语言程序设计》复习资料一.单项选择题1.下面哪一个是合法的用户自定义标示符( D )(A) b-b (B) float (C) <fr> (D) _isw2.a、b为两个bool型变量,如下哪一个表达式能够表达“a、b同时为真或同时为假”的含义?(C )(A)a&&b||a (B)(a&&b)||!b (C)(a&&b)||(!a&&!b) (D)(a||b)&&(!a||!b)3.对于表达式(x>0)?x=x-1:x=x+1,若当前x取值为-2,该表达式的运算结果为( A )(A) -1 (B) 0 (C) 1 (D) 24.不是C语言基本数据类型的是( D )(A) 指针类型 (B) 整型 (C) 字符型 (D) 实型5.以下for循环控制中,循环次数为10次的是( C )(A)for(int i=1;i<10;i++) (B)for(int i=0;i<=10;i++)(C)for(int i=0;i<20;i+2) (D)for(int i=0;i<=20;i+2)6.设有:int a=3, b= 4, c= 5,x , y; 表达式0 && (x=a)&&(y=b)的值为( B )(A) 1 (B) 0 (C) 3 (D) 47.设有语句 int a=3 ; 则执行了语句 a+=6;后,变量a 的值为( C )(A) 18 (B) -3 (C) 9 (D) 128.对于变量定义char* p_name[]={“Kate”,“John”,“Mike”},如下哪一种表达式能表示“Mike”中的‘k’字符?( B )(A)p_name[0][2] (B)p_name[2][2](C)*(p_name[2]+3) (D)*(p_name[1]+2)9.表达式(int)7.5/(float)2的取值为( A )(A)3.75 (B)3.5 (C)3 (D)410.有定义语句:float a[4];则分配给数组a的内存空间为( C )字节(A) 20 (B) 12 (C) 16 (D) 1011.表达式6>8 | | 3>=9的取值为( A )(A)0 (B)1 (C)2 (D)312. 表达式18/4*sqrt(4.0)/8值的数据类型为(C )(A) int(B)float(C)double(D)不确定13.表达式18/4*sqrt(4.0)/8值的数据类型为( D )(A)int B float C.double D.不确定14.在以下定义中对标识符ptr描述正确的是( C )int(*ptr)[3];(A)定义不合法 (B)是一个指针数组名,每个元索是一个指向整型变量的指针(C)是一个指针,它指向一个具有3个元素的一维数组(D)是一个指向整型变量的指针15.已知有语句 scanf (“%d%d”,&a,&b);要使整型变量 a = 6, b = 8,运行时,屏幕上应输入( D )(A)a=6,b=8 (B)a=6 b=8 (C)6 8 (D)6 , 816.若char a=3,b=6,c; c=a^(b>>2);则c的二进制形式为(A )(A) 00000010 (b)00000100 (C)00000001 (D)0000001117.若有说明:int n=2,*p=&n,*q=p,则以下非法的赋值语句是( D )(A)p=q (B)*p=*q (C)n=*q (D)p=n18.已知int a[3][4];则对数组元素引用正确的是( C )(A) a[2][4] (B) a[1,3] (C) a[2][0] (D) a(2)(1)19.已知定义int a[]={10, 60, 30};写出语句a[0]+ = a[1] - = a[2];运行后数组各元素的值为( B )(A)a[0] =70 , a[1] = 30,a[2] = 30。
C语言程序设计期末考试试题含答案
C语言程序设计期末考试试题含答案一、选择题(每题 3 分,共 30 分)1、以下选项中,不是 C 语言关键字的是()A intB floatC classD char答案:C解析:在 C 语言中,class 不是关键字,int、float 和 char 都是常见的数据类型关键字。
2、以下变量定义中,正确的是()A int a=b=5;B char a='A';C float a=55, b=66;D double a; b;答案:C解析:A 选项中不能在定义时连续赋值;B 选项应该是 char a ='A';注意单引号;D 选项应该是 double a, b; 中间用逗号分隔。
3、以下程序段的输出结果是()```cint a = 5, b = 4, c = 6;if (a > b && a > c)printf("a 最大\n");else if (b > a && b > c)printf("b 最大\n");elseprintf("c 最大\n");```A a 最大B b 最大C c 最大D 编译错误答案:C解析:因为 5 不大于 6,所以执行 else 部分,输出“c 最大”。
4、以下循环语句执行的次数是()```cfor (int i = 0; i < 5; i++){printf("%d ", i);}```A 4 次B 5 次C 6 次D 无限次答案:B解析:从 0 到 4 ,一共 5 次。
5、以下数组定义中,正确的是()A int a5 ={1, 2, 3, 4, 5, 6};B int a ={1, 2, 3};C int a5 ={1, 2};D int a3 =(1, 2, 3);答案:B解析:A 选项数组长度为 5,却初始化了 6 个元素;C 选项只初始化了前两个元素,后面三个元素默认为 0;D 选项初始化方式错误,应该用花括号。
C历年考试真题.docx
0
0
1
6
18
五、1.出错行:第12行 原因:析造函数不能有返回值类型改正:去掉void
2.出错行:第7行
原因:带缺省值的参数应放在参数表的尾部,其后不允许出现不带缺省值的参数
改正:CTest(int iA = 0, intiB = 0):m_iA(iA), m_iB(iB)或Clest(int iA, int iB = 0):m_iA(iA), m_iB(iB)
Print(b, 2);
cout« endl;
return 0;
上血程序的输出结果为:
3.阅读下血程序,写出输出结果。
#include <iostream>
using namespace std;
class Clest
{
public:
Clest(int iVar):m_iVar(iVar)
{
m_iCount++;
}
~CTest()
{
}
void Print() const;
static int GetCountf)
{
return mJCount;
}
private:
int m_iVar;
static int m_iCount;
};
int CTest::m_iCount = 0;
void CTest::Print() const
A.私有的B.公有的
编译时多态性使用什么获得?(
A.重载函数B.继承
拷贝构造函数的参数通常是(
A.无特殊要求
C.自已类对象的常引用
C卄有几种联编?()
A.1种B.2种
10.基类和派生类可以分别称为
大学计算机 C语言期末复习题(一) (附带答案)
大学计算机C语言期末复习题(一)《附带答案》一、单项选择题1. 以下不正确的C语言标识符是()。
A. ABC B. abc C. a_bc D. ab.c 2.以下正确的C语言标识符是()。
A. %k B. a+b C. a123 D. test!3. 一个C程序的执行是从()。
A.main( )函数开始,直到main( )函数结束B.第一个函数开始,直到最后一个函数结束C.第一个语句开始,直到最后一个语句结束D.main( )函数开始,直到最后一个函数结束4. 在C程序中,main( )的位置()。
A.必须作为第一个函数B.必须作为最后一个函数C.可以任意D.必须放在它所调用的函数之后5.C语言源程序的基本单位是()。
A.过程 B.函数 C.子程序 D.标识符6.以下结果为整数的表达式(设有int i;char c;float f;)( ).A.i+fB.i*cC.c+fD.i+c+f7.以下不正确的语句(设有int p,q)是()。
A.p*=3; B.p/=q; C.p+=3; D.p&&=q;8.以下使i的运算结果为4的表达式是()。
A.int i=0,j=0; (i=3,(j++)+i);B. int i=1,j=0; j=i=((i=3)*2);C. int i=0,j=1; (j==1)? (i=1): (i=3);D. int i=1,j=1; i+=j+=2;9.设char ch;以下正确的赋值语句是()。
A.ch='123'; B.ch='\xff'; C.ch='\08'; D.ch="\";10.设n=10,i=4,则赋值运算n%=i+1执行后,n的值是()。
A.0 B.3 C.2 D.1 11.逗号表达式(a=3*5,a*4),a+15的值为(),a的值是()。
①A.15 B.60 C.30 D.不确定②A.60 B.30 C.15 D.9012.如果a=1,b=2,c=3,d=4,则条件表达式a<b?a:c<d?c:d的值为( ).A.1 B.2 C.3 D.413.设int n=3;则++n的结果是(),n的结果是()。
C语言期末考试试卷附参考答案
一、单项选择题(请将答案填在下面表格中20×1)1. 以下叙述中正确的是()。
A. C语言比其他语言高级B. C语言可以不用编译就能被计算机识别执行C. C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D. C语言出现的最晚,具有其他语言的一切优点2. 以下叙述中正确的是()。
A.构成C程序的基本单位是函数B.可在一个函数中定义另一个函数C. main函数必须放在其他函数之前D.所有被调用的函数一定要在调用之前进行定义3. 以下叙述中正确的是()。
A. C语言程序总是从第一个函数开始执行B.在C语言程序中,要调用函数必须在main()函数中定义C. C语言程序总是从main()函数开始执行D. C语言程序中的main()函数必须放在程序的开始部分4. 以下有关for循环的正确描述是()。
A. for循环只能用于循环次数已经确定的情况B. for循环是先执行循环体语句,后判断表达式C.在for循环中,不能用break语句跳出循环体D. for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来5. 对下面程序段的描述,正确的是()。
x=-1;do{x=x*x;}while(!x);A.是死循环B. 循环执行一次C. 循环执行两次D. 有语法错误6. 以下有关C语言数组说法正确的是()。
A.数组元素的数据类型可以不一致B.数组元素的个数可以不确定,允许随机变动C.可以使用动态内存分配技术,定义元素个数可变的数组D.定义一个数组后,就确定了它所容纳的具有相同数据类型元素的个数7.以下数组定义正确的是()。
A. int a(20);B. int a[ ]={1,2,5,7,0};C. int a[n];D. int a[2]={1,2,4,6};8.在定义int b[2][10];之后,对b数组元素引用正确的是( )。
A. b[0][9]B. b[2,3]C. b(1)(5)D. b[10] [0]9. 如有定义语句int c[ ]={1,5,3,4,6,7,0};,则数组c有()个元素。
C语言程序设计期末考试试题含答案
C语言程序设计期末考试试题含答案一、选择题(每题 2 分,共 40 分)1、以下选项中,不是 C 语言关键字的是()A intB floatC charD string答案:D解释:string 不是 C 语言的关键字,C 语言中表示字符串通常使用字符数组。
2、以下能正确表示八进制整数的是()A 0o123B 0123C 0x123D 123答案:B解释:在 C 语言中,八进制整数以数字 0 开头,所以 0123 是八进制整数。
3、以下变量定义中,合法的是()A int a=b=1;B char a='\0';C float 2a;D double a&;答案:B解释:A 选项中不能连续赋值;C 选项变量名不能以数字开头;D 选项变量名不能包含特殊字符&。
4、若有定义:int a=5, b=2; 则表达式 a/b 的值是()A 25B 2C 20D 3答案:B解释:C 语言中,两个整数相除结果为整数,舍去小数部分。
5、若有定义:int a5 ={1, 2, 3, 4, 5};则 a2的值是()A 2B 3C 4D 5答案:B解释:数组下标从 0 开始,所以 a2对应的值是 3 。
6、以下关于函数的叙述中,正确的是()A 函数可以嵌套定义B 函数可以嵌套调用C 函数可以没有返回值D 以上都不对答案:C解释:函数不能嵌套定义,但可以嵌套调用。
函数可以没有返回值,此时函数类型为 void 。
7、若有以下函数定义:```cint fun(int a, int b){return a + b;}```则调用 fun(1, 2)的返回值是()A 1B 2C 3D 4答案:C解释:函数 fun 实现了两个整数的相加,所以 fun(1, 2)的返回值是3 。
8、以下关于指针的叙述中,错误的是()A 指针可以指向变量B 指针可以指向数组C 指针可以指向函数D 指针不可以进行加减运算答案:D解释:指针可以进行加减运算,但运算的结果要根据指针所指向的数据类型来确定。
四川大学c语言考试题及答案
四川大学c语言考试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言中变量的描述,不正确的是:A. 变量名必须以字母开头B. 变量名可以包含下划线C. 变量名区分大小写D. 变量名不能以数字开头答案:D2. 在C语言中,用于定义一个字符型变量的关键字是:A. charB. intC. floatD. double答案:A3. 下列哪个选项不是C语言中的运算符?A. %B. &&C. =D. :答案:D4. 在C语言中,用来表示逻辑“与”的运算符是:A. &&B. ||C. !D. ^答案:A5. 下列哪个选项不是C语言中的控制语句?A. ifB. switchC. whileD. case答案:D6. 在C语言中,用于定义一个整型数组的语法是:A. int array[10];B. int array[];C. int [10] array;D. int array;答案:A7. 下列哪个函数用于将浮点数转换为字符串?A. sprintfB. printfC. scanfD. strcat答案:A8. 在C语言中,用于定义一个函数的关键字是:A. functionB. defineC. defD. void答案:D9. 下列哪个选项不是C语言中的预处理指令?A. #includeB. #defineC. #ifD. switch答案:D10. 在C语言中,用于表示“或”逻辑运算的运算符是:A. ||B. &&C. ==D. !=答案:A二、填空题(每题2分,共20分)1. C语言中,用于定义一个整型变量的关键字是____。
答案:int2. 在C语言中,______运算符用于比较两个值是否相等。
答案:==3. C语言中,用于定义一个字符串的语法是____。
答案:char str[] = "Hello";4. 在C语言中,____运算符用于计算两个数的和。
四川大学2011年C语言期末试题A
A)C语言的函数允许嵌套定义B)C语言编译时不检查语法
C)C语言所有函数都是外部函数D)C语言中转义字符以”\”开头
5.以下叙述中错误的是______。
A)用户所定义的标识符允许使用关键字
B)用户所定义的标识符应尽量做到“见名知意”
C)用户所定义的标识符必须以字母或下划线开头
D)用户定义的标识符中,大、小写字母代表不同标识
35.若程序中定义了以下函数:
double myadd (double a,double b)
{return (a+b);}
并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是。
A)double myadd (double a,b); B)double myadd (double,double);
D) for、while和do-while循环中的循环体均可以由空语句构成
21.在下列描述中,正确的一条是。
A)if(表达式)语句中,表达式的类型只限于逻辑表达式
B)语句“goto 12;”是合法的
C)for(;;)语句相当于while(1)语句
D)break语句可用于程序的任何地方,以终止程序的执行
struck sk
{int a;
float b;
}data;
int *p;
若要使P指向data中的a成员,正确的赋值语句是______。
A) p=&a;B) p=data.a;C) p=&data.a;D) *p=data.a;
本题8页,本页为第5页
教务处试题编号:
学号:姓名
二.写出下列程序的运行结果(6小题,每题4或5分,共25分)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A)int x[][3]={0,1,2,3};
B)int x[2][3]={{1,2}, {3,4}, {5,6}};
C)int x[][3]={{1,2,3},{4,5,6}};
D)int x[2][3]= {1,2,3,4,5,6};
10.在C语言中,函数返回值的类型最终取决于。
{
double a = fun1(x), b = fun1(y);
return a + b;
}
int main(void)
{
int w = fun2(1.3, 2.0);
printf("%d\n", w);
return 0;
}
运行结果是:
5.有以下程序:
#include <stdio.h>
int f(int n)
A)int a=b=16;B)char c=97;
C)float x=x+1.8;D)double x=1.23E2.0
6.设有定义:“int a=1,b=6,c=8;”,则以下选项中值为0的表达式是。
A)(!a==1)&&(!b==0)B)(a<b)&& !c || !0
C)a && bD)a || b
7.下列叙述正确的是D。
A)break语句只能用于switch语句
B)break语句只能用于循环语句
C)break语句必须与switch语句中的case配对
D)break语句可用于switch语句和循环语句中
8.在以下给出的表达式中,与while(E)中的“(E)”不等价的表达式是C。
A)(E!=0)B)(E>0 || E<0)C)(E==0)D)(!E==0)
3.已知int a=3,a的地址为1008,则&a=。
4.设有定义:“FILE *fp;”,请将以下打开文件的语句补充完整,以便可以向文本文件readme.txt的最后续写内容。
fp = fopen)("readme.txt", "");
5.已有定义:“int *p;”,请写出完整的语句,利用malloc函数使p指向一个整型的动态存储单元。
for (i = 0; i < N; i++)
scanf("%d",[4]);/*输入a[i] *//
invert(a, 0, N - 1);
for (i = 0; i < N; i++)
printf("%d ", a[i]);
printf("\n");
return 0;
}
3.下面的程序通过函数average计算数组中各元素的平均值,将程序补充完整。
A)改变函数形参的值,不会改变对应实参的值
B)函数可以返回地址值
C)可以给指针变量赋一个整数作为地址值
D)函数的形参可为指针类型
1.已定义“char ch=6;int i=6,j;”,执行“j=ch || i++”以后,i的值为。
2.设有定义语句:“int a[][8]={{0},{1},{2}};”,则数组元素a[1][2]的值为。
#include<stdio.h>
#define N 10
void invert(int s[], int i, int j)
{
if (i < j)
{
int t= s[i];
s[i] = s[j];
s[j] = t;
invert(s,[3],j-1);
}
}
int main(void)
{
int a[N], i;
{
int i = -1;
do printf("%d", i); while (++i);
printf("%d\n", i);
return 0;
}
运行结果是:
4.有以下程序:
#include <stdio.h>
double fun1(double a) { return a * a; }
int fun2(double x, double y)
D) data可以作为函数的实参
14.以下叙述中正大写字母表示
C)宏替换不占用程序的运行时间
D)前面都是错语的
15.设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为。
A)EOFB)1C)0D)NULL
16.以下叙述中错误的是。
float mean;
mean = average(a, 5);
printf("mean=%f\n", mean);
return 0;
}
1.输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。
2.编程实现从键盘上输入一个字符串,把此字符串中的小写字母转换成大写字母,输出到文件test.txt中,然后从该文件读出字符串并显示出来。
A)函数定义时的函数首部所说明的函数类型
B)return语句中表达式值的类型
C)调用函数时的实参的类型
D)函数定义时形参的类型
11.设已有定义:“float a;”,则以下对指针变量p进行定义且赋初值的语句中正确的是。
A)float *p = 1068;B)int *p= (int)a;
C)float p=&a;D)float *p=&a;
6.声明外部变量的关键字是extrun。
7.int类型的变量的值只能是所指定的若干名字之一。
1.有以下程序:
#include <stdio.h>
int main(void)
{
char al = 'M', a2 = 'm', a3 = 'u';
printf("%c\n", (al, a2, a3));
union dt
{
short int a;
char b;
double c;
} data;
以下叙述中错误的是。
A) data的每个成员起始地址都相同
B)变量data所占的内存字节数与成员c所占字节数相等
C)程序段“data.a=6;printf("%f\n ",data.c);”输出结果为6.000000
A)字母B)减号C)数字字符D)下划线
3.下列定义变量的语句中错误的是C。
A)int _if;B)double If;C)char forchD)float x&;
4.以下选项中可作为C语言合法常量的是A。
A)-80B)-0819C)-1el.0D)-168.0e
5.以下能正确定义且赋初值的语句是。
int main(void)
{
int a, b, c, t1, t;
scanf("%d%d%d", &a, &b, &c);
t = a < b ?[1];
t = c < t ?[2];
printf("%d\n", t);
return 0;
}
2.以下程序调用invert函数按逆序重新放置a数组中元素的值。a数组中元素的值在main函数中读入。将程序补充完整。
1.对于一个正常运行的C程序,以下叙述中正确的是A。
A)程序的执行总是从main函数开始,在main函数结束
B)程序的执行是从程序的第一个函数开始,在main函数结束
C)程序的执行是从main函数开始,在程序的最后一个函数中结束
D)程序的执行是从程序的第一个函数开始,在程序的最后一个函数中结束
2.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是B。
{
if (n == 1) return 1;
else return n + f(n - 1);
}
int main(void)
{
printf("%d\n", f(5));
return 0;
}
运行结果是:
6.有以下程序:
#include <stdio.h>
void point(char *p){ p += 5; }
12.若有说明语句:“float *p,a;”,则能通过scanf语句正确给输入项读入数据的程序段是。
A)*p=&a; scanf("%f",p);B)*p=&a; scanf("%lf",p);
C)p=&a; scanf("%f",*p);D)p=&a; scanf("%f",p);
13.若有以下说明和定义:
int main(void)
{
char b[] = {'a', 'b', 'c', 'd', 'f', 'g'}, *p = b;
point(p);
printf("%c\n", *p);
return 0;
}
运行结果是:
1.以下程序的功能是:输出a、b、c三个变量中的最小值。将程序补充完整。
#include <stdio.h>
#include <stdio.h>
float average(int a[], int n)
{
int i;