C++_谭浩强_总复习试卷1(整理版)
- 格式:doc
- 大小:43.50 KB
- 文档页数:6
第一章程序设计和C语言1.1.什么是计算机程序程序..:一组计算机能识别和执行的指令。
只要让计算机执行这个程序,计算机就会自动地、有条不紊地进行工作计算机的一切操作都是由程序控制的,离开程序,计算机将一事无成。
1.2什么是计算机语言计算机语言:人和计算机交流信息的、计算机和人都能识别的语言。
计算机语言发展阶段:机器语言(由0和1组成的指令)符号语言(用英文字母和数字表示指令)高级语言(接近于人的自然语言和数学语言)面向过程的语言(非结构化的语言、结构化语言);面向对象的语言1.3C语言的发展及其特点C语言是一种用途广泛、功能强大、使用灵活的过程性编程语言,既可用于编写应用软件,又能用于编写系统软件。
因此C语言问世以后得到迅速推广。
C语言主要特点:语言简洁、紧凑,使用方便、灵活。
(只有37个关键字、9种控制语句;程序书写形式自由,源程序短)运算符丰富。
(34种运算符;把括号、赋值、强制类型转换等都作为运算符处理;表达式类型多样化)数据类型丰富。
(包括:整型、浮点型、字符型、数组类型、指针类型、结构体类型、共用体类型;C99又扩充了复数浮点类型、超长整型、布尔类型;指针类型数据,能用来实现各种复杂的数据结构的运算。
)具有结构化的控制语句。
(如if…else语句、while语句、do…while语句、switch语句、for语句用函数作为程序的模块单位,便于实现程序的模块化;C语言是完全模块化和结构化的语言)语法限制不太严格,程序设计自由度大。
(对数组下标越界不做检查;对变量的类型使用比较灵活,例如,整型量与字符型数据可以通用;C语言允许程序编写者有较大的自由度,因此放宽了语法检查)允许直接访问物理地址,能进行位操作,可以直接对硬件进行操作。
(C语言具有高级语言的功能和低级语言的许多功能,可用来编写系统软件;这种双重性,使它既是成功的系统描述语言,又是通用的程序设计语言)用C语言编写的程序可移植性好。
C程序设计谭浩强第四版试卷试卷及答案Revised final draft November 26, 2020一、单项选择题(20题,每题2分,共40分)1.一个C语言程序是由组成的。
A.主程序 B.子程序 C.函数 D.过程2.判断char型变量c1是否为小写字母的最简单且正确的表达式为。
A. 'a'<=c1<='z'B. (c1>=a)&&(c1<=z)C. ('a'<=c1)||('z'>=c1)D. (c1>='a')&&(c1<='z')3.为了判断两个字符串s1和s2是否相等,应当使用。
A. if (s1==s2)B. if (s1=s2)C. if (strcpy(s1,s2))D. if( strcmp(s1,s2) == 0 )4. 设a,b都是int型变量,则表达式:(a=2,b=5,a>b a++ : b++ ,a+b)的值为。
A. 7B. 8C. 9D. 25. 设x、y和t均为int型变量,则以下语句:t=x; x=y; y=t;的功能是。
A. 把x和y按从大到小排列B. 把x和y按从小到大排列C. 无确定结果D. 交换x和y中的值6. 下面标识符中,合法的用户标识符为。
A. P#AdB.12aC.charD._int7. 循环语句while(!E);中的表达式!E等价于。
A. E!=0B. E!=1C. E==0D. E==18. 设有以下语句,则不是对a数组元素的正确引用,其中0≤i<10。
int a[10] = {0,1,2,3,4,5,6,7,8,9};int *p = a;供选择的答案是:A. a[p-5]B. *(&a[i])C. p[i]D. *(a+i)9. 若用数组名作为函数调用的实参,传递给形参的是。
C语言期末考试一试题 ( 谭浩强版 )case 'b':case 'c':printf("%c,",c);break;default:printf("end");}}}A a,b,c,endB a,a,a,endC a,a,a,D a,b,c,6 .函数调用语句:fseek ( fp , -10L ,2 );的含义是()。
A 将文件地点指针从文件末端处向文件头的方向挪动10 个字节B 将文件地点指针从目前地点向文件头的方向挪动10个字节C 将文件地点指针从目前地点向文件末端方向挪动10个字节D 将文件地点指针移到距离文件头10 个字节处7 .以下程序的输出结果为()。
main( ){int i=0,j=0;while(s1[i]!='\0')i++;while(s2[j]!='\0')s1[i++]=s2[j++];s1[i]=0;printf("%s\n",s1);}A sideB countryC sidetryD countryside8 .以下说法不正确的选项是()。
A 主函数 main中定义的变量在整个文件或程序中有效B不一样函数中 ,能够使用同样名字的变量C形式参数是局部变量D在一个函数内部 ,能够在复合语句中定义变量,这些变量只在本复合语句中有效9 .在以下程序段中,列举变量c1 的值是()。
enum color { red,yellow,blue=4,green,white}c1;c1=yellow;c1=white;A1B3C5D610 .设有说明int (*ptr)();此中表记符ptr是()。
A是一个指向整形变量的指针B 是一个指针 ,它指向一个函数值是int 的函数C是一个函数名D定义不合法11 .定义由 n 个指向整形数据的指针构成的数组p, 其正确的方式为()。
c程序设计第五版谭浩强考研题库C程序设计是一门基础而重要的计算机科学课程,谭浩强教授的《C程序设计》第五版是许多考研学生的首选教材。
以下是根据该书内容整理的考研题库,供同学们复习使用。
C程序设计第五版谭浩强考研题库一、选择题1. C语言的基本数据类型包括哪些?A. 整型(int)B. 浮点型(float)C. 字符型(char)D. 所有选项2. 以下哪个是C语言的合法标识符?A. 3variableB. variable3C. variable-3D. variable#3二、填空题1. C语言中,字符常量可以用单引号括起来,例如 'A' 是一个______类型的常量。
2. 在C语言中,表达式 `(a = 3 * 5) / 2` 的值是 ______。
三、简答题1. 简述C语言中数组的定义和初始化方法。
2. 解释C语言中的指针和引用的区别。
四、编程题1. 编写一个C程序,实现求圆的面积。
要求使用函数实现计算,并通过主函数调用该函数。
2. 设计一个程序,实现字符串的反转。
要求使用指针操作。
五、综合应用题1. 假设你有一个结构体数组,存储了一系列学生的姓名和成绩,请编写一个程序,按照成绩从高到低对学生进行排序。
2. 编写一个C程序,实现简单的学生信息管理系统,包括学生信息的录入、显示、修改和删除功能。
结束语本题库旨在帮助同学们更好地掌握C程序设计的基本概念和编程技巧,为考研做好充分准备。
希望同学们能够通过练习这些题目,加深对C语言的理解和应用能力。
请注意,实际的考研题库可能包含更多的题目和不同类型的问题,建议同学们结合实际考试大纲和历年真题进行复习。
同时,编程实践是提高编程能力的关键,希望同学们能够勤加练习,不断进步。
祝同学们考研顺利,取得理想的成绩。
谭浩强C语言试题库(完整版)谭浩强C语言试题库一、单项选择第一章 C语言概述(1) 一个C程序的执行是从A、本程序的MAIN函数开始,到MAIN 函数结束.B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束.C、本程序的MAIN函数开始,到本程序的最后一个函数结束.D、本程序文件的第一个函数开始,到本程序的MAIN函数结束.(2) 以下叙述正确的是A、在C程序中,MAIN函数必须位于程序的最前面.B、 C程序的每行中只能写一条语句.C、 C语言本身没有输入输出语句.D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误.(3) C语言规定,在一个源程序中,MAIN主函数的位置是在:A、必须在最前面.B、必须在系统调用的库函数的后面C、可以在任意位置.D、必须在最后面(4) 一个C程序是由:A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成(5) 以下叙述不正确的是:A、一个C源程序可由一个或多个函数组成B、一个C源程序必须包含一个MAIN函数C、 C程序的基本组成单位是函数D、在C程序中,注释说明只能位于一条语句的后面第二章数据类型、运算符与表达式(1) 若x, i, j, k都是int型变量,则计算下面表达式后,x的值为x =( i=4, j=16, k=32)A、4B、16C、32D、52(2) 下列四组选项中,均不是C语言键字的选项是A、define , IF, typeB、getc, char, printfC、include, scanf, caseE、 if, struct, type(3) 下面四个选项中,均是不合法的用户标识符的选项是A、A,P_0,doB、float,1a0, _AC、b-a, goto, intD、_123, temp, INT(4) 若有代数式3ae/bc,则正确的C语言表达式是A、a/b/c*e*3B、3*a*e/bcC、3*a*e/b*cD、a*e/c/b*3(5) 已知各变量的类型说明如下:int k, a, b;unsinged long w=5;double x=1.42;则以下不符合C语言语法的表达式是A、x%(-3)B、w+=-2;C、k=(a=2,b=3,a+b)D、a+=a-=(b=4)*(a=3)第三章简单C程序设计(1)putchar函数可以向终端输出一个A、整型变量表达式值B、实型变量值C、字符串D、字符或字符型变量值(2)若x,y均定义为int型,z定义为double 型,以下合法的scanf 函数调用语句是A、scanf(“%d%lx,%le”,&x,&y,&z);B、scanf(“%2d*%d%lf”,&x,&y,&z);C、sc anf(“%x%*d%o”,&x,&y,&z);D、scanf(“%x%o%6.2f”,&x,&y,&z);(3)当输入数据的形式为:25,13,10<回车>时,以下程序的输出结果为main(){int x,y,z;scanf(“%d%d%d”,&x,&y,&z);printf(“x+y+z=%d\n”,x+y+z);}A、x+y+z=48B、x+y+z=35C、x+z=35D、不确定值(4) 以下能正确的定义整型变量a,b和c,并对它们赋初值为5的语句是A、int a=b=c=5;B、int a, b, c=5;C、a=5, b=5, c=5;D、a=b=c=5;(5) 若有以下定义,则正确的赋值语句是int a,b; float x;A、a=1, b=2;B、b++;C、a=b=5;D、b=int(x);第四章选择结构程序设计(1)能正确表示“当x的值在[1,10]和[200,210]的范围为真,否则为假”的表达式是A、(x>=1)&&(x<=10)&&(x.>=200)&&(x<=210)B、(x>=1)││(x<=10) ││(x.>=200) ││(x<=210)C、(x>=1) &&(x<=10) ││(x.>=200) &&(x<=210)D、(x>=1)││(x<=10)&& (x.>=200) ││(x<=210)(2)以下程序的运行结果是#include “stdio.h”main(){int a,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(“%d,%d”,a,b);}A、6,1B、2,1C、6,0D、2,0(3)请阅读以下程序:main(){int a=5 , b=0 , c=0;if (a+b+c) printf(“* * *\n”); else printf(“$ $ $\n”); }以上程序 .A) 有语法错误不能通过编译B) 可以通过编译但不能直接通过连接C) 输出* * *D) 输出$ $ $(4)以下程序的运行结果是 .main(){int m=5;if(m++>5)printf(“%d\n”,m);else printf(“%d\n”,m——);}A) 4B) 5C) 6D) 7(5) 为了避免在嵌套的条件语句中if-else中产生二义性,c语言规定:else子句总是与相配对.A)缩排位置相同的ifB)其之前最近的ifC)其之后最近的ifD)同一行上的if第五章循环控制(1)设有程序段int k=10while (k=0) k=k-1则下面描叙正确的是 .A) while (k=0) k=k-1;B) 循环是无限循环C) 循环体语句一次也不执行D) 循环体语句执行一次(2)下面程序段的运行结果是 . int n=0;while(n++<=2); printf(“%d”,n);A) 2B) 3C) 4D) 有语法错(3)C语言中while和do-while循环的主要区别是 .A) do-while的循环体至少无条件执行一次B) while 的循环控制条件比do-while的循环控制条件严格C) do-while允许从外部转到循环体内D) do-while允许从外部转到循环体内(4)以下能正确计算1*2*3*…*10的程序段是 .A) do {i=1;s=1;s=s*i;i++;}while(I<=10);B) do {i=1;s=0;s=s*i;i++;}while(I<=10);C) i=1;s=1;do {s=s*i;i++;}while(I<=10);D) i=1;s=0;do {s=s*i;i++;}while(I<=10);第六章数组(1)在c语言中,引用数组元素时,其数组下标的数据类型允许是____.A) 整型常量B) 整型表达式C) 整型常量或整型表达式D) 任何类型的表达式(2)以下能对二维数组a进行正确初始化的语句是____.A) int a[2][ ]={{1,0,1},{5,2,3,}};B) int a[ ][3]={{1,2,3},{4,5,6}};C) int a[2][4]={1,2,3,},{4,5},{6}};D) int a[ ][3]={{1,0,1},{},{1,1}};)(3)若有说明:int a[3][4]={0};则下面正确的叙述是____.A) 只有元素a[0][0]可得到初值0B) 此说明语句不正确C) 数组a中各元素都可得到初值,但其值不一定为0D) 数组a中每个元素均可得到初值0(4)下面程序___(每行程序前面的数字表示行号).1 main()2 {3 float a[10]={0};4 int i5 for(i=0;i<3;i++) scanf(“%d”,&a[i];6 for(i=1;i<10;i++) a[0]=a[0]+a{i};7 printf(“%f\n”,a[0]);8 }A) 没有错误B) 第3行有错误C) 第5行有错误D) 第7行有错误(5)若二维数组a有m列,则计算机一元素a[i][j]在数组中位置的公式为____.(假设a[0][0]位于数组的第一个位置上.)A) i*m+jB) j*m+iC) i*m+j-1D) i*m+j+1第七章函数(1)以下正确的函数定义形式是 .A)double fun(int x,int y)C) double fun(int x;int y)D) double fun(int x,int y)E) double fun(int x,y);(2) 以下正确的函数形式是 .A) double fun(int x,int y){z=x+y; return z;}B) fun(int x,y){int z;return z;}C) fun(x,y){int x,y; double z;z=x+y;return z;}D) double fun(int x,int y){double z;z=x+y;return z;}(3) C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是A)地址传递B)单向值传递C)由实参传给形参,再由形参传回给实参D)传递方式(4)C语言允许函数值型缺省定义,此时该函数值隐含的类型是 .A)float型B)int型C)long型D)double型(5)下面函数调用语句含有实参的个数为. func((exp1,exp2),(exp3,exp4,exp5));A)1B)2C)4D)5第八章编译预处理命令(1)请读程序:#define ADD(x) x+xmain(){int m=1,n=2,k=3;int sum=ADD(m+n)*k;printf(“sum=%d”,sum);}上面程序的运行结果是 .A) sum=9B) sum=10C) sum=12D) sum=18(2) 以下程序的运行结果是 . #define MIN(x,y) (x)<(y)? (x)+(y) main(){int I=10,j=15,k;k=10*MIN(I,j); printf(“%d\n”,k);。
计算机类考研谭浩强《C程序设计》考研配套考研真题第一部分考研真题精选一、选择题1以下均是合法变量名的是()。
[武汉科技大学2019研]A.#name totalB.node value_maxC._var longD.stu-code a+b【答案】BXXXX【解析】C语言中变量名只能包含数字,字母和下划线,且只能以字母和下划线开始。
A项含非法字符#,错误;C中long为关键字,变量不能以关键字命名;D中含非法字符-和+。
2以下选项中不属于C语言类型的是()。
[武汉科技大学2019研] A.short intB.unsigned long intC.charD.bool【答案】DXXXX【解析】C语言中没有bool型,只有C++才有boolean型,也称bool。
C语言中一般用“0”表示“假”,用“1”表示“真”。
3若有声明语句:int x; char y[20]; double z; 则正确的输入语句是()。
[武汉科技大学2019研]A.scanf("%d%c%le\n",&x,&y,&z);B.scanf("%2d%s%lf",&x,&y,&z);C.scanf("%d%s%lf",&x,y,&z);D.scanf("%x%s%3.2f",&x,y,&z);【答案】CXXXX【解析】y为一维数组名,指向数组首元素的地址,因此不需要再使用取地址运算符&,AB错误;D中%3.2f表示长度为3,小数为2位,但是小数点也占一位,因此D错误,答案选C。
4若a、b和t都为int变量,则下面不能交换变量a和b值的是()。
[武汉科技大学2019研]A.t=a; a=b; b=t;B.a=t; t=b; b=a;C.t=b; b=a; a=t;D.a=a+b; b=a-b; a=a-b;【答案】BXXXX【解析】B中首先把t的值赋值给了a,则a的值已经被取代了,后面执行b=a,则ab的值都等于t的值。
D4Z4#include <stdio.h>void main(){int a=3,b=4,c=5;float x=1.2,y=2.4,z=-3.6;unsigned int u=51274;long n=128765;char c1='a',c2='b';printf("a=%2d b=%2d c=%2d\n",a,b,c);printf("x=%f,y=%f,z=%f\n",x,y,z);printf("x+y=%5.2f y+z=%5.2f z+x=%5.2f\n",x+y,y+z,z+x);printf("u=%6u n=%9ld\n",u,n);printf("c1=\"%c\" or %d(ASCII)\n",c1,c1);printf("c2=\"%c\" or %d(ASCII)\n",c2-32,c2);}D4Z8#include <stdio.h>#define PI 3.1415926void main(){float r,h;float c,s,s1,v,v1;scanf("%f,%f",&r,&h);c=2*PI*r;s=PI*r*r;s1=4*PI*r*r;v=4.0/3*PI*r*r*r;v1=s*h;printf("c=%.2f,s=%.2f,s1=%.2f,v=%.2f,v1=%.2f\n",c,s,s1,v,v1); }D5Z5#include <stdio.h>void main(){int x,y;scanf("%d",&x);if(x<1)y=x;else if(x>=10)y=3*x-11;elsey=2*x-1;printf("y=%d\n",y);}D5Z6#include <stdio.h>void main(){int d;scanf("%d",&d);if(d>=0&&d<=100){if(d>=90)printf("A");else if(d>=80)printf("B");else if(d>=70)printf("C");else if(d>=60)printf("D");elseprintf("E");}elseprintf("input error!!!\n"); }D5Z7#include <stdio.h>void main(){long d;int g,s,b,q,w;scanf("%ld",&d);w=d/10000;q=d%10000/1000;b=d%1000/100;s=d%100/10;g=d%10;if(w>0){printf("5\n");printf("%d,%d,%d,%d,%d\n",w,q,b,s,g);printf("%d,%d,%d,%d,%d\n",g,s,b,q,w);}else if(q>0){printf("4\n");printf("%d,%d,%d,%d\n",q,b,s,g);printf("%d,%d,%d,%d\n",g,s,b,q);}else if(b>0){printf("3\n");printf("%d,%d,%d\n",b,s,g);printf("%d,%d,%d\n",g,s,b);}else if(s>0){printf("2\n");printf("%d,%d\n",s,g);printf("%d,%d\n",g,s);}else if(g>=0){printf("1\n");printf("%d\n",g);printf("%d\n",g);}}D6Z2#include <stdio.h>void main(){char c;int WordCount=0,BlankCount=0,NumberCount=0,OtherCount=0;while((c=getchar())!='\n'){if(c>='a'&&c<='z'||c>='A'&&c<='Z')WordCount++;else if(c==' ')BlankCount++;else if(c>='0'&&c<='9')NumberCount++;elseOtherCount++;}printf("WordCount=%d,BlankCount=%d,NumberCount=%d,OtherCount=%d\n",Word Count,BlankCount,NumberCount,OtherCount);}D6Z4#include <stdio.h>void main(){double jc=1,sum=0;int i;for(i=1;i<=20;i++){jc*=i;sum+=jc;}printf("%lf\n",sum);}D6Z6#include <stdio.h>void main(){int i,j,k;for(i=1;i<=9;i++)for(j=0;j<=9;j++)for(k=0;k<=9;k++)if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)printf("%d\n",i*100+j*10+k);}D6Z8#include <stdio.h>void main(){int fz=2,fm=1,i,t;float sum=0;for(i=0;i<20;i++){sum+=fz*1.0/fm;t=fz;fz=fz+fm;fm=t;}printf("%f\n",sum);}12.28.c++d7zsy2#include <stdio.h>main(){int a[11]={10,20,30,40,50,60,70,80,90,100},n,i,j,t; scanf("%d",&n);for(i=0;i<10;i++)if(n<a[i])break;for(j=9;j>=i;j--)a[j+1]=a[j];a[i]=n;for(i=0;i<11;i++)printf("%3d ",a[i]);}d7zsy3#include <stdio.h>main(){int a[4][4],b[4][4],c[4][4]={0};int i,j,k;printf("input A matrix:\n");for(i=0;i<4;i++)for(j=0;j<4;j++)scanf("%d",&a[i][j]);printf("input B matrix:\n");for(i=0;i<4;i++)for(j=0;j<4;j++)scanf("%d",&b[i][j]);for(i=0;i<4;i++)for(k=0;k<4;k++)for(j=0;j<4;j++)c[i][k]+=a[i][j]*b[j][k];printf("Output C matrix:\n");for(i=0;i<4;i++){for(j=0;j<4;j++)printf("%3d ",c[i][j]);printf("\n");}}D7ZSY5#include <stdio.h>main(){inta[10][10]={{1,0},{1,0},{1,0},{1,0},{1,0},{1,0},{1,0},{1,0},{1,0},{1,0}}; int i,j;for(i=1;i<9;i++)for(j=1;j<9;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];for(i=0;i<9;i++){for(j=0;j<=i;j++)printf("%4d",a[i][j]);printf("\n");}}D7ZSY13#include <stdio.h>#include <string.h>main(){char c1[20],c2[20],c3[40],i,k;gets(c1);gets(c2);for(i=0;c1[i]!=0;i++)c3[i]=c1[i];for(k=0;c2[k]!=0;k++)c3[i++]=c2[k];c3[i]=0;puts(c3);}D7ZSY15#include <stdio.h>#include <string.h>main(){char s1[80],s2[80],i;gets(s2);for(i=0;s2[i]!=0;i++)s1[i]=s2[i];s1[i]=0;puts(s1);}D8ZSY1#include <graphics.h>#include <conio.h>#include <dos.h>#include <math.h>#define PI 3.1415926void DrawFlower(int color,int sx,int sy,int r,int c,float d) {double p,st,x,y;int px,py,i;setcolor(color);for(st=0;st<=2*PI;st+=0.01){p=cos(st*c);x=p*cos(st+d);y=p*sin(st+d);px=sx+x*r;py=sy-y*r;putpixel(px,py);}}void main(){int gdriver,gmode;int i=1;float d;gdriver=VGA;gmode=VGAHI;initgraph(&gdriver,&gmode,"c:\\tc3");for(d=0;d<=2*PI;d+=0.02){DrawFlower(i%14+1,320,240,i*9%200,3,d);delay(50);DrawFlower(0,320,240,i*9,3,d);i+=2;}getch();closegraph();}d8zsy2#include <stdio.h>int findday(int year,int month,int day){int i,sum=0;int MonDay[12]={31,28,31,30,31,30,31,31,30,31,30,31}; if((year%4==0&&year%100!=0)||year%400==0)MonDay[1]++;for(i=0;i<month-1;i++)sum+=MonDay[i];sum=sum+day;return sum;}main(){int year,month,day;int sum;scanf("%d-%d-%d",&year,&month,&day);sum=findday(year,month,day);printf("sum=%d\n",sum);}d8zsy3#include <stdio.h>void HexToDec(){int c;scanf("%x",&c);printf("%d",c);}main(){HexToDec();d8zsy5#include <stdio.h>#include <string.h>void Ver(char c[]){int i,t,l;l=strlen(c);for(i=0;i<=l-1-i;i++){t=c[i];c[i]=c[l-1-i];c[l-1-i]=t;}}main(){char a[80];gets(a);Ver(a);puts(a);}d8zsy7#include <stdio.h>#include <string.h>void find(char c[],char d[]){int i,l,j=0;l=strlen(c);for(i=0;i<l;i++){if(c[i]=='a'||c[i]=='o'||c[i]=='e'||c[i]=='i'||c[i]=='u'||c[i]=='A'||c[i]== 'O'||c[i]=='E'||c[i]=='I'||c[i]=='U'){d[j++]=c[i];}}d[j]=0;main(){char a[80],b[80];gets(a);find(a,b);puts(b);}d8zsy10#include <stdio.h>#include <string.h>void findmaxlen(char c[],char d[]){int i,l,j,k=0,lmax=0;l=strlen(c);for(i=0;i<l;i++){if(c[i]>='a'&&c[i]<='z'||c[i]>='A'&&c[i]<='Z') {k++;if(lmax<k){lmax=k;for(j=0;j<k;j++)d[j]=c[i-k+1+j];d[j]=0;}}elsek=0;}}main(){char a[80],b[80];gets(a);findmaxlen(a,b);puts(b);}d10zsy1#include <stdio.h>void input(int *p){int i;for(i=0;i<10;i++)scanf("%d",p++);}void output(int *p){int i;for(i=0;i<10;i++)printf("%d ",*p++); }void xch(int *p){int i,max,j=0,t;max=*p;for(i=1;i<10;i++){if(max<*(p+i)){max=*(p+i);j=i;}}t=p[j];p[j]=p[9];p[9]=t;}main(){int a[10];input(a);xch(a);output(a);}d10zsy2#include <stdio.h>#include <math.h>void findarea(double *a,double *b,double *c,double *area) {double s;s=0.5*(*a+*b+*c);*area=sqrt(s*(s-*a)*(s-*b)*(s-*c));}main(){double a,b,c,area;scanf("%lf,%lf,%lf",&a,&b,&c);findarea(&a,&b,&c,&area);printf("area=%lf\n",area);}d10zsy3#include <stdio.h>#include <string.h>void StrCopy(char *from,char *to,int start){while(*(from+start))*to++=*((from++)+start);*to=0;}main(){char c1[80],c2[80];int s;gets(c1);scanf("%d",&s);StrCopy(c1,c2,s);puts(c2);}d10zsy4#include <stdio.h>void MatMul(int (*p1)[3],int (*p2)[3],int (*p3)[3],int n) {int *a,*b,*c,i,j,k;a=*p1;b=*p2;c=*p3;for(i=0;i<n;i++)for(k=0;k<n;k++)for(j=0;j<n;j++)*(c+i*n+k)+=*(a+i*n+j) * *(b+j*n+k); }main(){int a[4][4],b[4][4],c[4][4]={0};int i,j,k;printf("input A matrix:\n");for(i=0;i<4;i++)for(j=0;j<4;j++)scanf("%d",&a[i][j]);printf("input B matrix:\n");for(i=0;i<4;i++)for(j=0;j<4;j++)scanf("%d",&b[i][j]);MatMul(a,b,c,4);printf("Output C matrix:\n");for(i=0;i<4;i++){for(j=0;j<4;j++)printf("%3d ",c[i][j]);printf("\n");}}d10zsy16#include <stdio.h>#include <string.h>void findNum(char *p1,char *p2){for(;*p1!=0;p1++)if(*p1>='0'&&*p1<='9')*p2++=*p1;*p2=0;}main(){char c1[80],c2[80];gets(c1);findNum(c1,c2);puts(c2);}期末复习题(1) 执行下面的程序段后,变量k中的值为A) 不定值 B) 33 C) 30 D) 10int k=3, s[2];s[0]=k; k=s[1]*10;(2) 若已定义:int a[ ]={0,1,2,3,4,5,6,7,8,9}, *p=a,i;其中0≤i≤9, 则对a数组元素不正确的引用上A) a[p-a] B) *(&a[i]) C) p[i] D) a[10](3) 下列程序执行后的输出结果是A) 6 B) 7 C) 8 D) 9void func(int *a,int b[]){ b[0]=*a+6; }main(){ int a,b[5];a=0; b[0]=3;func(&a,b); printf("%d \n,b[0]);}(4) 下列程序执行后的输出结果是A) 3 B) 6 C) 9 D) 随机数main(){ int a[3][3], *p,i;p=&a[0][0];for(i=p; i<9; i++) p[i]=i+1;printf("%d \n",a[1][2]);}(5) 设有数组定义: char array [ ]="China"; 则数组array所占的空间为A) 4个字节 B) 5个字节 C) 6个字节 D) 7个字节(6) 下列程序的输出结果是A) 4 B) 6 C) 8 D) 10int b=2;int func(int *a){ b += *a; return(b);}main(){ int a=2, res=2;res += func(&a);printf("%d \n",res);}(7) 若有以下调用语句,则不正确的fun函数的首部是A) void fun(int m, int x[]) B) void fun(int s, int h[41]) C) void fun(int p, int *s) D) void fun(int n, int a)main(){ …int a[50],n;…fun(n, &a[9]);…}(8) 下列程序执行后的输出结果是A) you&me B) you C) me D) errmain(){ char arr[2][4];strcpy(arr,"you"); strcpy(arr[1],"me");arr[0][3]='&';printf("%s \n",arr);}(9) 下列程序执行后的输出结果是A) hello B) hel C) hlo D) hlmvoid func1(int i);void func2(int i);char st[]="hello,friend!";void func1(int i){ printf("%c",st[i]);if(i<3){i+=2;func2(i);}}void func2(int i){ printf("%c",st[i]);if(i<3){i+=2;func1(i);}}main(){ int i=0; func1(i); printf("\n");}(10) 执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是A) 123,456,789 B) 1,456,789C) 1,23,456,789 D) 1,23,456main(){ char s[100]; int c, i;scanf("%c",&c); scanf("%d",&i); scanf("%s",s);printf("%c,%d,%s \n",c,i,s);}(11) 下面函数用来求出两个整数之和,并通过形参传回两数相加之和值,请填空。
一、选择题1、一个C程序由若干个C函数组成,各个函数在文件中的位置顺序为:()A、任意B、第一个函数必须是主函数,其他函数任意C、必须完全按照执行的顺序排列D、其他函数可以任意,主函数必须在最后2、下列四个叙述中,正确的是:( )A、C程序中的所有字母都必须小写B、C程序中的关键字必须小写,其他标示符不区分大小写C、C程序中的所有字母都不区分大小写D、C语言中的所有关键字必须小写3、下列四个叙述中,错误的是:( )A、一个C源程序必须有且只能有一个主函数B、一个C源程序可以有多个函数C、在C源程序中注释说明必须位于语句之后D、C源程序的基本结构是函数4、下面不是C语言合法标识符的是:()A、abcB、5nC、_4mD、x35、以下叙述不正确的是:( )A. 分号是C语句的必要组成部分B。
C程序的注释可以写在语句的后面C。
函数是C程序的基本单位D。
主函数的名字不一定非用main来表示6、C语言中允许的基本数据类型包括:( )A. 整型、实型、逻辑型B. 整型、实型、字符型C。
整型、字符型、逻辑型 D. 整型、实型、逻辑型、字符型7、C语言中能用八进制表示的数据类型为:( )A、字符型、整型B、整形、实型C、字符型、实型、双精度型D、字符型、整型、实型、双精度型8、下列属于C语言合法的字符常数是:( )A、’\97’B、”A”C、’\t’D、”\0”9、在C语言(VC环境)中,5种基本数据类型的存储空间长度的排列顺序为:( )A、char<int〈=long int 〈=float〈doubleB、char=int<long int 〈=float〈doubleC、char〈int<long int=float=doubleD、char=int=<long int <=float<double10、若有以下定义语句char c1=’b’, c2=’e’;printf(“%d,%c\n",c2-c1,c2-‘a’+’A');则输出结果是:()A、2,MB、3,EC、2,ED、输出项与相应的格式控制不一致,输出结果不确定11、以下合法的赋值语句是:( )A、x=y=100B、d-—;C、x + yD、c = int(a+b);12、在以下一组运算符中,优先级最高的是:()A、〈=B、==C、%D、&&13、下列能正确表示a≥10或a≤0的关系表达式是:()A、a〉=10 or a〈=0B、a<=10 || a>=0C、a〉=10 || a〈=0D、a〉=10 && a<=014、下列只有当整数x为奇数时,其值为“真"的表达式是:( )A、x%2==0B、!(x%2==0)C、(x—x/2*2)==0D、!(x%2)15、设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是:( )A、1 0< a < 15B、!(a〈=10 || a〉=15)C、a>10 && a〈15D、!(a<=10) && !(a>=15)16、已知x=43, ch='A',y=0;则表达式(x>=y&&ch<’B’&&!y)的值是:()A、0B、语法错C、1D、“假”17、表达式17%4 /8的值为:( )A、0B、1C、2D、318、一个可执行的C程序的开始执行点是:()A. 程序中的第一个语句 B。
谭浩强c语言程序设计试题pdf 第一章 C语言概述一、选择题1.C语言规定,必须用作为主函数名。
A)Function B)include C)main D)stdio2.一个C程序可以包含任意多个不同名的函数,但有且仅有一个,一个C程序总是从开始执行。
A)过程 B)主函数 C)函数 D)include3.是C程序的基本构成单位。
A)函数 B)函数和过程 C)超文本过程 D)子程序4.下列说法正确的是。
A)一个函数的函数体必须要有变量定义和执行部分,二者缺一不可B)一个函数的函数体必须要有执行部分,可以没有变量定义C)一个函数的函数体可以没有变量定义和执行部分,函数可以是空函数D)以上都不对5.下列说法正确的是。
A)main 函数必须放在C程序的开头B)main 函数必须放在C程序的最后C)main 函数可以放在C程序中间部分,执行C程序时是从程序开头执行的D)main 函数可以放在C程序中间部分,执行C程序时是从main 函数开始的6.下列说法正确的是。
A)在执行C程序时不是从main 函数开始的B)C程序书写格式严格限制,一行内必须写一个语句C)C程序书写格式自由,一个语句可以分写在多行上D)C程序书写格式严格限制,一行内必须写一个语句,并要有行号7.在C语言中,每个语句和数据定义是用结束。
A)句号 B)逗号 C)分号 D)括号8.下列字符串是合法的自定义标识符的是。
A)_HJ B)9_student C)int D)LINE 19.不是C语言提供的合法关键字。
A)switch B)print C)case D)default10.C语言提供的合法关键字是。
A)break B)print C)funiton D)end11.C语言提供的合法关键字是。
A)continue B)procedure C)begin D)append二、填空题1.一个C程序至少包含一个,即。
2.一个函数由两部分组成,它们是和。