谭浩强C语言试题库(完整版)
谭浩强《C语言程序设计》考研练习题库

谭浩强《C语言程序设计》考研练习题库在计算机科学与技术领域,C 语言作为一门基础且重要的编程语言,对于考研学子来说,熟练掌握其知识和技能至关重要。
谭浩强老师的《C 语言程序设计》是众多高校广泛采用的经典教材,而与之配套的考研练习题库,则是考生们巩固知识、提升能力的有力工具。
这套考研练习题库涵盖了 C 语言的各个方面,包括数据类型、运算符与表达式、控制结构、数组、指针、函数、结构体与共用体、文件操作等。
题目类型丰富多样,有选择题、填空题、编程题等,能够全面考查考生对知识点的理解和运用能力。
在数据类型的部分,题库中会有各种关于整型、浮点型、字符型等数据类型的定义、存储方式以及取值范围的题目。
例如,让考生判断某个变量在特定运算中的数据类型转换是否正确,或者给定一个数值,要求考生选择合适的数据类型进行存储。
运算符与表达式的题目则注重考查考生对各种运算符的优先级、结合性的掌握,以及如何正确构建表达式来实现特定的计算目标。
比如,复杂的混合运算中,要求考生确定最终的计算结果,或者根据给定的条件写出相应的表达式。
控制结构是 C 语言的核心之一,这部分的题目会涵盖 ifelse 语句、for 循环、while 循环、dowhile 循环等。
可能会要求考生根据给定的逻辑条件,写出正确的控制结构代码,或者分析一段已有代码的输出结果。
数组是存储相同类型数据的集合,题库中关于数组的题目会涉及数组的定义、初始化、遍历以及数组作为函数参数的传递等。
比如,给定一个数组,要求考生对其进行排序或者查找特定元素。
指针是 C 语言的一个重要特色,也是难点所在。
在题库中,会有大量关于指针的操作、指针与数组的关系、指针作为函数参数等方面的题目。
考生需要熟练掌握指针的概念和用法,才能正确解答这些问题。
函数是 C 语言程序模块化设计的基础,相关题目会考查函数的定义、调用、参数传递、返回值,以及函数的递归调用等。
考生需要理解函数的工作机制,能够编写和调用功能正确的函数。
《c语言程序设计》谭浩强浙师大练习题

