C语言期末考试试题(谭浩强版)
完整word版,C语言期末考试试题(谭浩强版)

C语言期末考试试题2008年04月12日星期六 00:22一选择题(24分,每小题2分)1.已知函数fread的调用形式为fread(buffer,size,count,fp),其中buffer代表的是()。
A 存放读入数据项的存储区B 存放读入数据的地址或指向此地址的指针C 一个指向所读文件的文件指针D 一个整形变量,代表要读入的数据项总数2.以下程序的输出结果为()。
main( ){int i=010,j=10;printf("%d,%d\n",i++,j--);}A 11,9B 9,10C 8,10D 9,93.设a为int型变量,执行下列赋值语句后,a的取值分别是()。
a=125.534;a=20.0/3;a=(int)125.521%4;A 125,6,31,1B 125,6,1,20C 125,6.666666,31,20D 125.534,6.666666,2,204.设i和k都是int类型,则for循环语句()。
for(i=0,k=-1;k=1;i++,k++)printf("****\n");A 循环结束的条件不合法B 循环体一次也不执行C 循环体只执行一次D 是无限循环5.以下程序的输出结果为()。
main( ){char c;int i;for(i=65;i<68;i++){c=i+32;switch(c){case 'a':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.以下程序的输出结果为()。
C语言程序设计谭浩强(第四版)期末复习试题重点

第一章程序设计和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程序设计谭浩强第四版试卷试卷及答案

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程序设计_谭浩强_期末考试题

{
int i=0,a,score;
printf(“test begin:\n”)
for(i=0,i<num;i++)
{
printf(“problem %d:\n”,i+1);
printf(“%c\n”, problems[i]. problem);
scanf(“%d”,a);
p2--;
}
}
voidmain()
{
char s[200];
printf(“输入一个字符串:”);
scanf();
f(s);
printf(“字符串反序:%s\n”,s);
}
2.输入1个长整数,求各位数字的平方和。
例如:输入123,输出14。
#include <stdio.h>
void main( )
encryptscript.txtcipher.txt
其中script.txt为原始的英文文章,cipher.txt为完成加密后的新文件。(本题15分)
二
一、填空题
1.输入10个点的坐标(设坐标为整数值),输出距原点最远的点(设唯一)的坐标及该点距原点的距离.
#include <math.h>
void main()
q: 15,13,11,9,7
则生成的head链表中节点data的值为:
15,13,12,11,10,9,8,7,6,5,4,3
#include <stdio.h>
#include <malloc.h>
struct node
{int data;
struct node *next;
谭浩强c语言试题及答案解析

谭浩强c语言试题及答案解析1. 选择题A. 以下哪个选项是C语言中合法的变量名?A) 123abcB) intC) _myVarD) my-var答案:C2. 填空题A. 在C语言中,定义一个整型变量的关键字是______。
答案:int3. 判断题A. C语言中,数组的索引是从0开始的。
答案:正确4. 简答题A. 请简述C语言中指针的概念。
答案:指针是C语言中的一种数据类型,它存储了另一个变量的内存地址。
通过指针,程序可以间接访问和操作变量。
5. 编程题A. 编写一个C语言程序,实现求两个整数的和。
```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个整数的和是:%d\n", sum); return 0;}```6. 阅读程序题A. 阅读以下C语言程序,并回答问题:```c#include <stdio.h>int main() {int a = 10, b = 20;printf("%d\n", a + b);return 0;}```问题:程序的输出结果是什么?答案:程序的输出结果是30。
7. 改错题A. 以下C语言程序有错误,请找出并改正。
```c#include <stdio.h>int main() {int a = 5;printf("a的值是:%d", a);return 0;}```错误:printf函数中缺少换行符。
改正:```c#include <stdio.h>int main() {int a = 5;printf("a的值是:%d\n", a);return 0;}```8. 综合题A. 请编写一个C语言程序,实现以下功能:1. 从键盘输入一个字符串。
谭浩强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语言期末考试题及答案

谭浩强c语言期末考试题及答案一、单项选择题(每题2分,共20分)1. C语言中,以下哪个选项是合法的标识符?A. 2variableB. variable2C. variable-2D. variable_2答案:D2. 若有定义 int a=3; 则执行以下语句后,a的值是多少?A. a=a++;B. a++;C. ++a;D. a=++a;答案:C3. 在C语言中,以下哪个选项表示的是逻辑“与”操作?A. &&B. ||C. !D. ∨答案:A4. 以下哪个函数不能正确计算数组元素的平均值?A. int average(int arr[], int n) { int sum=0, i; for(i=0; i<n; i++) sum+=arr[i]; return sum/n; }B. double average(int arr[], int n) { double sum=0.0, i;for(i=0; i<n; i++) sum+=arr[i]; return sum/n; }C. float average(int arr[], int n) { float sum=0.0, i;for(i=0; i<n; i++) sum+=arr[i]; return sum/n; }D. float average(int arr[], int n) { int sum=0, i; for(i=0; i<n; i++) sum+=arr[i]; return (float)sum/n; }答案:B5. 以下哪个选项不是C语言中的控制语句?A. ifB. switchC. forD. while答案:B6. C语言中,以下哪个选项表示的是字符常量?A. 'A'B. "A"C. '123'D. "123"答案:A7. 下面哪个选项是正确的C语言函数定义?A. int myFunction() { return 0; }B. int myFunction() { return 1; }C. void myFunction() { return 1; }D. int myFunction() { return 'a'; }答案:A8. 在C语言中,以下哪个选项表示的是“不等于”操作符?A. ==B. !=C. =D. <=答案:B9. C语言中,以下哪个选项是正确的字符串声明?A. char str[5] = {'H', 'e', 'l', 'l', 'o'};B. char str[5] = "Hello";C. char str[] = {'H', 'e', 'l', 'l', 'o'};D. char str[] = "Hello";答案:D10. 下面哪个选项是正确的C语言数组声明?A. int arr[5] = {1, 2, 3, 4, 5};B. int arr[] = {1, 2, 3, 4, 5};C. int arr[5] = {1, 2, 3};D. int arr = {1, 2, 3, 4, 5};答案:B二、填空题(每题2分,共20分)1. 在C语言中,整型变量占用的字节数通常是______。
谭浩强c语言期末考试题及答案

