c语言试卷参考模板_第1页
c语言试卷参考模板_第2页
c语言试卷参考模板_第3页
c语言试卷参考模板_第4页
c语言试卷参考模板_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言试卷一、选择题(40分,每题1分)1、C语言规定:在一个源程序中,main函数的位置(C)。A、必须在最开始B、必须在系统调用的库函数的后面C、可以任意 D、必须在最后2、组成C语言程序的是(A)。 A、函数 B、 子程序C、过程 D、主程序和子程序 3、C语言中,用户能使用的合法标识符是(C)。 A、a_b!B、 xyz C、fa2D、5i 4、若定义inti; 则以下循环语句的循环执行次数是(B)。 for(i=2; i=0;) printf("%d", i-); A、 无限次 B、0次 C、1次 D、2次 5、以下关于宏替换的叙述不正确的是(D)。A、宏替换只是

2、字符替换 B、宏名无类型C、宏替换不占用运行时间 D、宏替换不占用编译时间6、在循环语句的循环体中,continue语句的作用是(C)。 A、立即终止整个循环 B、继续执行continue语句之后的循环体 C、结束本次循环 D、结束本次循环并跳出循环 7、以下对C语言中字符数组的错误描述是(C)。 A、字符数组可以存放字符串 B、字符数组中的字符串可以整个输入、输出 C、可以在赋值语句中通过赋值运算符=对字符数组整体赋值 D、字符数组中字符串的结束标志是0 8、C语言规定,函数返回值的类型由(D)所决定。 A、return语句中的表达式类型 B、调用该函数时的主调函数类型 C、调用该函数时的形

3、参类型 D、在定义该函数时所指定的函数类型 1 / 99、以下关于do-while循环的不正确描述是(B)。A、do-while的循环体至少执行一次B、do-while循环由do开始,用while结束,在while(表达式)后面不能写分号C、在do-while循环体中,一定要有能使while后面表达式的值变为零("假")的操作D、do-while的循环体可以是复合语句10、若a=-14,b=3,则条件表达式 a<b? a:b+1的值为(A)。A、-14 B、-13 C、3 D、411、已知:int n,i=1,j=2;执行语句n=i<j?i+:j+;则i和j的值