(29)将程序的第18行改为“p = &s[1]”,运行程序,输出。
A. (Zhao, M)B. (Qian, M)
C. (Zhao, F)D. (Qian, F)
(30)将程序的第18行改为“p= s+2”,运行程序,输出。
A. (Qian, M)B. (Sun, M)
阅读下列程序说明和程序,在每小题提供的若干可选答案中,选择一个正确答案.
【程序说明】
输入一个正整数n,然后输入n个单精度实数,用冒泡法将这些实数从低到高排序后输出。
【运行示例】
Enter n: 5
Enter 5 floats: 75.273 89.5 67.342 -98 5.41
After sorted: -98.00 5.41 67.34 75.28 89.50
试题6(每小题2分,共8分)
阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序】
#include <stdio.h>
int a= 0;
void fun()
{int a = 1; //第4行
printf("%d,", a++);
}
void main()
{int i;
for(i = 1; i <= 2; i++)
【程序】
#include <stdio.h>
void main()
{int n, i, j;
float temp, a[100];
printf("Enter n(n>0): ");
c程序设计第五版谭浩强考研题库

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语言试题谭浩强work Information Technology Company.2020YEARC语言期末考试试题(谭浩强版) 2011-7-8 20:552011-7-8 21:23 最佳答案 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=5<<2;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 '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);的含义是()。
谭浩强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 谭浩强 总复习试卷1
{
public:
Date ();
Date (int y, int m, int d);
void print();
private:
int year, month, day;
};
Date:: Date ():year(2005),month(3),day(15)
{
}
Date:: Date (int y, int m, int d):year(y),month(m),day(d)
{
year = y;
month = m;
day = d;
}
void Date::print()
{
cout<<year<<"."<<month<<"."<<day<<endl;
}
void main()
{
Date t1;
t1.set(2005,3,3);
t1.print();
}
2、
#include <iostream.h>
5、使用new运算符动态创建对象数组时必须指定初始值。
6、一个类的所有对象都有各自的数据成员,它们共享成员函数。
7、一个类中可以有多个同名的成员函数。
8、类成员的定义可以是数据成员在前,成员函数在后。
9、类的静态成员函数的初始化工作要放在类外进行。
10、类与对象的关系和数据类型与变量的关系相似。
四、分析题
T d2(d1);
cout<<d2.add(10)<<endl;
}
5、
#include<iostream.h>
c语言谭浩强第1章至第3章测试试题
c语⾔谭浩强第1章⾄第3章测试试题湖南省洞⼝职业中专⾼三⽉考(⼀)计算机应⽤类专业C语⾔试题姓名:班次:时量:90分钟总分:130分⼀、单项选择题(在每⼩题的四个备选答案中选出⼀个正确答案,并将正确答案的号码填⼊题后括号中。
每⼩题2分,共90分)1、下列选项中,合法的C语⾔关键字是A) V AR B) cher C) integer D) default2、以下有4组⽤户标识符,其中合法的⼀组是A) For B) 4d C) f2_G3 D) WORD-sub DO IF voidCase Size abc define3、下列关于C语⾔⽤户标识符的叙述中正确的是A)⽤户标识符中可以出现在下划线和中划线(减号)B)⽤户标识符中不可以出现中划线,但可以出现下划线C)⽤户标识符中可以出现下划线,但不可以放在⽤户标识符的开头D)⽤户标识符中可以出现下划线和数字,它们都可以放在⽤户标识符的开头4、⼀个C程序的执⾏是从。
A) 本程序的main函数开始,到main函数结束B) 本程序⽂件的第⼀个函数开始,到本程序⽂件的最后⼀个函数结束C) 本程序⽂件的第⼀个函数开始,到本程序main函数结束D) 本程序的main函数开始,到本程序⽂件的最后⼀个函数结束5、以下叙述正确的是。
A) 在对⼀个C程序进⾏编译的过程中,可发现注释中的拼写错误B) 在C程序中,main函数必须位于程序的最前⾯C) C语⾔本⾝没有输⼊输出语句D) C程序的每⾏中只能写⼀条语句6、⼀个C语⾔程序是由。
A)⼀个主程序和若⼲个⼦程序组成 B) 函数组成C) 若⼲过程组成 D) 若⼲⼦程序组成7、以下所列的C语⾔常量中,错误的是A) 0xFF B) 1.2e0.5 C) 2L D) '\72'8、以下选项中合法的字符常量是A)"B" B) '\010' C) 68 D) D11、以下选项中可以作为C语⾔合法整数的是A) 10110B B) 0386 C) 0Xffa D) x2a212、设有以下定义int a=0;double b=1.25;char c='A';#define d 2则下⾯语句中错误的是A) a++; B) b++; C) c++; D) d++;13、设x、y、t均为int型变量,则执⾏语句:x=y=3;t=++x||++y;后,y的值为A) 不定值B) 4 C) 3 D) 114、设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为A)0 B) 1 C) 2 D) 315、假定w、x、y、z、m均为int型变量,有如下程序段:w=1; x=2; y=3; z=4;m=(w则该程序运⾏后,m的值是:A) 4 B) 3 C) 2 D) 116、以下选项中,与k=n++完全等价的表达式是:A) k=n,n=n+1 B) n=n+1,k=n C) k=++n D) k+=n+117、以下选项中⾮法的表达式是:A) 0<=x<100 B) i=j==0 C) (char)(65+3) D) x+1=x+118、有以下定义语句double a,b;int w;long c;若各变量已正确赋值,则下列选项中正确的表达式是A) a=a+b=b++ B) w%(a+b) C) (c+w)%(int)a D) w=a==b;19、若有定义:int a=8,b=5,c;执⾏语句c=a/b+0.4;后,c的值为:A)1.4 B) 1 C) 2.0 D) 220、若变量a是int类型,并执⾏了语句:a=’A’+1.6;,则正确的叙述是A)a的值是字符C B)a的值是浮点型C)不允许字符型和浮点型相加D) a的值是字符‘A’的ASCII值加上121、设a和b均为double型常量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是A) 6.500000 B) 6 C) 5.500000 D) 6.00000022、以下合法的赋值语句是A) x=y=100 B) d--; C) x+y; D) c=int(a+b);23、以下⾮法的赋值语句是A) n=(i=2,++i); B) j++; C) ++(i+1); D) x=j>0;24、设x、y均为整型变量,且x=10, y=3,则以下语句的输出结果是printf("%d,%d\n",x--,--y);A) 10,3 B) 9,3 C) 9,2 D)10,225、以下选项中,不正确的 C 语⾔浮点型常量是A. 160.B. 0.12C. 2e4.2D. 0.026、以下选项中,()是不正确的 C 语⾔字符型常量。
C 谭浩强 总复习试卷2
5、下面对友元的错误描述是()。
A.关键字friend用于声明友元
B.一个类中的成员函数可以是另一个类的友元函数
C.友元函数访问对象的成员不受访问特性影响
D.友元函数通过this指针访问对象成员
6、以下运算符中,不能在C++中重载的是()。
A.?:B. +C. -D. <=
13、下面对静态数据成员的特征中,说法错误的是()。
A.静态数据成员要在类体外进行初始化
B.静态数据成员不是所有对象所共用的
C.应用静态成员时,要在静态数据成员名前加<类名>和作用域运算符
D.说明静态数据成员时前边要加修饰符static
三、判断题
1、静态数据成员可以通过类名或对象名引用。
2、静态数据成员可以在类内或类外进行初始化。
3、在静态成员函数中可以访问本类中非静态的数据成员。
4、类的静态成员函数的初始化工作要放在类外进行。
5、若A是B的友元类,B是C的友元类,则A是C的友元类。
6、通过运算符重载,可以定义新的运算符。
7、C++中的所有运算符都能被重载。
8、运算符重载不能改变操作数的个数。
9、运算符重载不能改变其优先级与结合性。
C. friend A operator+ ( A &, double);
D. friend A operator+ ( A & , A &);
10、C++中对单目运算符进行重载的函数需要传入参数的个数为()。
A. 0B. 1C. 2D. 3
11、下列友元关系的描述中正确的是( )。
(完整版)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。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
谭浩强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、scanf(“%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);。