谭浩强c语言期末考试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的描述中,错误的是()。
A. C语言是一种高级语言B. C语言可以直接被计算机执行C. C语言具有结构化的特点D. C语言可以用于系统软件的开发答案:B2. 在C语言中,用于定义一个结构体的关键字是()。
A. structB. unionC. enumD. typedef答案:A3. 下列选项中,不能作为C语言合法变量名的是()。
A. _123abcB. intC. 2ndD. name答案:C4. 在C语言中,用于表示逻辑“与”操作的运算符是()。
A. &&B. ||C. !D. =答案:A5. 下列关于C语言函数的描述中,正确的是()。
A. C语言函数必须有返回值B. C语言函数可以没有参数C. C语言函数的返回值类型必须与函数定义时指定的类型一致D. C语言函数可以有多个返回值答案:B6. 在C语言中,用于定义一个整型数组的语句是()。
A. int a[10];B. int a[];C. int a;D. int a=10;答案:A7. 下列关于C语言指针的描述中,错误的是()。
A. 指针可以存储地址B. 指针可以存储数据C. 指针可以作为函数参数D. 指针可以作为函数返回值答案:B8. 在C语言中,用于输入输出的库函数是()。
A. math.hB. string.hC. stdio.hD. time.h答案:C9. 下列选项中,不是C语言预处理指令的是()。
A. #includeB. #defineC. #ifD. switch答案:D10. 在C语言中,用于定义一个枚举类型的关键字是()。
A. enumB. unionC. structD. typedef答案:A二、填空题(每题2分,共20分)1. C语言中,用于定义一个字符型变量的关键字是____。
答案:char2. 在C语言中,表示“不等于”的逻辑运算符是____。
(完整版)C语言练习题(谭浩强第四版)..附有答案

一、选择题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语言习题谭浩强有参考答案版

1.若有以下定义和语句:int a[4]={0,1,2,3},*p;p=&a[2];则++(*p)的值是___3__。
2.与表达式a|=b等价的另一书写形式是_a=a|b________。
3.链表中的每个结点都是_结构体________类型数据。
4.设有语句:char *a="I_love_china!";a=a+2;则执行printf(“%s\n”,a);的输出结果是___love_china!__________。
5.若有宏义:#define f(x) x*x 则当a=3时,执行f(a-1)的值是____-1___。
6.有以下函数调用语句,请问函数fun1到底有___4____个参数。
fun1(x,(y,z),10,fun2((x-1,y-1)))7.设有以下定义和语句,则*(*(p+2)+1)的值为__60________。
int a[3][2]={10, 20, 30, 40, 50, 60}, (*p)[2]; p=a;8.若有int a=1;int b=2;则a|b的值为___3______。
9.设有char *p="abcde\0fghjik\0 "; 则语句printf("%d\n ",strlen(p));的输出结果是_____5_______。
10.表达式0x13^0x17的值是__ox4________。
11.在C语言中,&运算符作为单目运算符时表示的是__取地址_____运算;作为双目运算符时表示的是_按位与____运算。
12.若p是指向某一结构体变量的指针变量,则通过指变量对结构体成员的引用方法有:_____p->_______和_______(*p)._______。
13.设int a[3][4]={{1,2,3,4},{5,6,7,8}};则*(*a+2)的值为__3____。
14.判断文本文件是否结束时使用的符号常量EOF的值是___-1___。
谭浩强c语言程序设计试题pdf

谭浩强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.一个函数由两部分组成,它们是和。
c语言习题 谭浩强 有答案版

1.若有以下定义和语句:int a[4]={0,1,2,3},*p;p=&a[2];则++(*p)的值是___3__。
2.与表达式a|=b等价的另一书写形式是_a=a|b________。
3.链表中的每个结点都是_结构体________类型数据。
4.设有语句:char *a="I_love_china!";a=a+2;则执行printf(“%s\n”,a);的输出结果是___love_china!__________。
5.若有宏义:#define f(x) x*x 则当a=3时,执行f(a-1)的值是____-1___。
6.有以下函数调用语句,请问函数fun1到底有___4____个参数。
fun1(x,(y,z),10,fun2((x-1,y-1)))7.设有以下定义和语句,则*(*(p+2)+1)的值为__60________。
int a[3][2]={10, 20, 30, 40, 50, 60}, (*p)[2]; p=a;8.若有int a=1;int b=2;则a|b的值为___3______。
9.设有char *p="abcde\0fghjik\0 "; 则语句printf("%d\n ",strlen(p));的输出结果是_____5_______。
10.表达式0x13^0x17的值是__ox4________。
11.在C语言中,&运算符作为单目运算符时表示的是__取地址_____运算;作为双目运算符时表示的是_按位与____运算。
12.若p是指向某一结构体变量的指针变量,则通过指变量对结构体成员的引用方法有:_____p->_______和_______(*p)._______。
13.设int a[3][4]={{1,2,3,4},{5,6,7,8}};则*(*a+2)的值为__3____。
14.判断文本文件是否结束时使用的符号常量EOF的值是___-1___。
谭浩强c语言试题及答案解析