4、是(C)。A、1,2 B、1,3 C、2,2 D、2,312、为了判断两个字符串s1和s2相等,应当使用(D)。A、if (s1=s2) B、if(s1=s2)C、if (strcmp(s1,s2)D、if (strcmp(s1,s2)=0)13、若有说明:int a10; 则对a数组元素的正确引用是(C)。A、a10B、a3.5C、a5-3D、a-114、以下正确的函数形式是(D)。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+

5、y; return z;D、double fun( int x,int y) double z; z=x+y; return z; 15、对于条件表达式:(M)?(a+):(a-),其中的表达式等价于(C)。A、M = 0B、M = 1C、M != 0D、M != 116、若有以下定义和语句:char *s1 = “12345”, *s2 = “1234”;printf(“%dn”, strlen(strcpy(s1, s2);则输出结果是:(A)。A、4B、5C、9D、1017、以下哪一项是不正确的字符串赋值或赋初值的方式:(C)。A、char *str;str = “string”;B、c

6、har str7 = s, 't', 'r', 'i', 'n', 'g'C、char str110; str1 = “string”;D、char str1 = “string”, str2 = “12345678”;18、在以下一组运算符中,优先级最高的运算符是(C)。A、<=B、=C、%D、&&19、设有定义:struct skint a; float b;data, *p; 若有p = &data; 则对data中的a域的正确引用是(B)。A、(*p).data.aB、(*p)

7、.aC、p->data.aD、p.data.a20、执行下列语句后,sum变量的值是(B)。int sum = 0, i;for(i = 0; i < 10; i+, sum += i);A、45B、55C、0D、编译错误21、以下关于typedef的叙述中错误的是(A)。A、用typedef可以增加新的类型B、用typedef可以定义各种类型名,但不能用来定义变量C、用typedef只是将已有的类型用新的标识符来代替D、使用typedef有利于程序的通用和移植22、表达式1&3&5&7的值为(A)。A、1B、3C、5D、723、语句printf(“st”)

8、;的输出结果为(B)。A、stB、stC、sD、s24、语句:strcat(strcpy(str1, str2), str3)的功能是(C)。A、将字符串str1复制到字符串str2中,再连接到字符串str3之后B、将字符串str1连接到字符串str2之后,再复制到字符串str3中C、将字符串str2复制到字符串str1中,再将字符串str3连接到字符串str1之后D、将字符串str2连接到字符串str1之后,再将字符串str1复制到字符串str3中25、执行下列语句后,a的值为(B)。int a;#define M(x, y) (x*y)a = M(1+2, 3);A、9B、7C、5D、以上

9、均不是26、能正确表示“当x取值在1,10和200,210范围内为真,否则为假”的表达式是(B)。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) && (

10、x <= 10) | (x >= 200) | (x <= 210)27、若用数组作为函数调用的实参,传递给形参的是(A)。A、数组的首地址B、数组的第一个元素C、数组中全部元素的值D、数组元素的个数28、算术运算符、赋值运算符和关系运算符的运算优先级按从高到低的次序为(B)。A、算术运算、赋值运算、关系运算B、算术运算、关系运算、赋值运算C、关系运算、赋值运算、算术运算D、关系运算、算术运算、赋值运算29、假如指针p已经指向变量x,则&*p相当于(A)。A、xB、*pC、&xD、*p30、若执行以下语句,则输出的结果是(B)。char sp = “tv0wi

11、lln”;printf(“%d”, strlen(sp);A、14B、3C、9D、字符串中有非法字符31、下述程序的输出结果是(A)。int x = 10;y = x+;printf(“%d, %d”, (x+, y), y+);/(x+,y) 逗号取其最后的值 单从后向前计算A、11, 10B、11, 11C、10, 10D、10, 1132、假设指针p1已经指向来某个整型变量,要使指针p2也指向同一个变量,则下面各项中正确的是(D)。A、p2 = *p1B、p2 = &p1C、p2 = *p1D、p2 = &*p133、执行以下程序段后,c3中的值是(A)。int c1=1

12、,c2=2,c3;c3=c1/c2;A、0B、1/2C、0.5D、134、两个指针变量的值相等时,表明两个指针变量是(B)。A、占据同一内存单元B、指向同一内存单元地址或者都为空C、是两个空指针D、都没有指向35、C语言中运算对象必需是整型的运算符是(C)。A、/B、!C、%D、*36、下列程序的输出结果是(D)。void fun(int a, int b, int c) c =a*b; void main( )int c; fun(2,3,c); printf(”%dn”,c);A、0B、1C、6D、无法确定37、下面叙述正确的是(C)。A、算法的执行效率与数据的存储结构无关B、算法的空间复

13、杂度是指算法程序中指令(或语句)的条数C、算法的有穷性是指算法必须能在执行有限个步骤之后终止D、算法的时间复杂度是指执行算法程序所需要的时间38、以下数据结构属于非线性数据结构的是(C)。A、队列 B、线性表 C、二叉树D、栈39、以下错误的描述是(B)。A、break语句不能用于循环语句和switch语句外的任何其他语句B、在switch 语句中使用break语句或continue语句的作用相同C、在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环D、在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环40、在c语言中,函数中变量的隐含存储类别是(A)。

14、A、autoB、staticC、externD、无存储类别二、填空题(30分,每空1.5分)1、一个C源程序中至少应包括一个_main_函数。 2、结构化程序设计所规定的三种基本控制结构是 顺序 结构 循环 结构和 分支 结构。3、定义int i=1;执行语句 while(i+<5);后,i的值为_6_。4、若a是int型变量,且a的初值为6,则计算表达式a+=a-=a*a后,a的值为 _-60_。 5、C语言提供的三种逻辑运算符是&&、_|_和_!_。 6、printf(“%5.3fn”, 123456.12345);输出为_123456.123_。7、表达式: 3 &

15、amp; (2 & 3 4)的值为_4_。8、整型变量m的值为27,语句printf(“%xn”, m);的输出为_1b_。9、数组声明为int a66; 表达式:*a+3指向 _a【0】【3】, *(a+3)指向 _a【3】【0】_,*a指向 _a【0】【0】_。(注:答案的形式是:a11)10、定义一个带参数的宏,若变量中的字符为大写字母则转换成小写字母_#defineFUNC(c)(c)+32 或#define FUNC(c)(c)+'a'-'A'_。三、编程题(30分,每题10分)1、设计一个递归函数实现将任意一个十进制正整数输出为八进制数。 1

16、 void function(int num) 2 3 if(num) 4 5 function(num>>3); 6 printf("%d", num%8); 7 8 2、打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位 数字立方和等于该数本身。例如:153是一个“水仙花数”,因为 153=1的三次方5的三次方3的三次方。 1 #include <stdio.h> 2 3 int isflower(int num); 4 5 int main() 6 7 int i; 8 printf("The flowers are :

17、n"); 9 for (i=100;i<1000;i+) 10 if(isflower(i)=1) 11 printf("%d ",i); 12 printf("n"); 13 14 return 0; 15 16 17 int isflower(int num ) 18 19 int a , b , c; 20 a=num%10; 21 c=num/100; 22 b=(num%100)/10; 23 if(a*a*a+b*b*b+c*c*c=num) 24 return 1; 25 return 0; 26 3、编写一个函数实现将两个

18、从小到大排列的链表合并为一个也是从小到大排列的链表。链表节点的类型为:struct nodeint num, struct node *next;(按num大小排列)函数形式:void func(struct node *list, struct node *list1, struct node *list2)将list1和list2合并为list。注:list1和list2都有头节点 1 void func(struct node *list, struct node *list1, struct node *list2) 2 3 struct node *p, *p1, *p2; 4 p1 = list1->ne

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论