2018 C语言复习题
- 格式:docx
- 大小:47.29 KB
- 文档页数:8
2018c语言期末考试题及答案一、选择题(每题2分,共40分)1. 下列哪个选项是C语言中的关键字?A. myVarB. intC. varD. string答案:B2. C语言中,哪个符号用于定义数组的结束?A. ;B. ,C. [D. ]答案:D3. 在C语言中,以下哪个语句是正确的打印语句?A. print("Hello, World!");B. printf("Hello, World!");C. println("Hello, World!");D. cout << "Hello, World!";答案:B...40. 在C语言中,以下哪个函数用于计算两个数的和?A. sum()B. add()C. calculateSum()D. None of the above答案:D二、填空题(每空2分,共20分)1. 在C语言中,______关键字用于定义一个函数。
答案:void 或者 int(取决于函数的返回类型)2. 一个C语言程序的执行从______函数开始。
答案:main...20. 在C语言中,______运算符用于计算两个数的乘积。
答案:*三、简答题(每题10分,共30分)1. 解释C语言中指针的概念及其用途。
答案:指针是C语言中一种特殊的变量,它存储了另一个变量的内存地址。
指针的主要用途包括动态内存分配、数组操作、函数参数传递等。
2. 描述C语言中结构体(struct)的定义和使用方式。
答案:结构体是一种用户自定义的数据类型,它允许将多个不同类型的变量组合成一个单一的类型。
定义结构体使用关键字struct,后跟结构体名称和其包含的变量列表。
使用结构体时,可以创建该类型的变量,并访问其成员。
3. 简述C语言中递归函数的概念及其应用场景。
答案:递归函数是指在函数内部调用自身的函数。
递归常用于解决可以分解为相似子问题的问题,如树的遍历、排序算法(如快速排序、归并排序)等。
2018年c语言考试题及答案一、选择题(每题2分,共20分)1. 下列选项中,哪个是C语言中的合法标识符?A. 2variableB. variable2C. variable_2D. variable-2答案:C2. C语言中,用于定义一个整型变量的关键字是?A. intB. floatC. charD. double答案:A3. 下列哪个选项不是C语言中的运算符?A. %B. &&C. ==D. *答案:D4. 在C语言中,哪个关键字用于定义一个函数?A. functionB. defC. voidD. int答案:C5. 下列关于C语言数组的描述,哪个是错误的?A. 数组可以存储相同类型的元素B. 数组的索引从0开始C. 数组的大小在定义时必须确定D. 数组可以动态分配大小答案:D6. C语言中,哪个函数用于将字符串复制到另一个字符串?A. strcpyB. strcatC. strncpyD. strcat答案:A7. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. =D. +=答案:A8. 在C语言中,哪个关键字用于声明一个指针变量?A. pointerB. ptrC. *D. var答案:C9. 下列关于C语言函数的描述,哪个是正确的?A. 函数可以没有返回值B. 函数可以返回多个值C. 函数可以没有参数D. 函数必须有参数答案:C10. C语言中,哪个关键字用于定义一个结构体?A. structB. unionC. enumD. type答案:A二、填空题(每题3分,共15分)1. 在C语言中,使用____关键字可以定义一个常量。
答案:const2. C语言中,字符串字面量是用____括起来的。
答案:""3. 使用____运算符可以将一个变量的值赋给另一个变量。
答案:=4. 在C语言中,使用____函数可以计算两个数的和。
2018年国家计算机二级C语言笔试真题及答案解析72018年国家计算机二级C语言笔试真题及答案解析1.以下选项中不符合良好程序设计风格的是什么?A)源程序应该文档化B)数据说明的顺序应该规范化C)避免滥用goto语句D)模块设计应该保证高耦合、高内聚2.从工程管理角度,软件设计一般分为两步完成,它们是什么?A)概要设计与详细设计B)数据设计与接口设计C)软件结构设计与数据设计D)过程设计与数据设计3.下列选项中不属于软件生命周期开发阶段任务的是什么?A)软件测试B)概要设计C)软件维护D)详细设计4.在数据库系统中,用户所见的数据模式是什么?A)概念模式B)外模式C)内模式D)物理模式5.数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和什么?A)编码设计B)测试阶段C)运行阶段D)物理设计6.设有如下三个关系表,下列操作中正确的是什么?7.下列叙述中正确的是什么?A)一个算法的空间复杂度大,则其时间复杂度也必定大B)一个算法的空间复杂度大,则其时间复杂度必定小C)一个算法的时间复杂度大,则其空间复杂度必定小D)上述三种说法都不对8.在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为什么?A)63B)64C)6D)79.数据库技术的根本目标是要解决数据的什么问题?A)存储问题B)共享问题C)安全问题D)保护问题10.对下列二叉树进行中序遍历的结果是什么?A)ACBDFEGB)ACBDFGEC)ABDCGEFD)FCADBEG11.下列叙述中错误的是什么?A)一个C语言程序只能实现一种算法B)C程序可以由多个程序文件组成C)C程序可以由一个或多个函数组成D)一个C函数可以单独作为一个C程序文件存在12.下列叙述中正确的是什么?A)每个C程序文件中都必须有一个main()函数B)在C程序中main()函数的位置是固定的C)C程序可以由一个或多个函数组成D)在C程序的函数中不能定义另一个函数13) 错误的是B)double int_。
模拟卷11[填空题]下列给定程序中,函数fun的功能是:在形参S所指字符串中寻找与参数C相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则不做任何处理。
例如,若s所指字符串为“baacda”,c中的字符为a,执行后S所指字符串为“baaaacdaa"。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出止确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!试题程序:•Include<stdio.h>void fun(char•s・char c)(int n;/••••••••♦found•••••♦••♦/for11"0;s[i]!•(1J;£)if(S(1]••€)I/•••••••••found•••••••••/n-[21;whi!•(s[i1n]!n;for(j•1>n1;J>i;j—>j*1]•••found•••••••••/»[j*i]-Lil;main()<char s[80]-"baacda",c;print!("Vrthe string:ta'n",#);printf(Fnlnput a character:"I;scarf("lc",4C);fun( ,c);print f("'nThe r»sult is:参考解析:【参考答案】(I)'W(2)0【解题思路】填空L for语句循环条件是判断是否到达字符串结尾,即当前字符是否为填空2:while语句用以确定字符串的长度,所以变量n赋初值为0。
填空3:题目要求如果找到与参数c相同的字符,就在后面插入一个相同的字符,且找到后应该给数组元素赋值,本题目给出参数为c.二、程序修改题2[简答题]下列给定程序中函数fun的功能是:逐个比较p、q所指两个字符串对应位置上的字符,并把ASCII 值大或相等的字符依次存放到c所指的数组中,形成一个新的字符串.例如,若主函数中a字符串为“aBCDeFgH",b字符串为"Abed",则c中的字符串应为“aBcdeFgH”。
2018年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、可行性A、intB、floatC、doubleD、不确定6、在C言语中,char型数据在内存中的储备方式是( )A、补码B、反码C、源码D、ASCII码7、有如下程序,输入数据:M678<cR>后(表示回车),x的值是( )。
includemain(){int x;float y;scanf("%3d%f",&x,&y);A、 B、123 C、45 D、3458、如有以下界说int a,b。
float x,则精确的赋值语句是( )A、a=1,b=2B、b++;C、a=b=5D、b=int(x);9、以下程序的执行结果是( )includeint i=10,j=10;printf("%d,%d\n",++i,j--);A、11,10B、9,10C、11,9D、10,910、巳知字母A的ASCII码是65,以下步伐的履行成效是( )#includemain()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,则下面表达式中值为是( )。
2018c语言期末考试题及答案在2018年的C语言期末考试中,学生们面临了一系列旨在评估他们对C语言基础知识和编程技能掌握程度的问题。
考试涵盖了从基础语法到复杂数据结构的广泛主题。
以下是考试题目及其答案的汇总。
1. 题目:写出一个C程序,计算并输出100以内所有奇数的和。
答案:程序首先初始化一个变量用于存储奇数的和,然后使用一个循环结构遍历1到99之间的所有整数,判断每个数是否为奇数,如果是,则将其加到总和中。
最后输出总和。
```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 != 0) {sum += i;}}printf("The sum of all odd numbers from 1 to 100is: %d\n", sum);return 0;}```2. 题目:编写一个C程序,实现字符串的反转。
答案:程序定义了两个指针,一个指向字符串的开始,另一个指向字符串的结束。
通过交换这两个指针指向的字符,逐步向字符串的中心移动,直到两个指针相遇或交叉。
```c#include <stdio.h>#include <string.h>void reverseString(char str[]) {int len = strlen(str);for (int i = 0; i < len / 2; i++) {char temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}int main() {char str[] = "Hello World";reverseString(str);printf("Reversed string: %s\n", str);return 0;}```3. 题目:使用C语言编写一个程序,计算并输出一个整数数组中的最大值和最小值。
C语言复习题1.C语言程序由若干个()构成。
A.过程 B.函数 C.子程序D.标识符2.若k是int型变量,且有下面的程序片段:k=-3;if(k<=0) printf("####");else printf("&&&&");上面程序段的输出结果是()。
A. #### B. &&&&C. ####&&&& D.有语法错误3.下面标识符中,不合法的用户标识符为()。
A.Pad B.a_10 C.CHAR D.a#b4.在C语言程序中,main( )的位置()。
A.必须作为第一个函数 B.必须作为最后一个函数C.可以任意位置 D.必须放在它所调用的函数之后5.,下面正确的C语言表达式是()。
A.sqrt(x)/(2*a) B.sqrt(x)/2*a C.sqr (x)/2aD.sqr(x)/(2*a)6.在C语言中,变量的隐含存储类别是()。
A.auto B.static C.extern D.无存储类别7.变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000。
若要求将a的高4位取反,低4位不变,所要执行的运算是()。
A.a^b B.a|b C.a&b D.a<<48. 以下选项中不属于字符常量的是()。
A.′C′; B.′\072′; C.′\xCC′; D."C";9.以下能正确定义一维数组的选项是()。
A.int a[5]={0,1,2,3,4,5}; B.int a[5]="0123";C.char a[]={′0′,′1′,′2′,′3′,′\0′}; D.char a={′A′,′B′,′C′};10.在C语言中,()既不是保留字,也不是合法的标识符。
大一c语言考试题及答案2018一、选择题(每题2分,共20分)1. C语言中,用于定义变量的关键字是:A. varB. defineC. intD. let答案:C2. 下列哪个选项是C语言中的合法标识符?A. 2variableB. _variableC. variable!D. variable$答案:B3. 在C语言中,用于定义一个整型数组的语句是:A. int array[10];B. int [10] array;C. int array=10;D. int array;答案:A4. 下列哪个选项是C语言中的条件语句?A. ifB. switchC. forD. while答案:A5. 在C语言中,用于定义一个函数的关键字是:A. functionB. defC. defineD. void答案:D6. C语言中,用于循环结构的关键字是:A. loopB. repeatC. forD. do答案:C7. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. andD. or答案:A8. 在C语言中,用于定义一个指针的语句是:A. int *p;B. int p*;C. int *p=0;D. int p=0;答案:A9. C语言中,用于输入输出的库函数是:A. math.hB. stdio.hC. string.hD. time.h答案:B10. 下列哪个选项是C语言中的文件操作函数?A. printf()B. scanf()C. fopen()D. fclose()答案:C二、填空题(每题2分,共20分)1. 在C语言中,____是用于声明一个字符型变量的关键字。
答案:char2. 定义一个名为“sum”的整型变量,语句为____。
答案:int sum;3. 用于计算两个整数之和的运算符是____。
答案:+4. 若要定义一个名为“data”的数组,包含10个整型元素,语句为____。
C语言复习题熟读理论教材,理解相关知识,并复习理论教材课后练习题(切记:以理论教材知识、例题和课后练习为主复习)熟读课本例题及知识,完成以下知识点的复习及总结。
一.填空1.一个C语言的执行是从本程序的____开始,到____结束?2.C语言中用户的标识符命名规则是____。
3.在一个c语言程序中,main函数的位置是___。
4.若有代数式p(mne)/(bcd),其中p、m、n、e、b、c、d为变量,则该代数式的C语言表达式为___。
5.char a; int x; float y,m; double z,p;则表达式“a*x*m+z-y*x*p”值的数据类型为___。
6.C语言的常用关键字有___(举例说明,越多越好)。
7.printf函数中用到格式符%ms,其中数字m表示输出的字符串占用m列。
如果字符串长度大于m,则输出时的规则是___。
若如果字符串长度小于m,则输出时的规则是___。
若如果字符串长度等于m,则输出时的规则是___。
当m>0时是左对齐还是右对齐?m<0呢?8已有定义“int x;float y;”且执行“scanf(“%4d%f”,&x,&y);”语句,若从第一列开始输入数据9876543,则x的值为___。
10.能正确表示a≥-100或a≦100的关系表达式是___。
能正确表示a≥-100且a≦100的关系表达式是___。
11.判断逻辑值为“真”的判断方法是___。
逻辑值为“假”的判断方法是___。
12.已知“int x=100,y=200,z=300”,则执行if(x>y)z=x;x=y;y=z;语句后,x、y、z的值是___。
13.若m和n均为int型变量,则以下for语句循环执行的次数___及输出结果是___。
for(n=8,m=8;m!=8;m++,++n) printf(“Welcome you!\n”);14.若n为int型变量,则循环语句“for(n=0;n<100;n++)”控制循环体执行___次。
15.在循环语句循环体中执行continue语句,其作用是___,break的作用是__;在swich() Case语句中break语句作用是__。
16.关于函数的参数,实参可以是__,形参可以是__,A.表达式;B.变量c.常量D.默认值17.C语言的编译系统对宏命令的处理是在什么时间进行__18.在C语言中,函数返回值的类型最终取决于__19.定义二维整型数组b时,该数组行号和列号是否可以为变量?20.对一维数组和二维数组定义及初始化的方法进行总结,并举例说明__21.若有以下语句,char a[]=”abcdefgh”; char b[]={‘a’,’b’,’c’,’d,’e,’f’,’g’,’h’};则a和b数组长度分别为__和__22.设有定义“int n1=0,n2,*p=&n2,*q=&n1;”,以下赋值语句中与“n2=n1;”语句等价的是另外一种表示语句为__23.如有语句“int q=100,*p=&q;”,下面均代表地址的一组选项是________________A. q,p,*&qB. &*q,&q,*pC. *&p, p,&qD. float *q,&*p ,p24.若有说明语句“int m, a[10][10];”,则不能将a[1][1]的值赋给变量m的语句是________________A. m=*(*(a+1)+1);B. m=a[1][1]C. m=*(*(a+1))D. m=*(a[1])+1)25.下面程序的运行结果是________________char str[]=”ABCDEFGGH”,*p=str; printf(“%d\n”,*(p+3));26.C语言结构体类型变量在程序执行期间驻留在内存中的包括________________27.以下关于结构体与共用体的共同点和区别是________________,他们如何分配空间的?28.已有定义“int a,b,c;”,且a=b=c=20,执行if(a++||b++) c++;语句后,a、b、c的值是分别是________________、______________、________________。
已有定义“int a,b,c;”,且a=b=c=20,执行if(a++&&b++) c++;语句后,a、b、c的值是分别是________________、______________、________________29. 在一个源文件中定义的全局变量和局部变量的作用域为________________和________________。
30. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是什么?如果实参是地址值呢?不同的是什么?31.有以下程序, 结果为_______________。
void main( ){ int a[5]={1, 2, 3, 4, 5};int*pa=&a[1];printf(“%d”, pa[1]);}32.下面函数调用语句含有实参的个数为_______________。
y = fun(a, b, c, min(d ,e),max(a,b));33.以下程序的输出结果是_______________。
long fib(int n){ if(n>2)return(fib(n-1)+fib(n-2)); elsereturn (2);}void main( ){printf("%ld\n", fib(5)); }34.若有以下语句int a,*p,**p; a=808;p=&a;pp=&p;则**PP的值是_______________。
35. 设有如下定义:int *p( ); int a[10], *q[10];q[i]=&a[i]则p表示的意义是_______________,*q 的表示的含义是_______________,其值是_______________。
38.若有#define MU(x,y) x*y , 则表达式24/MU(1+2,2)的值是_______________。
39.若有int a=1; 则执行完循环语句while( a++<100 );后a的值为_______________。
40.以下所列的C语言常量中,错误的是_______________。
A.0xFF B.2.8e0.2 C.25.3 D.'B'41.所有的字符串都是以_______________字符结束的。
42假定double类型变量占用8个字节,且有定义:double x[10]={1,2,3};,则数组x在内存中所占字节数是_______________43判断char型变量ch是否为小写字母的正确表达式是_______________44. 以下语句正确的有_______________,错误的有_______________A char a='P',b='M';B float a=b=101.0;C int m=101, *n=&m;D double *a, b=&a;45.以下4个选项中,不能看做一条语句的是_______________A.a-=23; B.a=8,b=12.5,c=13.68;B.i f(a<15)p++; D.if(b!=5)x=2; y=6;46.关于if后一对圆括号中的表达式,可以是哪种类型的表达式_______________47.以下有关变量使用范围不正确的说法是_______________。
A 在不同函数中可以使用同名的变量B 形式参数是局部变量C 在函数内定义的变量只在本函数内有效D 全局变量可以在所有函数中使用48.若有说明语句:int a,b,*d=&b;,则能正确从键盘读入2个整数分别赋给变量a、b的语句是_______________。
A.scanf("%d%d", &a,d); B.scanf("%d%d", &a,&d);C.s canf("%d%d" ,a,d); D.scanf("%d%d", a,*d); 49.已知int p=20; 则执行if(p<=0)if(p!=0) printf(“AAAAA”);else printf(“BBBBB”);else printf(“CCCCC”);语句后,输出的结果是_______________。
50.要使字符数组str存放一个字符串"Goodbye",正确的定义语句是_______________。
51.若用二维数组名作为函数调用的实参,传递给形参的值是_______________。
52.若有int x=20,y=8,z;,则执行语句z=0.7+x/y后z的值为_______________。
53.设有以下语句:struct SS{int no;char name[10];}PERSON;则下面叙述中错误的是_______________。
A struct是结构体类型的关键字B struct SS是结构体类型C PERSON是结构体类型名D name是结构体成员名54.已知:char ch='m';则下列表达式的值是_______________。
ch = (ch>='a'&&ch<='z') ? (ch-32) : ch;55.下面程序的运行结果是_______________。
char c[8]={'a','\0,’b','\0','c','\0'};printf("%s",c);56.以下程序的输出结果是_______________。
main(){ char st[20]= "10987654321\n\t\n\\\t\\";printf("%d \n",strlen(st)); }57.有如下程序, 该程序的输出结果是_______________。
main( ){ float x=2.0, y;if( x<0.0 ) y=0.0;else if( x<10.0 ) y=1.0/x+1/4;else y=10.0;printf( "%f\n", y); }58.以下程序段的输出结果是_______________。