谭浩强c语言试题及答案解析一、单项选择题1. C语言中,以下哪个选项是合法的标识符?A. 2classB. class2C. _classD. class$答案:C解析:在C语言中,标识符可以由字母、数字和下划线组成,但不能以数字开头。
因此,只有选项C中的"_class"是合法的标识符。
2. 下列哪个选项不是C语言中的关键字?A. intB. ifC. switchD. case答案:D解析:"case"不是C语言的关键字,而是与"switch"语句一起使用的关键字。
3. C语言中,以下哪个选项是整型常量?A. 3.14B. 0x1AC. 0.5D. 'a'答案:B解析:整型常量可以是十进制、八进制或十六进制数。
选项B 中的"0x1A"是一个十六进制数,因此是整型常量。
4. 下列哪个选项是C语言中正确的字符串常量?A. "Hello, World!"B. 'Hello, World!'C. "Hello", "World!"D. "Hello\"World!"答案:A解析:字符串常量是由双引号括起来的字符序列。
选项A是正确的字符串常量,而选项B是字符常量,选项C是两个字符串常量的组合,选项D中的转义字符不正确。
5. 下列哪个选项是C语言中正确的函数声明?A. int add(int x, int y);B. int add(int, int);C. int add();D. int add(int x; int y);答案:A解析:函数声明需要指定返回类型和参数类型。
选项A是正确的函数声明,而选项B没有指定参数名称,选项C没有指定参数,选项D的参数列表语法错误。
二、填空题1. C语言中,用于定义整型变量的关键字是____。
C程序设计(谭浩强第四版)试卷7 试卷及答案

一、单项选择题(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、9 D、 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、char D、_int7、循环语句while(!E);中得表达式!E等价于。
A、 E!=0B、 E!=1C、 E==0 D、 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、若用数组名作为函数调用得实参,传递给形参得就是。
A、数组得首地址B、数组第一个元素得值C、数组中全部元素得值D、数组元素得个数10.下面四段程序中,不就是死循环得程序段就是。
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语言谭浩强经典习题答案(考试复习题、计算机等级考试复习)

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) 下面函数用来求出两个整数之和,并通过形参传回两数相加之和值,请填空。
c语言程序设计谭浩强第五版课后答案

c语言程序设计谭浩强第五版课后真题及答案
一、选择题
1. 下列关于C语言的叙述中,正确的是______________。
A. C语言的程序都可以在windows系统上运行
B. C语言也可以用于嵌入式系统的程序设计
C. 所有的C语言程序都是用于嵌入式系统的
D. C语言可以指定某个程序需要很多内存
答案:B
2. 下列关于特殊C语言特征的说法中正确的是:
_______________
A. 特殊的符号可以表示不同的意思
B. 多进程的时候只能用C语言
C. C语言可以完成复杂的数据结构设计
D. C语言可以处理大数据很快
答案:C
3. 以下关于C语言的说法中正确的是:________________
A. C语言可以和多种不同的硬件平台兼容
B. C语言无法与许多操作系统类型兼容
C. C语言只能用于算法设计
D. 可以使用C语言实现复杂的系统程序设计
答案:D
4. 使用C语言编写的程序,有什么优势?
A. 可以快速完成大量的运算
B. 可以在各种计算机系统运行
C. 程序可以快速更新
D. 程序提供高质量的结果
答案:B、C、D。
绝密 谭浩强版C语言期末考试试卷附答案

《C语言程序设计》复习资料填空题a)在C语言中,字符类型的数据在内存中以相应的ASCII码存放,所以字符也可以用整数形式输出。
b)在C语言中,符号常量是在一个程序中指定的用名字代表的常量,定义符号常量一般用#define 命令,定义一个符号常量PI,其值为3.14159,格式是#define PI 3.14159。
c)用条件运算符写出求两个数a,b大者的表达式max=(a>b)?a:b 。
d)在一个函数中有定义int (*p)[10],则p为指向长度为10的行指针。
e)C语言参数传递的两种方式是值传递和地址传递;f)在C语言中,允许在程序中用typedef来定义新的类型名代替已有的类型名,例如typedef int INTEGER。
g)C语言程序是函数构成的,其中有且只有1 个主函数,可以有若干个其它函数。
h)设整型变量X,Y,Z的值均为5,执行X%=Y+Z后,X= 5 ,继续执行X=Y>Z?X+2:X-2后,X= 3。
i)执行语句“for(j=1;j<=5;j++);”后,变量j的值为 6 。
j)函数形式参数的作用域是本函数内。
k)若有以下定义:char a;int b;float c;double d;则表达式a*b+d-c的值的类型是doubled 。
l)在一个函数中有定义int a=10,*p=&a;执行*p=a+15;后,a的值为25。
m)在一个函数中有定义float a=78,*p=&a;执行*p=* p +22;后,a的值为100 。
n)定义一个长度为20的整形一维数组a ,且前4个元素的初值为6,12,18,24,定义的格式为:int a[20]={6,12,18,24}; 。
结构化程序设计的三种基本结构是顺序结构、选择结构和循环结构。
o)表达式(int)(20+2.5*3+6+5.3) 的值是38。
p)写出表达式11<14&&17<25的值 1 。
谭浩强版C语言期末考试

一选择题(分,每小题分).已知函数地调用形式为(,,,),其中代表地是().存放读入数据项地存储区存放读入数据地地址或指向此地址地指针一个指向所读文件地文件指针一个整形变量,代表要读入地数据项总数.以下程序地输出结果为().( ){;("\");}.设为型变量,执行下列赋值语句后,地取值分别是(). ;;();<<;.设和都是类型,则循环语句().()("****\");循环结束地条件不合法循环体一次也不执行循环体只执行一次是无限循环.以下程序地输出结果为().( ){;;(<){;(){'':'':''(",");("");}}},,.函数调用语句:(,,);地含义是().将文件位置指针从文件末尾处向文件头地方向移动个字节将文件位置指针从当前位置向文件头地方向移动个字节将文件位置指针从当前位置向文件末尾方向移动个字节将文件位置指针移到距离文件头个字节处.以下程序地输出结果为().( ){;([]'\');([]'\')[][];[];("\");}.下列说法不正确地是().主函数中定义地变量在整个文件或程序中有效不同函数中,可以使用相同名字地变量形式参数是局部变量在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效.在下列程序段中,枚举变量地值是().{ };;;.设有说明(*)();其中标识符是().是一个指向整形变量地指针是一个指针,它指向一个函数值是地函数是一个函数名定义不合法.定义由个指向整形数据地指针组成地数组,其正确地方式为(). ;(*)[];*[];(*)( );.具有相同类型地指针类型变量与数组,不能进行地操作是(). ;*[];[];;二判断对错,对地划“√”,错地划“×”(分,每小题分).参加位运算地数据可以是任何类型地数据. ( ).若有定义和语句:;;;("");若通过键盘输入:则‘’. ( ).语言把文件看作是一个字符(字节)地序列. ( ).若有宏定义:()由于变量没定义,所以此宏定义是错误地. ( ).在中,下面地定义和语句是合法地:*;("",""); ( ).若有定义:[ ]="";则系统为数组开辟个字节地内存单元. ( ).若有定义和语句:[][]={{},{},{}};(<)[][];则. ( ).若有定义和语句:{;[];;}[]{{,""},{,""}},*("",*);文档来自于网络搜索输出结果是. ( ).在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型地变量. ( ) .在中,此定义和语句是合法地:{ =};( ); ( )三写出下列程序地运行结果(分,每小题分).( ){;; ()(“\”);}.( ){;{*;;}(); 先执行,后判断(“\\\”);}.( ){[]={};();(<)(“,”[]);(“\”);}( [ ] ) 倒置{;(<){(); 函数自身地嵌套调用,形成循环[];[][];[];}.<>(){[ ]" ";;(;([])'\'){(){'': ; ; 由于,跳过了后面地个字母'': ;: (“”); ;}(“*”);}(“\”);}.结构体{;;};共用体{;;};( ){;;(" \");(" \");(" \");;(" \");;(" \");}.{*" !",**;*,*"";;*'';;("\\\\",*,**);}四阅读下列程序,在处填入适当内容,使程序完整(分,每个空分)百马百担问题:有匹马,驮担货,大马驮担,中马驮担,两匹小马驮担,问大、中、小马各多少匹?文档来自于网络搜索( ){;(<())(<()){() ;(*()){;("\"*);}}("\");}.用“起泡法”对输入地个字符排序后按从小到大地次序输出.[];(){;(;){("");;("\");}(());(<){(""[]);}}( []) 冒泡排序{;;(<)(<)([]>[]){[];();(); 交换位置}}.以下程序是一个函数,功能是求二阶矩阵(行列矩阵)地所有靠外侧地各元素值之和.(本程序中二阶矩阵用一维数组来表示.)文档来自于网络搜索例如,矩阵为:则所有靠外侧地各元素值之和为.( []){(<)(<)();(<)(())[*];();}.用指针作函数参数,编程序求一维数组中地最大和最小地元素值.(){( [] * * );[]{},*,*;文档来自于网络搜索;;();("");}( [] * * ){;**[];(<){([]>*)() ;([]<*)() ;}}答案一选择题(分,每小题分).( ) .( ) .( ).( ) .( ) .( ).( ) .( ) .( ).( ) .( ) .( )二判断对错,对地划“√”,错地划“×”(分,每小题分).(× ).(√ ).(√ ).(× ).(× ).(√ ).(√ ).(× )三写出下列程序地运行结果(分,每小题分),*!四阅读下列程序,在处填入适当内容,使程序完整(分,每个空分).() () ().() () [][] () [].() [*] () <.() *[] () *[]选择题.一个程序地执行是从 .)本程序地函数开始,到函数结束)本程序文件地第一个函数开始,到本程序文件地最后一个函数结束)本程序地函数开始,到本程序文件地最后一个函数结束)本程序文件地第一个函数开始,到本程序函数结束文档来自于网络搜索.以下叙述正确地是 .)在程序中,函数必须位于程序地最前面)程序地每行中只能写一条语句)语言本身没有输入输出语句文档来自于网络搜索)在对一个程序进行编译地过程中,可发现注释中地拼写错误 .以下叙述不正确地是 .)一个源程序可由一个或多个函数组成)一个源程序必须包含一个函数)程序地基本组成单位是函数文档来自于网络搜索)在程序中,注释说明只能位于一条语句地后面语言规定:在一个源程序中,函数地位置 .) 必须在最开始 ) 必须在系统调用地库函数地后面 ) 可以任意 ) 必须在最后文档来自于网络搜索.一个语言程序是由 .) 一个主程序和若干子程序组成 ) 函数组成 ) 若干过程组成 ) 若干子程序组成文档来自于网络搜索语言中地语句需要符号作为结尾. ) : ) ) . ) 文档来自于网络搜索. 语言程序中可以对程序进行注释,注释部分用符号括起来. )‘{‘和’}’)‘[‘和’]’)“*”和”*”)“*”和”*”文档来自于网络搜索语言中注释地位置 .) 必须在程序地最开始 ) 必须在程序地结尾 ) 可以在程序地任何位置 ) 不可以写到函数里面文档来自于网络搜索语言程序能够在不同地操作系统下面运行,这说明语言具有很好地 . ) 适应性 )移植性)兼容性 ) 操作性文档来自于网络搜索语言经过编译后生成地文件地后缀是 .) ) ) )语言编译程序地首要工作是 .) 检查语言程序地语法错误 ) 检查语言程序地逻辑错误)检查程序地完整性 ) 同时检查语法和逻辑错误文档来自于网络搜索. 语言经过链接后生成地文件地后缀是 . ) ) ) ) 文档来自于网络搜索语言中地标识符只能由字母、数字和下划线三种字符组成,且第一个字符 . )必须为字母 )必须为下划线文档来自于网络搜索)必须为字母或下划线 )可以是字母、数字和下划线中任一种字符. 若以下选项中地变量已正确定义,则正确地赋值语句是 .) ; ) ; ) ; ) ; 文档来自于网络搜索. 设变量为型且已经赋值,则以下语句中能够将中地数值保留到小数点后面两位,并将第三位四舍五入地是 . 文档来自于网络搜索) * ) (*) ) ()(*) ) ()* 文档来自于网络搜索. 下列语言中运算对象必须是整型地运算符是 .) ) ) ) *. 若有以下程序段: *;则执行后,中地值是 . 文档来自于网络搜索) ) ) ). 设和均为型变量,则以下语句:; ; ; 地功能是 . 文档来自于网络搜索) 把和按从大到小排列 ) 把和按从小到大排列 ) 无确定结果 ) 交换和中地值文档来自于网络搜索. 下列变量定义中合法地是 .) ; ) ; ) ; ) ; 文档来自于网络搜索.若变量已正确定义并赋值,符合语言语法地表达式是 .)))() )文档来自于网络搜索. 若有 ;则()和()两种描述 . 文档来自于网络搜索)都正确)都不正确)前者正确)后者正确. 有整型变量,单精度变量,表达式()(*(()))执行后,地值文档来自于网络搜索为().)))). 已知 ;则*地结果是 .))))表达式是错误地. 下列关于单目运算符、地叙述中正确地是 .)它们地运算对象可以是任何变量和常量)它们地运算对象可以是型变量和型变量,但不能是型变量)它们地运算对象可以是型变量,但不能是型变量和型变量)它们地运算对象可以是型变量、型变量和型变量 . 已定义为字符型变量,下列赋值语句中错误地是 . 文档来自于网络搜索)'\'; ); );)'\';. 假定有以下变量定义,则能使值为地表达式是 .;)() )() ))()() 文档来自于网络搜索. 设有“;”则表达式(*)地值是 .)))). 已定义为字符型变量,则下列语句中正确地是 .)’’)“”))“”. ()是 .)一个双精度型表达式)一个整型表达式)一种函数调用)一个不合法地表达式文档来自于网络搜索. 有以下定义语句:; ; ;若各变量已正确赋值,则下列选项中正确地表达式是 . ))(()) )()() )文档来自于网络搜索. 若变量是类型,并执行了语句:‘’;,则正确地叙述是 .)地值是字符)地值是浮点型)不允许字符型和浮点型相加)地值是字符’’地值加. 设和均为型变量,且、,则表达式()地值是 . 文档来自于网络搜索)))). 在下列选项中,不正确地赋值语句是 .); )(()); ); ); 文档来自于网络搜索.已知 ; ; ; ; 则表达式 * 地结果为型. 文档来自于网络搜索))))文档来自于网络搜索. 若为型变量,则执行语句; 后,地值为 .))))文档来自于网络搜索. 若、、、均为型变量,则执行表达式 ( , , )后,地文档来自于网络搜索值为.))))文档来自于网络搜索. 在程序中,是、;是.)表达式、语句)表达式、表达式)语句、语句)语句、表达式文档来自于网络搜索.假设变量是整型,是实型,是双精度型,则表达式*地值地数据类型是.))))不确定.在语言中,型数据在内存中地存储形式是 .)补码)反码)原码)码.执行下列程序片段时输出结果是 . ; 文档来自于网络搜索(“”());)))). 执行语句(“”),输入时,变量、、地值分别为 . 文档来自于网络搜索)'', '', '')'','', '')'', '', '')'','',''文档来自于网络搜索. 设均是字符型变量,则以下不正确地函数调用为 . )(“”);)( ); )(); )(); 文档来自于网络搜索.下列函数中能够向终端输出一个字符或字符型变量值地是 . ))))文档来自于网络搜索. 若有下列语句’’;(“”);则输出地结果是 .))))错误地语句. 下列程序输入’’字母后,执行程序后输出地结果是 . <> ( ) { ; (); ; 文档来自于网络搜索("\");; })))).程序流程图中带箭头地线段表示 .) 处理操作 ) 数据流 ) 控制流 ) 调用关系.程序流程图中地菱形框表示 .) 输入 ) 输出 ) 判断 ) 循环.下面地流程图是结构地程序设计.) 顺序 ) 顺序加选择 ) 判断 ) 循环. 图完全取消了,不允许有随意地控制流,全部算法写在一个矩形框内. ) 流程线 ) 输出 ) 判断 ) 循环文档来自于网络搜索. 以下描述中正确地是 .) 由于循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句) 循环由开始,用结束,在(表达式)后面不能写分号) 循环至少要执行一次循环语句) 循环中,根据情况可以省略. 逻辑运算符两侧运算对象地数据类型 .)只能是或)只能是或非正数)只能是整型或字符型数据)可以是任何类型地数据文档来自于网络搜索. 下列运算符中优先级最高地是 .(非,算术,关系,,或,赋值运算符)) < ) 十 ) ).能正确表示"当地取值在[]和[]范围内为真,否则为假"地表达式是 . 文档来自于网络搜索 ) (>) (<) (> ) (<)) (>) (<) (>) (<)) (>) (<)(> ) (<) ( > )(< ) (> )(<).判断型变量是否为大写字母地正确表达式是 . ) ' ' <<'' ) (> '')(<' ' ) ) (>' ' )(<'') ) (' ' < )(''> ) 文档来自于网络搜索.设和是型变量,且 ,则下面表达式中值为地是 . ) '''' ) < ) ) !(<)) 文档来自于网络搜索.已知''则表达式(> <'') 地值是 . ) ) 语法错 ) ) "假" 文档来自于网络搜索.若希望当地值为奇数时,表达式地值为"真"地值为偶数表达式地值为"假".则以下不能满足要求地表达式是 . ) ) !( ) ) !() ) 文档来自于网络搜索. 若有程序段如下: ; ();()(); ;执行后,变量地值是 . )))). 定义: ;后,则下面表达式为地是 . )' ' ' ' )< 文档来自于网络搜索))!((<) ). 以下程序段 . () { ; {*;} ();(" .");; })是死循环)循环执行次)循环执行次)有语法错误. 对后括号内地表达式,叙述正确地是 . )只能是数字)可以是浮点数文档来自于网络搜索)只能是整型数据或字符型数据)以上叙述都不对.下列关于和语句地说法中正确地是 . )语句只能用在语句中文档来自于网络搜索)在语句中,可以根据需要决定是否使用语句)在语句中必须使用语句)以上选项都不正确文档来自于网络搜索. 以下正确地描述是 .)语句地作用是结束整个循环地执行 )只能在循环体内和语句体内使用语句 )在循环体内使用语句或语句地作用相同 )从多层循环嵌套中退出时, 只能使用语句文档来自于网络搜索.以下说法中错误地是 .)语言总是从函数开始执行)函数在程序中出现地先后位置与其被调用地顺序无关)一个完整地程序可由若干个源程序文件组成文档来自于网络搜索)函数地定义必须出现在所有其他函数之前,否则将产生运行错误.语言规定,函数返回值地类型是 .)由语句中表达式地类型所决定)由调用该函数地主调函数所具有地类型决定)由定义该函数时所指定地函数类型决定)由系统随机决定文档来自于网络搜索.以下说法中正确地是 .)函数和其他函数间可相互调用)函数可以调用其他函数,但其他函数不能调用函数)因为函数可不带参数,所以其后地参数小括号能省略)根据情况可以不写函数文档来自于网络搜索.以下函数定义中正确地是 .)( ) )( , ) )( , ); ) ( , ) { ; } { ; } { ; } { ; }文档来自于网络搜索.以下说法中正确地是 .)在一个函数地执行过程中又出现对其他函数地调用,则称此函数为递归函数. )递归函数中必须存在递归结束地条件文档来自于网络搜索)函数地递归调用可以提高程序地执行效率)递归函数中必须出现语句.以下有关“递归函数”说法中正确地是 .)既允许直接递归调用,也允许间接递归调用)只允许直接递归调用)既不允许直接递归调用,也不允许间接递归调用)只允许间接递归调用.语言中,函数调用时若实参是数组名,则传递给被调函数对应形参地是 . ) 整个数组 ) 数组元素地个数文档来自于网络搜索) 数组占用地内存单元个数 ) 数组在内存中存放地首地址.语言中,函数调用时若实参是数组名,则被调函数对应形参 . ) 可以是相应类型简单变量 ) 必须是相应类型数组名 ) 可以是相应类型数组名 ) 必须是相应类型地指针变量文档来自于网络搜索.以下说法中错误地是 .)数组元素可以作为函数实参)指针可以作为函数地形参)结构变量可以作为函数参数)结构指针变量不能作为函数参数文档来自于网络搜索.语言中,以下叙述中错误地是 . ) 主函数中定义地变量是全局变量) 同一程序中,全局变量和局部变量可以同名 ) 全局变量地作用域从定义处开始到本源程序文件结束 ) 局部变量地作用域被限定在其所定义地局部范围中文档来自于网络搜索.在一个源程序文件中定义地全局变量,其作用域为 .) 整个源程序文件 ) 从定义处开始到本源程序文件结束 ) 整个主函数 ) 所处程序地所有源程序文件中文档来自于网络搜索.在函数中,局部变量地隐含存储类型是 .) ) ) ).在程序中,如果限定一个局部变量只能在所定义地范围中起作用,那么这个变量地存储类型 . 文档来自于网络搜索) 只能是 ) 只能是) 可以是或 ) 可以是或文档来自于网络搜索填空题.在语言中所提供地数据结构是以数据类型形式出现地,其中地基本类型包括型即整形、型即单精度浮点型、型即双精度浮点型、型即字符型等. 文档来自于网络搜索. 语言中地标识符只能由三种字符组成,它们是字母、数字和下划线 . 文档来自于网络搜索. 程序中地字符常量是用单引号括起来地一个字符;除此之外,还允许用一种特殊形式地字符常量,是以反斜杠\ 开头,被称为转义字符. 文档来自于网络搜索.字符串常量是一对双引号括起来地字符序列,且以‘\’结束..常量是指在程序执行过程中其值不能改变地量..变量是指在程序执行过程中其值可以改变地量.实型变量分为单精度和双精度两类..转义字符'\'表示换行,使光标移到屏幕上下一行开头..一个字符变量在内存中占字节..一个字符数据既可以以字符形式输出,也可以以整数形式输出..字符串常量是用“”括起来地字符序列..在进行运算时,不同类型地数据必须先强制类型转换,然后进行运算..可以利用强制类型转换运算符将一个表达式地值转换成指定地类型..有两种类型转换,一种是在运算时不必用户指定,系统自动进行类型转换;另一种是用户自己定义地转换(强制类型转换) .文档来自于网络搜索.两个整数相除地结果是整数 ..求模运算符()只能用于整数操作数..一个表达式地最后加上一个;就成了一个语句..若,则执行表达式* 后地值为 ..若是型变量,则表达式((**))地值为 ..若是型变量,且地初值为,则执行表达式*后地值为 .文档来自于网络搜索.若是型变量,则执行表达式后地值为 ..若和均是型变量,且和地初值均为,则执行表达式地值为,地值为 . 文档来自于网络搜索.计算机程序设计语言地发展经历了从非结构化语言、结构化语言到面向对象地语言地历程. 文档来自于网络搜索.计算机唯一能识别地语言是机器语言 .源程序地基本单位是函数 ..一个源程序至少应包括一个主函数 ..在一个源程序中,注释部分两侧地分界符分别为*……*和…… . 文档来自于网络搜索语言源程序文件地后缀是,经过编译后, 生成文件地后缀是,经过链接后,生成文件地后缀是 . 文档来自于网络搜索. 用高级语言编写地程序称为源程序,必须将其翻译成二进制程序后才能执行.翻译有两种方式,一种是通过解释翻译一句执行一句地方式执行,另一种通过编译一次翻译产生目标程序,然后执行.文档来自于网络搜索.程序设计地核心是算法 ..算法描述地方法包括自然语言、流程图和伪代码 . 文档来自于网络搜索.程序设计地三种基本结构包括顺序、循环和选择 . 文档来自于网络搜索程序阅读题.写出以下程序运行地结果 . <> ( ) { 文档来自于网络搜索; ; ; ; ;(“”); ; } ,,. 写出以下程序运行地结果 . <> () { , ; 文档来自于网络搜索; () ; () () 文档来自于网络搜索(", \", );; }. 写出以下程序运行地结果 , .<> () {, , ;( ( ) * )*;(", , \", , ,);. 下面程序地功能是输出至之间地不能被整除地数,请填空使程序完整. ( ) { ; 文档来自于网络搜索(<) { (){(" ");}}; }. 下面程序完成地功能是,在全班个学生中,征集慈善募捐,当总数达到元时就结束.请判断下面程序地正误,如果错误请改正过来(只有一处错误). 文档来自于网络搜索( ) { ; ;(<) { (""); ; (>) ; 文档来自于网络搜索}(" ");; }. 执行程序之后,输入↙↙↙,以下程序运行后地输出结果是 .(↙表示回车) <> () { ; 文档来自于网络搜索("请输入三个整数:\"); (""); (>) ; ; 文档来自于网络搜索(>) ; ("\"); ; 文档来自于网络搜索}. 以下程序运行后地输出结果是 . <> ( ) { ; ; (<) { ; 文档来自于网络搜索;}("\");;}. 下面程序地功能是:求…!,请填空使程序完整. () { ; 文档来自于网络搜索; (; < ) {*;;}("", );; }.请给出程序运行结果. () { ;(" "());("\");; }( ) { ;() ; (); ;}.请给出程序运行结果. ; () { ( ); ; 文档来自于网络搜索("\"());; }( ) {;*;}.以下程序地功能是求一个*矩阵中最小元素.请填空.( [][]) { ; (<) (<) ([][]<) 文档来自于网络搜索[][];;}() {[][]{};; ()("\");; }.下面程序地功能是:用户从键盘输入两个型数据和,计算并输出除以地商.请判断下面程序地正误,如果错误请改正过来. 文档来自于网络搜索( , ) { ;; 注意这样编程输入时要输入带小说点,要不这一步做地是取整运算;;}() { ;(" ");("商\"()); ; }.下面程序地功能是:输出全局变量、两者地最小值.请判断下面程序地正误,如果错误请改正过来.( ;既然是全局变量,应该写到前面,至少在前) 文档来自于网络搜索; <; ;}(){ ("\"());; }编程题. 编写一个程序,求满足以下条件地最大地值.…≤.<> () { ; ;(<); { *; ;}("\"); ; }. 编写一个程序,输入三条线段地长度,判断这三条线段能否构成一个直角三角形.<> () {;(""); (>>){((*)(**)) ("长度为地三条边能构成直角三角形\"); 文档来自于网络搜索("长度为地三条边不能构成直角三角形\");}(>>) { ((*)(**)) ("长度为地三条边能构成直角三角形\"); 文档来自于网络搜索("长度为地三条边不能构成直角三角形\");}(>>) { ((*)(**))("长度为地三条边能构成直角三角形\");("长度为地三条边不能构成直角三角形\");} ; }.判断用户输入地字符是数字字符、字母字符还是其它字符.. 从键盘输入名学生地门成绩,分别找出每个学生地最高成绩,用循环嵌套. .编写函数,删除字符串中地所有数字字符. .分别求出之间奇数之和、偶数之和. .输入三个不同地整数,输出三个整数中地最大数. <> () { 文档来自于网络搜索; (""); (>>) 文档来自于网络搜索("最大值为\"); (>>)("最大值为\");(>>)("最大值为\");}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言期末考试试题2008年04月12日星期六 00:22一选择题(24分,每小题2分)1.已知函数fread的调用形式为fread(buffer,size,count,fp),其中buffer代表的是()。
A 存放读入数据项的存储区B 存放读入数据的地址或指向此地址的指针C 一个指向所读文件的文件指针D 一个整形变量,代表要读入的数据项总数2.以下程序的输出结果为()。
main( ){int i=010,j=10;printf("%d,%d\n",i++,j--);}A 11,9B 9,10C 8,10D 9,93.设a为int型变量,执行下列赋值语句后,a的取值分别是()。
a=125.534;a=20.0/3;a=(int)125.521%4;A 125,6,31,1B 125,6,1,20C 125,6.666666,31,20D 125.534,6.666666,2,204.设i和k都是int类型,则for循环语句()。
for(i=0,k=-1;k=1;i++,k++)printf("****\n");A 循环结束的条件不合法B 循环体一次也不执行C 循环体只执行一次D 是无限循环5.以下程序的输出结果为()。
main( ){char c;int i;for(i=65;i<68;i++){c=i+32;switch(c){case 'a':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;A 1B 3C 5D 610.设有说明 int (*ptr)();其中标识符ptr是()。
A 是一个指向整形变量的指针B 是一个指针,它指向一个函数值是int的函数C 是一个函数名D定义不合法11.定义由n个指向整形数据的指针组成的数组p,其正确的方式为()。
A int p;B int (*p)[n];C int *p[n];D int (*p)( );12.具有相同类型的指针类型变量p与数组a,不能进行的操作是()。
A p=a;B *p=a[0];C p=&a[0];D p=&a;二判断对错,对的划“√”,错的划“×”(20分,每小题2分)1.参加位运算的数据可以是任何类型的数据。
( )2.若有定义和语句:int a;char c;float f;scanf("%d,%c,%f",&a,&c,&f);若通过键盘输入:10 A 12 5则a=10,c=‘A’,f=12.5。
( )3.C语言把文件看作是一个字符(字节)的序列。
( )4.若有宏定义:#define S(a,b) t=a;a=b;b=t由于变量t没定义,所以此宏定义是错误的。
( )5.在Turbo C中,下面的定义和语句是合法的:file *fp;fp=fopen("a.txt","r"); ( )6.若有定义:char s[ ]="china";则Turbo C系统为数组s开辟6个字节的内存单元。
( )7.若有定义和语句:int a[3][3]={{3,5},{8,9},{12,35}},i,sum=0;for(i=0;i<3;i++)sum+=a[i][2-i];则sum=21。
( )8.若有定义和语句:struct student{int num;char name[10];float score;}s[5]={{1,"lili",98.5},{9,"xiaohua",66}},*p=s;printf("%d",*p++);输出结果是1。
( )9.在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量。
( )10.在Turbo C中,此定义和语句是合法的:enum aa{ a=5,b,c}bb;bb=(enum aa)5; ( )三写出下列程序的运行结果(36分,每小题6分)1.main( ){int i=29,j=6,k=2,s;s=i+i/j%k-9; //s=i+(i/j)%k-9printf(“s=%d\n”,s);}2.main( ){int x=31,y=2,s=0;do{s-=x*y;x+=2;y-=3;while(x%3==0); //先执行,后判断printf(“x=%d\ty=%d\ts=%d\n”,x,y,s);}3.main( ){int a[6]={10,20,30,40,50,60},i;invert(a,0,5);for(i=0;i<6;i++)printf(“%d,”,a[i]);printf(“\n”);}invert(int s[ ],int i,int j) //倒置{int t;if(i<j){invert(s,i+1,j-1); //函数自身的嵌套调用,形成循环 t=s[i];s[i]=s[j];s[j]=t;}}4.#include <stdio.h>main(){char str[ ]="The C program",c;int i;for(i=2;(c=str[i])!='\0';i++){switch(c){case 'g': ++i; break; //由于++i,跳过了g后面的1个字母 case 'o': continue;default: printf(“%c”,c); continue;}printf(“*”);}printf(“\n”);}5.struct w //结构体{char low;char high;};union u //共用体{struct w byte;short word;}uw;main( ){int result;uw.word=0x1234;printf("word value:%04x\n",uw.word);printf("high byte:%02x\n",uw.byte.high);printf("low byte:%02x\n",uw.byte.low);uw.byte.low=0x74;printf("word value:%04x\n",uw.word);result=uw.word+0x2a34;printf("the result:%04x\n",result);}6.main(){char *s2="I love China!",**s1=&s2;char *s3,c,*s4="w";s3=&c;*s3='H';s2=s2+2;printf("%s\t%c\t%s\t%c\n",s2,*s3,s4,**s1); }四阅读下列程序,在处填入适当内容,使程序完整(20分,每个空2分)1.百马百担问题:有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问大、中、小马各多少匹?main( ){int hb,hm,hl,n=0;for(hb=0;hb<=100;hb+=(1))for(hm=0;hm<=100-hb;hm+=(2)){hl=100-hb- (3) ;if(hb/3+hm/2+2*(3)==100){n++;printf("hb=%d,hm=%d,hl=%d\n",hb/3,hm/2,2*hl);}}printf("n=%d\n",n);}2.用“起泡法”对输入的10个字符排序后按从小到大的次序输出。
#define N 10char str[N];void main(){int i,flag;for(flag=1;flag==1;){scanf("%s",str);flag=0;printf("\n");}sort(___(4)___);for(i=0;i<N;i++){printf("%c",str[i]);}printf("\n");}sort(char str[N]) //冒泡排序{int i,j;char t;for(j=1;j<N;j++)for(i=0;i<10-j;i++)if(str[i]>str[i+1]){t=str[i];____(5)____;____(6)____; //交换位置}}3.以下程序是一个函数,功能是求二阶矩阵(m行n列矩阵)的所有靠外侧的各元素值之和。
(本程序中二阶矩阵用一维数组来表示。
)例如,矩阵为:3 0 0 32 5 7 31 0 4 2则所有靠外侧的各元素值之和为3+0+0+3+2+3+1+0+4+2=18。
add(int m,int n,int arr[]){for(i=0;i<m;i=i+m-1)for(j=0;j<n;j++)sum=sum+____(7)____;for(j=0;j<n;j=j+n-1)for(i=1;____(8)____;i++)sum=sum+arr[i*n+j];return(sum);}4.用指针作函数参数,编程序求一维数组中的最大和最小的元素值。