C期末考试题及答案
- 格式:docx
- 大小:13.75 KB
- 文档页数:13
c语言期末考试题库及详解答案C语言期末考试题库及详解答案一、选择题1. 下列哪个选项是C语言中正确的整型常量?A. 0.1234B. 0x12ABC. 0b1010D. 1e10答案:B2. C语言中,以下哪个关键字用于定义变量的存储类别?A. staticB. constC. typedefD. volatile答案:A3. 在C语言中,以下哪个运算符用于求两个数的余数?A. /B. %C.D. ++答案:B4. 下列哪个选项是C语言中正确的字符常量?A. 'A'B. "A"C. AD. 65答案:A5. 在C语言中,以下哪个函数用于计算两个数的最大值?A. max()B. min()C. pow()D. sqrt()答案:A二、填空题6. C语言中,用于定义数组的关键字是______。
答案:int7. C语言中,用于输入输出的库函数分别是______和______。
答案:scanf(); printf()8. C语言中,若要定义一个指针变量,需要使用关键字______。
答案:int*9. C语言中,用于定义函数的关键字是______。
答案:void 或其他数据类型10. C语言中,若要实现字符串的复制,可以使用库函数______。
答案:strcpy()三、简答题11. 简述C语言中结构体的定义方式。
答案:在C语言中,结构体是一种用户自定义的数据类型,它允许将多个不同类型的数据项组合成一个单一的类型。
结构体的定义方式如下:struct 结构体名 {数据类型成员名1;数据类型成员名2;...};12. 解释C语言中的递归函数。
答案:递归函数是一种函数自己调用自己的特殊函数。
递归函数通常用于解决可以被分解为相似子问题的问题。
递归函数需要有一个明确的终止条件,以防止无限递归。
四、编程题13. 编写一个C语言程序,实现求一个整数的阶乘。
答案:```c#include <stdio.h>long factorial(int n) {if (n <= 1) return 1;else return n * factorial(n - 1);}int main() {int num;printf("Enter a number: ");scanf("%d", &num);printf("Factorial of %d = %ld", num, factorial(num)); return 0;}```14. 编写一个C语言程序,实现字符串的反转。
C期末考试复习题(答案)C语言复习题一、单项选择题1、C语言源程序文件经过C编译程序编译连接之后生成一个后缀为( C )的文件。
A).c B).obj C).exe D).bas2、)完成C源文件编辑后、到生成执行文件,C语言处理系统必须执行的步骤依次为( B )A)连接、编译B)编译、连接 C)连接、运行D)运行3、关于C语言的叙述中,不正确的是(D)A)C程序可由一个或多个函数组成B)C程序必须包含一个main ()函数C)C程序的基本组成单位是函数D)注释说明只能位于一条语句的后面4、一个C程序的执行是从(A )。
A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序的main函数开始,到本程序文件的最后一个函数结束D) 本程序文件的第一个函数开始,到本程序main函数结束5、以下正确的叙述是(C )A) 在C语言中,main函数必须位于文件的开头B) C语言每行中只能写一条语句C) C语言本身没有输入、输出语句D) 对一个C语言进行编译预处理时,可检查宏定义的语法错误6、下列选项中,不能用作标识符的是( D)。
A) _1234_ B) _1_2 C) int_2_ D) 2_int_7、常数的书写格式决定了常数的类型和值,0x1011是( C )A)8进制整型常量B)字符常量 C)16进制整型常数D)2进制整型常数8、以下4组用户定义标识符中,全部合法的一组是( A )A)_total clu_1 sum B)if -max turbC)txt REAL 3COM D)int k_2 _0019、_( D )是合法的用户自定义标识符。
A) b-b B)float C)123a D) _isw10、以下选项中不正确的整型常量是( C )。
A) 12L B) -10 C) 1,900 D) 123U11、表达式( C )的值是0。
期末c语言考试题库及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项是合法的C语言变量名?A. 2nd_variableB. _variableC. variable-nameD. variable$name答案:C3. 在C语言中,以下哪个函数用于将字符串转换为浮点数?A. atoiB. atofC. itoaD. sprintf答案:B4. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. ==D. =答案:A5. C语言中,以下哪个关键字用于定义一个函数?A. classB. functionC. intD. void答案:C6. 在C语言中,以下哪个选项表示“不等于”?A. ==B. !=C. =D. <=答案:B7. 下列哪个选项是C语言中的循环结构?A. ifB. forC. switchD. case答案:B8. 在C语言中,以下哪个函数用于计算字符串的长度?A. strlenB. strcpyC. strcatD. strcmp答案:A9. C语言中,以下哪个关键字用于定义一个指针?A. *B. &C. %D. #答案:A10. 下列哪个选项是C语言中的数组?A. int a[10];B. int *a;C. int a=10;D. int a;答案:A二、填空题(每题2分,共10分)1. 在C语言中,用于定义一个字符常量的数据类型是______。
答案:char2. 在C语言中,用于定义一个整型变量的数据类型是______。
答案:int3. 在C语言中,用于定义一个浮点型变量的数据类型是______。
答案:float4. 在C语言中,用于定义一个双精度浮点型变量的数据类型是______。
答案:double5. 在C语言中,用于定义一个布尔型变量的数据类型是______。
c语言期末考试题库大题及详解答案C语言期末考试题库大题及详解答案一、简答题1. 请简述C语言的基本数据类型及其特点。
答案:C语言的基本数据类型包括整型(int)、浮点型(float和double)、字符型(char)和枚举型(enum)。
整型用于存储整数,浮点型用于存储小数,字符型用于存储单个字符,枚举型用于定义一组命名的常量。
每种数据类型都有其特定的取值范围和占用内存大小。
2. 请解释C语言中的数组和指针的区别。
答案:数组是一种数据结构,用于存储固定数量的相同类型元素,可以通过下标访问元素。
指针是一个变量,它存储另一个变量的内存地址。
数组名可以作为指向数组第一个元素的指针使用,但数组本身是一个固定大小的内存块,而指针可以被赋值为不同的地址,具有动态性。
二、编程题1. 编写一个C语言程序,实现输入三个整数,找出其中的最大值并输出。
答案:```c#include <stdio.h>int main() {int num1, num2, num3, max;printf("请输入三个整数:");scanf("%d %d %d", &num1, &num2, &num3);max = (num1 > num2) ? ((num1 > num3) ? num1 : num3) : ((num2 > num3) ? num2 : num3);printf("最大值是:%d\n", max);return 0;}```2. 编写一个C语言程序,实现字符串的反转。
答案:```c#include <stdio.h>#include <string.h>int main() {char str[100];printf("请输入一个字符串:");fgets(str, sizeof(str), stdin); // 使用fgets以包含空格int len = strlen(str) - 1; // 减去换行符长度for (int i = len; i >= 0; --i) {printf("%c", str[i]);}printf("\n");return 0;}```三、综合题1. 请编写一个C语言程序,实现一个简单的计算器,能够进行加、减、乘、除四种基本运算。
C语言程序设计期末考试试题含答案一、选择题(每题 3 分,共 30 分)1、以下选项中,不是 C 语言关键字的是()A intB floatC charD string答案:D解释:string 不是 C 语言的关键字,C 语言中表示字符串通常使用字符数组。
2、以下能正确表示八进制整数的是()A 018B 0x18C 0o18D 18答案:C解释:在 C 语言中,八进制整数以 0 开头,数字取值范围 0 7,所以 0o18 能正确表示八进制整数。
3、若有定义:int a = 5, b = 2; 则表达式 a / b 的值是()A 25B 2C 20D 3答案:B解释:在 C 语言中,两个整数相除,结果为整数,舍去小数部分,所以 5 / 2 的结果是 2 。
4、以下程序段的输出结果是()int x = 10;printf("%d\n",++x);A 10B 11C 9D 12答案:B解释:++x 是先将 x 的值增加 1,然后再使用 x 的值,所以输出11 。
5、若有定义:int a5 ={1, 2, 3, 4, 5};则 a2的值是()A 2B 3C 4D 5答案:B解释:数组下标从 0 开始,所以 a2的值是 3 。
6、以下函数声明中,正确的是()A void fun(int a, b);B void fun(int a, int b);C void fun(int a; int b);D void fun(int, int);答案:B解释:函数参数列表中,每个参数都需要明确指定其类型,所以 B 选项正确。
7、若有定义:char str ="hello";则 sizeof(str)的值是()A 5B 6C 20D 不确定答案:B解释:str 数组不仅包含字符'h','e','l','l','o',还包含一个字符串结束符'\0',所以 sizeof(str)的值是 6 。
1. 一个C程序的组成部分可以是().A)一个主函数和一至若干个其他函数B)一至若干个主函数C)一个主程序和一至若干个其他函数D)一个主程序和一至若干个子程序2. 一个C程序的执行是从()。
(A)本程序的main函数开始,到main函数结束(B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束(C)本程序的main函数开始,到本程序文件的最后一个函数结束(D)本程序文件的第一个函数开始,到本程序main函数结束3. C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符()。
A)必须为字母B)必须为下划线C)必须为字母或下划线D)可以是字母、数字和下划线中任一种字符4. 设有定义:int m=1,n=—1;则执行语句printf(”%d\n",(m-—&++n);后的输出结果是()。
A)–1 B)0 C) 1 D) 25。
表达式11&10的结果用二进制表示为()。
A)11B)3C)1D)106。
设有语句int a=3;则执行语句a+=a—=a*a后,变量a的值是().(A)3(B)0(C)9(D)-127. 在下列选项中,不的赋值语句是()。
A)t/=5;B)n1=(n2=(n3=0));C)k=i==j;D)a=b+c=1;8. 下列()表达式不满足:当x的值为偶数时值为”真”,为奇数时值”假"。
A)X%2==0B)!x%2!=0C)(x/2*2-x)==0D)!(x%2)9。
若有定义:int a=8, b= 5, c;执行语句c=a/b+0.4 后c的值为()A) 1.4 B)1 C)2。
0 D)210. 假设a=3,b=4,c=5,则逻辑表达式:!(a+b)+c—1&&b+c/2的值是().A)true B)false C)0D) 111。
若int a=3,b=4;则执行c=a++>2||b-->=4之后,b变量的值为()。
A)3B)0C)4D)212。
(完整版)c语言期末考试题及其答案挑选题(7分,每小题0.5分)1.C语言源程序的基本单位是()。
A 过程B 函数C 子程序D 标识符2.下列程序的输出结果是()。
main( ){ int a=7,b=5;printf("%d\n",b=b/a);}A 5B 1C 0 D不确定值3.假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是()。
A 7B 8C 9D 24.设a为int型变量,执行下列赋值语句后,a的取值分离是()。
a=125.534; a=(int)125.521%4; a=5nB ++p->nC p->n++D (*p).n++写出下列程序的运行结果(10分,每小题2分)1.float average (float array[10]){ int i;float aver,sum=array[0];for (i=1;i=20) break;if(b%3==1){b+=3; continue; }b-=5;}printf(“a=%d\tb=%d\n”,a,b);}4.main(){ printf(“main( ) :%d\n”,fact(5)); fact(-5);}fact(int value){ int f;if(valuemax)max=array[i][j];(2) ;}main( ){ int a[3][4], i,j;for(i=0;ia[k]) k=j;if(k!=i){ t=a[k]; a[k]=a[i]; a[i]=t;}}printf("The sorted numbers:\n"); for(i=1;i<11;i++) printf("%d ",a[i]); }答案一挑选题(7分,每小题0.5分)1. B2. C3. B4. B5. C6. A7. B8. A9. A 10. C11. A 12. A 13. B 14. D二推断对错,对的划“√”,错的划“×”(5分,每小题0.5分)1.×2.×3.√4.√5.×6.×7.×8.×9.√10.√四阅读下列程序,在处填入适当内容,使程序完整(8分,每个空1分)1.(1)int array[3][4](int array[][4]) (2)return(max)(3)scanf(“%d”,&a[i][j])2.(4)*p (5)px=&x(py=&y) (6)py=&y(px=&x)3.(7) (8)文档内容到此结束,欢迎大家下载、修改、丰富并分享给更多有需要的人。
一、单项选择题(6小题,每小题3分,共18分)1、在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是A、externB、registerC、autoD、static2、下面4个选项中,是合法转义字符的选项是( )。
A、'\"B、'\'C、'\018'D、'\\0''\\' '\017' '\f' '\101''\n' '\''' 'xab' 'x1f'3、下面4个选项中,是正确的八进制数或十六进制数的选项是( )。
A、–10B、0abcC、0010D、0a120x8f –017 –0x11 ––011 0xc 0xf1 –0xa4、以下在任何情况下计算平方数时都不会引起二义性的宏定义是( )A、# define POWER(x) □□x * xB、# define POWER(x) □□(x) * (x)C、# define POWER(x) □□(x * x)D、# define POWER(x) □□((x) * (x))5、以下程序段( )x= –1;do{ x=x*x;} while (!x);A、是死循环B、循环执行二次C、循环执行一次D、有语法错误6、下面程序的运行结果是( )# include <stdio.h>int main( ){ int i,j,x=0;for (i=0;i<2;i++){ x++;for(j=0;j<=3;j++){ if (j%2) continue;x++;}x++;}printf ("x= %d \n",x);return 0;}A、x=4B、x=8C、x=6D、x=12二、填空题(7小题,每小题3分,共22分)1、下面程序段的运行结果是( )。
c期末考试题及答案一、选择题(每题2分,共20分)1. 下列哪项不是C语言的基本数据类型?A. intB. floatC. stringD. char答案:C2. 在C语言中,用于定义一个结构体的关键字是?A. structB. unionC. enumD. typedef答案:A3. 下列哪个选项不是C语言中的循环语句?A. forB. whileC. do-whileD. switch答案:D4. 在C语言中,以下哪个运算符用于取地址?A. *B. &C. %D. #答案:B5. C语言中,用于定义一个函数的关键字是?A. functionB. defineC. defD. void答案:D6. 下列哪个选项是C语言中的文件操作函数?A. printfB. scanfC. fopenD. fclose答案:C7. 在C语言中,哪个关键字用于声明一个全局变量?A. externB. staticC. autoD. register答案:A8. 下列哪个选项不是C语言中的逻辑运算符?A. &&B. ||C. =D. !答案:C9. C语言中,用于数组定义的关键字是?A. arrayB. listC. vectorD. []答案:D10. 在C语言中,哪个函数用于输出字符串?A. printfB. scanfC. putsD. getchar答案:C二、填空题(每题3分,共15分)1. 在C语言中,______关键字用于定义一个指针。
答案:*2. C语言中,______函数用于计算字符串的长度。
答案:strlen3. ______关键字用于在C语言中定义一个二维数组。
答案:[ ][ ]4. C语言中,______函数用于将字符串从源字符串复制到目标字符串。
答案:strcpy5. 在C语言中,______运算符用于比较两个值是否相等。
答案:==三、简答题(每题5分,共10分)1. 简述C语言中函数的调用过程。
c语言期末考试题及答案及解析一、选择题(每题2分,共20分)1. 下列哪个是C语言的标准输入输出库函数?A. printf()B. scanf()C. getchar()D. All of the above答案:D解析:在C语言中,标准输入输出库函数包括printf()、scanf()和getchar()等,它们都用于输入输出操作。
2. 以下哪个不是C语言的关键字?A. intB. floatC. doubleD. string答案:D解析:int、float和double都是C语言的基本数据类型关键字,而string不是C语言的关键字,它是C++中的一个类。
3. 以下哪个语句可以正确地声明一个整型数组?A. int arr[10];B. int [10] arr;C. Both A and BD. None of the above答案:C解析:在C语言中,数组的声明可以是int arr[10];也可以是int [10] arr;,两者都是正确的声明方式。
4. 下列哪个是正确的C语言函数定义?A. int myFunction(int x, int y) { /* ... */ }B. void myFunction(int x, int y) { /* ... */ }C. Both A and BD. None of the above答案:C解析:在C语言中,函数定义可以返回int类型,也可以是void类型,表示没有返回值。
5. 以下哪个是正确的C语言循环结构?A. forB. whileC. do-whileD. All of the above答案:D解析:C语言支持多种循环结构,包括for循环、while循环和do-while循环。
6. 以下哪个是C语言的位运算符?A. &&B. ||C. &D. All of the above答案:C解析:&是C语言的位运算符之一,用于按位与操作。
一、单项选择题(请将答案填在下面表格中20×1)1.以下叙述中正确的是()。
A.C语言比其他语言高级B.C语言可以不用编译就能被计算机识别执行C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D.C语言出现的最晚,具有其他语言的一切优点2.以下叙述中正确的是()。
A.构成C程序的基本单位是函数B.可在一个函数中定义另一个函数C.main函数必须放在其他函数之前D.所有被调用的函数一定要在调用之前进行定义3.以下叙述中正确的是()。
A.C语言程序总是从第一个函数开始执行B.在C语言程序中,要调用函数必须在main()函数中定义C.C语言程序总是从main()函数开始执行D.C语言程序中的main()函数必须放在程序的开始部分4.以下有关for循环的正确描述是()。
A.for循环只能用于循环次数已经确定的情况B.for循环是先执行循环体语句,后判断表达式C.在for循环中,不能用break语句跳出循环体D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来5.对下面程序段的描述,正确的是()。
x=-1;do{x=x*x;}while(!x);A.是死循环B.循环执行一次C.循环执行两次D.有语法错误6.以下有关C语言数组说法正确的是()。
A.数组元素的数据类型可以不一致B.数组元素的个数可以不确定,允许随机变动C.可以使用动态内存分配技术,定义元素个数可变的数组D.定义一个数组后,就确定了它所容纳的具有相同数据类型元素的个数7.以下数组定义正确的是()。
A.inta(20);B.inta[]={1,2,5,7,0};C.inta[n];D.inta[2]={1,2,4,6};8.在定义intb[2][10];之后,对b数组元素引用正确的是()。
A.b[0][9]B.b[2,3]C.b(1)(5)D.b[10][0]9.如有定义语句intc[]={1,5,3,4,6,7,0};,则数组c有()个元素。
c语言期末考试试题及答案一、选择题1. C语言中,用于表示整数常量的数据类型是()。
A. floatB. doubleC. intD. char答案:C2. 若有定义:int a = 5; float b =3.14; 则下列表达式中错误的是()。
A. a + bB. a * bC. a / bD. b % a答案:D3. C语言中,用于输入的函数是()。
A. printf()B. scanf()C. puts()D. gets()答案:B4. 下列关于数组的说法,正确的是()。
A. 数组大小是动态的,可以在运行时改变B. 数组一旦定义,其大小不可改变C. 数组可以存储不同类型的数据D. 数组的索引必须从0开始答案:B5. 在C语言中,一个合法的指针变量是()。
A. int *pB. *int pC. float *pD. p int答案:A二、填空题1. 在C语言中,使用关键字________定义一个全局变量。
答案:extern2. 若有定义:int x = 10; 则表达式 `x + (x++) * 2` 的值是________。
答案:303. 在C语言中,使用________可以将字符串常量输出到控制台。
答案:printf4. 一个整型变量可以存储的最大值(假设为int max)与最小值(假设为int min)的范围是________ < int max < int min。
答案:-32768, 32767(假设是16位整型)5. 函数________用于计算一个字符串的长度。
答案:strlen三、判断题1. C语言中的注释可以使用“//”或“/* */”两种形式。
()答案:正确2. 在C语言中,所有的函数都有返回值。
()答案:错误3. 指针变量的地址可以通过使用&运算符获得。
()答案:正确4. 在C语言中,long int和int类型的大小是相同的。
()答案:错误5. 使用switch语句时,case标签后的值必须是整型或字符型。
《编程语言基础--C语言》B卷本卷满分100分,90分钟完卷。
得分:一、单项选择题。
本题共10小题,每题3分,选对得分,选错不得分。
1、函数体一般包括两部分,一部分是声明部分;另一部分是()。
A、代码部分B、参数部分C、执行部分D、循环部分2、变量名的长度不能超过()个字符。
A、5B、6C、7D、83、下列变量名不合法的是()。
A、 ClassB、 _sumC、 li_mingD、 M、D、John4、y%= 3等价于()。
A.y=y*3% B、 y=y/3% C、 y=y%3 D、 y%3=35、a=(b=8)/(c=2), 则表达式的值等于( )。
A、1B、2C、3D、46、strlwr(string)函数的作用是( )。
A.将函数的字符串顺序显示B、将函数的字符串逆序显示C、将字符串中大写字母转换成小写字母D、将字符串中大小写字母转换成小写字母7、函数参数反映的是主调函数和被调用函数的()关系。
A、嵌套关系B、主从关系C、数据传递关系D、优先关系8、递归调用是指函数调用过程中出现了()接地调用了该函数本身的情况。
A、多个调用B、直接调用C、间接调用D、直接或间接9、指向指针的定义格式为()。
A、int **p;B、int (*p)();C、 char *ps;D、int *p;10、creat()的作用是()。
A.建立一个原来不存在的文件B、在原来文件夹内建立一个不存在的文件C、打开已有文件D、关闭已有文件一、单项选择题。
本题共10小题,每题3分,选对得分,选错不得分。
二、填空题。
本题共5小题,每题4分。
1、C语言程序中只能有个主函数。
2、二维数组的一般形式为。
3、转义字符\t的含义是。
4、仅有一个分号“;”作为语句结束符,表示_______________。
5、int a[10]={1,2,3,4,5,6,7,8,9};语句执行后,a[2]=_______;a[8]=_________。
一、填空题(每空0.5分,共30分)1、世界坐标系简称__WCS_用户自定义坐标系简称__UCS_.2、工作空间(de)切换:“工具”/“工作空间”或“工作空间”工具栏 .3、工具栏包括30种,系统默认(de)显示工具栏包括:“标准”、“属性”、“绘图”和“修改”等工具栏.4、多线(de)对正方式有_上(T)_、_无(Z)_和_下(B)_.5、文字标注包括标注单行文字和标注多行文字.6、渲染环境是指在渲染对象时进行(de) 雾化和深度设置.7、漫游和飞行用户可以通过键盘和鼠标来控制视图显示,并创建导航动画.8、编辑实体(de)边(de)种类:压印边、复制边、着色边 .9、动态块是通过自定义夹点或自定义特性定义(de)块.在图形中使用动态块,用户可以随时对组成块(de)对象进行修改 .10、三维实体是具有体积、质量、重心、回转半径、惯性距等特征(de)三维对象.11、在AutoCAD 2007中,用户可以创建(de)光源有电光源、聚光灯光源和平行光光源 .12、相切、相切、半径法是指:通过指定圆(de)两个切点和半径来绘制圆 .13、绘制圆环(de)步骤中,先输入圆环(de) 内径和外径 ,后确定圆环(de) 中心点 .14、计算机辅助设计是:工程技术人员在CAD系统(de)辅助下,根据产品(de)设计程序进行设计(de)一项新技术 .15、菜单栏包括11种,每一种菜单中都含有四种显示情况:命令后跟右三角、后跟省略号、后跟快捷键或功能键或命令呈灰色 .16、要对图形对象进行编辑就必须选中图形对象,在AutoCAD 2007中,选择对象(de)方法很多,常用(de)有_直接拾取_、矩形框选择_、_不规则区域选择_和快速选择.17、在设置显示精度时,如果设置(de)精度越高,即分辨率就越高 ,计算机计算(de)时间也越长,显示图形(de)速度也就越慢 .18、三维基本实体(de)种类包括:多段体、长方体、楔体、圆柱体、圆锥体、球体、圆环体、棱锥面.19、布尔运算中只留重复(de)一部分(de)运算是交集运算 .从一个图形中去掉与另一个图形重复部分(de)运算是差集运算 .20、缩放对象时,如果比例因子在0~1之间,则缩小对象;如果比例因子大于1,则放大对象.21、使用拉伸命令可以将二维对象沿着Z轴或者某个方向拉伸生成实体.22、插入块(de)方法包括:直接插入块、以拖动方式插入块、和多重插入块 .23、复制面是指为三维实体(de)面创建副本 .24、绘制圆形(de)方法有圆心、直径法;_圆心、半径法_、_圆心、直径法_、_两点法_、_三点法_、相切、相切、半径法和和_相切、相切、相切法_.25、Auto CAD允许用户把图形(de)不同部分按不同(de)窗口同时显示在屏幕上,此时不同(de)图形窗口称为视口 .26、贴图是指在渲染对象时将材质映射到对象上.在AutoCAD 2007中,贴图(de)方式有4种,分别为:平面贴图、长方体贴图、柱面体贴图和球面贴图.1、要将图形中(de)所有尺寸都为原有尺寸(de) 2 倍,应设定以下()A、文字高度B、使用全局比例C、测量单位比例D、换算单位2、一个完整(de)尺寸由几部分组成()A、尺寸线、文本、箭头B、尺寸线、尺寸界线、文本、标记C、基线、尺寸界线、文本、箭头D、尺寸线、尺寸界线、文本、箭头3、在命令行中输入“Z”后,再输入选项“A” ,作用是()A.在图形窗口显示所有(de)图形对象和绘图界限范围.B.恢复前一个视图C.显示所有在绘图界限范围内(de)图形对象 D.显示绘图界限范围4、下面(de)各选项都可以绘制圆弧, 除了()项不行A、起点、圆心、终点 B.起点、圆心、方向 C. 圆心、起点、长度 D.起点、终点、半径5、对于未闭合(de)对象, ()进行图案填充A、可以B、不可以6、修剪命令(Trim)可以修剪多余对象,但下面(de) ()不能被修剪.A、圆弧、圆、椭圆弧B.直线 C、多线 D.射线、构造线和样条曲线7、AutoCAD 默认(de)单位是()A、厘米B、分米C、米D、毫米8、AutoCAD 默认扩展名是()A、 dwtB、 dwgC、 bakD、 dxf9、默认情况下,命令提示行显示为几行()A、3B、5C、2D、810、在CAD 中,以下哪个命令可用来绘制横平竖直(de)直线()A、栅格B、捕捉 C 、正交 D、对象捕捉11、画多段线时,用()选项可以改变线宽A、宽度 B.方向 C.半径 D.长度12、想要标注倾斜直线(de)实际长度, 应该选用()A、线性标注B、对齐标注C、快速标注D、基线标注13、轨迹线(de)英文命令和样条曲线(de)英文命令依次分别为()A. trace和slodB. spline和traceC. arc和splineD. trace 和 spline14、在AutoCAD 2007中,可以对实体(de)面执行()等操作.A.拉伸面 B.旋转面C.偏移面 D.倾斜面15、布尔运算中(de)三种运算为交集、并集和差集,以下选项哪个为并集(de)英文命令()A. unionB. IntersectC. subtractD. unite16、渲染对象中不包括().A.设置光源B.设置材质C.设置贴图D.设置颜色17、在尺寸标注种类中,()在标注之前需要指定一个线性标注.A.快速标注B.基线标注C.坐标标注D.形位公差标注18、使用三维对齐命令时需要指定()个源点和()个目标点(). A.4和3 B.3和3 C.4和4 D.6和319、创建暴风影音视频(de)种类包括()种.A.1 B.2 C.3 D.420、在AutoCAD中,三维空间与二维空间中(de)栅格显示依次分别为(). A.网格、网格点 B.网格点、网格点C.网格点、网格 D.网格、网格三、判断题(每题1分,共10分)1、三维面与三维网格是一样(de). (错)2、命令行(de)作用是提示和显示. (对)3、命令行中(de)信息查看方法:F2或“视图”/“显示”/“文本窗口”(打开“AutoCAD文本窗口”). (对)4、使用直线工具和多段线工具都可以绘制矩形,都是一图元实体(错)5、多线(de)比例用于控制多线(de)线段间距,组成多线(de)平行线(de)个数可以是多个. (对)6、在打开图形文件很大(de)图形时,用户可以单击“打开”按钮右边(de)下三角按钮,在弹出(de)下拉列表中选择“局部打开”命令. (对)7、绘制直线时,如果要绘制两条首尾相连(de)直线,则需点四点才行. (错)8、标题栏只由Auto CAD (de)程序图标、软件名称、当前打开(de)文件名组成(错)9、特殊点一定要在执行绘图命令和编辑命令等后才能捕捉. (对)10、两点法绘制圆是指通过指定两个点,并以两点间(de)距离为半径绘制圆(错)四、快捷键(每空1分,共10分)新建: Ctrl+N/new/qnew 保存: Ctrl+S/save/qsave多重插入块: minsert 偏移: offset 三维旋转: 3drotate 延伸: extend创建块属性:attdef 重生成: regen创建表格: table 编辑文字: ddedit五、简答题(共30分)1、夹点(de)状态包括哪几种夹点(de)编辑模式又有哪几种(5分)夹点(de)状态包括:热态、冷态、温态夹点(de)编辑模式:移动、拉伸、旋转、复制、比例缩放、镜像2、改变对象位置(de)种类包括哪几种(5分)旋转、移动、缩放3、列出六种三维实体种类(5分)多段体、球体、长方体、圆柱体、楔体、圆锥、棱锥面4、选择对象(de)方法有几种各自细分又是那些(5分)直接拾取、矩形框拾取(左拖、右拖)、不规则区域选择(栏选、圈交、圈围)、快速选择5、列出具有复制功能(de)编辑工具.要求:至少四个工具.(5分)镜像、偏移、阵列、复制、旋转时复制6、鸟瞰视图(de)用途是什么作用又是什么(5分)用途:用来在分开(de)窗口上显示图形作用:(1)用鸟瞰视图缩放视图(2)在鸟瞰视图下实时平移和缩放。
一、单项选择题(请将答案填在下面表格中20×1)1. 以下叙述中正确的是()。
A. C语言比其他语言高级B. C语言可以不用编译就能被计算机识别执行C. C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D. C语言出现的最晚,具有其他语言的一切优点2. 以下叙述中正确的是()。
A.构成C程序的基本单位是函数B.可在一个函数中定义另一个函数C. main函数必须放在其他函数之前D.所有被调用的函数一定要在调用之前进行定义3. 以下叙述中正确的是()。
A. C语言程序总是从第一个函数开始执行B.在C语言程序中,要调用函数必须在main()函数中定义C. C语言程序总是从main()函数开始执行D. C语言程序中的main()函数必须放在程序的开始部分4. 以下有关for循环的正确描述是()。
A. for循环只能用于循环次数已经确定的情况B. for循环是先执行循环体语句,后判断表达式C.在for循环中,不能用break语句跳出循环体D. for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来5. 对下面程序段的描述,正确的是()。
x=-1;do{x=x*x;}while(!x);A.是死循环B. 循环执行一次C. 循环执行两次D. 有语法错误6. 以下有关C语言数组说法正确的是()。
A.数组元素的数据类型可以不一致B.数组元素的个数可以不确定,允许随机变动C.可以使用动态内存分配技术,定义元素个数可变的数组D.定义一个数组后,就确定了它所容纳的具有相同数据类型元素的个数7.以下数组定义正确的是()。
A. int a(20);B. int a[ ]={1,2,5,7,0};C. int a[n];D. int a[2]={1,2,4,6};8.在定义int b[2][10];之后,对b数组元素引用正确的是( )。
A. b[0][9]B. b[2,3]C. b(1)(5)D. b[10] [0]9. 如有定义语句int c[ ]={1,5,3,4,6,7,0};,则数组c有()个元素。
选择练习题1、C 语言中最简单的数据类型包括( B )。
A 、整型,实型,逻辑型B 、整型,实型,字符型C 、整型,字符型,逻辑型D 、整型,实型,逻辑型,字符型2、C 语言中,运算对象必须是整型数的运算符是(A )。
A 、%B 、/C 、%和/D 、*3、为表示关系x <y <z ,应使用C 语言表达式( A )。
A 、(x <y )&&(y <z )B 、(x <y)AND (y <z)C 、(x <y <z)D 、(x <y ) &(y <z )4、C 语言程序的基本单位是( C ).A 、程序行B 、语句C 、函数D 、字符5、C 语言的程序一行写不下时,可以( D )。
A 、用逗号换行B 、用分号换行C 、用回车符换行D 、在任意一空格处换行6、下述标识符中,( C )是合法的用户标识符。
A 、A &B B 、void C 、_student D 、ab7、在C 语言中,字符型数据在内存中以( BA 、补码B 、ASCII 码C 、反码D 、原码8、一个程序由若干文件组成,共用同一变量,则此变量的存储类别应该为( B ).A 、autoB 、externC 、staticD 、Register9、以下关于switch 语句和break 语句的描述中,只有(B )是正确的.A 、在switch 语句中必须使用break 语句B 、在switch 语句中,可以根据需要使用或不使用break 语句C 、break 语句只能用于switch 语句中D 、break 语句是switch 语句的一部分10、C 语言规定:调用一个函数时,实参变量和形参变量之间的数据传递是(B )。
A 、地址传递B 、值传递C 、由实参传给形参,并由形参传回给实参D 、由用户指定传递方式11、下述C 语言转义符中( D )是非法的。
A 、’\b’B 、'\037'C 、'\0xf 'D 、’\'’12、为了要计算s=10!(10的阶乘),则以下对s 的定义正确的是( D )。
《C 语言程序设计》期末试卷一、单项选择题(10x2’=20’)1、以下叙述正确的是( )A )C 语言的源程序不必通过编译就可以直接运行。
B )C 语言中的每条可执行语句最终都将被转换成二进制的机器指令。
C )C 语言源程序经编译形成的二进制代码可以直接运行。
D )C 语言中的函数不可以单独进行编译。
2、一个C 语言的源程序中( )A )必须有一个主函数B )可能有多个主函数C )必须有除主函数外其它函数D )可以没有主函数3、以下不能定义为用户标识符的是( )A )scanfB )VoidC )_3comD )int4、若以下选项中的变量已正确定义,则正确的赋值语句是( )A )x1=26.8%3;B )1+2=x2;C )x3=0x12;D )x4=1+2=3;5、设有定义:float a=2,b=4,h=3;以下C 语言表达式中与代数式h b a *)(21 的计算结果不.相符的是( ) A )(a+b)*h/2 B )(1/2)*(a+b)*h C )(a+b)*h*1/2 D )h/2*(a+b)6、C 语言中用于结构化程序设计的3种基本结构是( )A )顺序结构、选择结构、循环结构B )if 、switch 、breakC )for 、while 、do-whileD )if 、for 、continue7.在while (!x )语句中的!x 与下面条件表达式等价的是( )A) x!=0 B) x==1 C) x!=1 D) x==08、有以下程序:#include <stdio.h>void main(){int i=1,j=1,k=2;if( (j++||k++)&&i++ )printf(“%d,%d,%d\n ”,i,j,k);}执行后的输出结果是( )A )1,1,2B )2,2,1C )2,2,2D )2,2,39、有以下程序:#include <stdio.h>void main(){int i,s=0;for(i=1;i<10;i+=2)s+=i+1;printf(“%d\n ”,s);}程序执行后的输出结果是( )A )自然数1~9的累加和B )自然数1~10的累加和C)自然数1~9中奇数之和D)自然数1~10中偶数之和10、有以下函数定义:void fun(int n,double x){……}若以下选项中的变量都已经正确定义并赋值,则对函数fun的正确调用语句是()A)fun(int y,double m);B)k=fun(10,12.5);C)fun(x,n); D)void fun(n,x);二、填空题(10x2’=20’)11、C语言描述“x和y都大于或等于z”的表达式是:。
c语言期末考试试题及答案考试题目一:填空题(共15空)1. C语言是一种_________型的编程语言。
2. 在C语言中,用来表示“或”的运算符是______。
3. 在C语言中,用于定义宏的关键字是______。
4. 函数调用时,参数的传递方式是______传递。
5. 在C语言中,表示真值的关键字是______。
6. 在使用scanf函数读取字符时,可以使用______修饰符。
7. 在C语言中,用于循环控制的关键字是______。
8. C语言中,数据类型的长度由______决定。
9. 在C语言中,用于将浮点数转换为整数的函数是______。
10. C语言中的结构体可以包含不同______类型的成员。
11. 在使用printf函数进行格式化输出时,%d用来输出______类型的数据。
12. 在C语言中,用于断开当前循环并开始下一次循环的关键字是______。
13. 在C语言中,用于定义常量的关键字是______。
14. C语言中,用于定义无符号整型变量的关键字是______。
15. 使用指针变量时,可以通过______操作符获得指针所指向的地址的值。
答案:1. 结构化2. ||3. #define4. 值5. true6. %c7. for8. 编译器9. ceil10. 数据11. 整数12. continue13. const14. unsigned15. *(星号)考试题目二:判断题(共10题)1. C语言是一种面向对象的编程语言。
(×)2. 在C语言中,数组的下标从0开始。
(√)3. C语言中,变量的作用域可以超出其声明的块。
(×)4. 在C语言中,可以通过malloc函数为变量分配动态内存。
(√)5. 在C语言中,switch语句可以用来实现嵌套循环。
(×)6. C语言只支持单继承。
(×)7. 在C语言中,函数可以有多个返回值。
(×)8. C语言中,使用void*类型指针可以指向任意类型的数据。
一、选择填空题(共20小题,每小题2分,共40分)。
1. 关于C++与C语言关系的描述中,(D)是错误的。
语言是C++语言的一个子集语言与C++语言是兼容的++语言对C语言进行了一些改进++语言和C语言都是面向对象的2.按照标识符的要求,(A)符号不能组成标识符。
a.连接符b.下划线c.大小写字母d.数字字符3. 为了避免嵌套的if-else语句的二义性,C语言规定else总是与(C)组成配对关系。
a.缩排位置相同的ifb.在其之前未配对的ifc.在其之前未配对的最近的ifd.同一行上的if4. 在"int a[ ][3]={{1},{3,2},{4,5,6},{0}};"中,a[2][2]的值是(C)。
5. 设"char **s;",以下正确的表达式是(B)。
="computer"; b.*s="computer";c.**s="computer";d.*s='c';6. 对于"int *pa[5];"的描述中,(D)是正确的。
是一个指向数组的指针,所指向的数组是5个int型元素是一个指向某数组中第5个元素的指针,该元素是int型变量[5]表示某个元素的第5个元素的值是一个具有5个元素的指针数组,每个元素是一个int型指针7. 在下列表示引用的方法中,(A)是正确的。
已知:int m=10;&x=m; &y=10;&z; &t=&m;8. 下列for循环的次数为(B)。
for(i=0, x=0; !x&&i<=5; i++)d.无限9. 对于C/C++语言的函数,下列叙述中正确的是(A)。
a.函数的定义不能嵌套,但函数调用可以嵌套b.函数的定义可以嵌套,但函数调用不能嵌套c.函数的定义和调用都不能嵌套d.函数的定义和调用都可以嵌套10. 在一个被调用函数中,关于return语句使用的描述,(D)是错误的。
a.被调用函数中可以不用return语句b.被调用函数中可以使用多个return语句c.被调用函数中,如果有返回值,就一定要有return语句d.被调用函数中,一个return语句可以返回多个值给调用函数11. 在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用( A)。
a.内联函数b.重载函数c.递归调用d.嵌套调用12. 使用fseek函数可以实现的操作是(A)。
a.改变文件指针的当前位置b.文件的顺序读写c.文件的随机读写d.以上都不对13. 下列存储标识符中,(C)的可见性与存在性不一致。
a.外部类b.自动类c.内部静态类d.寄存器类14. 在如下结构定义中,不正确的是(B)。
student{int no;char name[10];float score;};stud[20]{int no;char name[10];float score;};student{int no;char name[10];float score;} stud[20];{int no;char name[10];float score;}stud[100] ;15. 将两个字符串连接起来组成一个字符串时,选用(C)函数。
( ) ( )( ) ( )16. ( D)不是构造函数的特征a.构造函数的函数名与类名相同b.构造函数可以重载c.构造函数可以设置缺省参数d.构造函数必须指定类型说明17. 已知:类A中一个成员函数说明如下:void Set(A&a);其中,A&的含义是(C )。
a.指向类A的指针为ab.将a的地址值赋给变量Set是类A对象的引用,用来作函数Set()的参数d.变量A与a按位与作为函数Set( )的参数18. 已知:print( )函数是一个类的常成员函数,它无返回值,下列表示中,(A)是正确的。
print( ) const; void print( );const print( ); print(const);19. 关于虚函数的描述中,(C)是正确的。
a.虚函数是一个static类型的成员函数b.虚函数是一个非成员函数c.基类中说明了虚函数后,派生类中将其对应的函数可不必说明为虚函数d.派生类的虚函数与基类的虚函数具有不同的参数个数和类型20. 关于new运算符的下列描述中,(D)是错的。
a.它可以用来动态创建对象和对象数组b.使用它创建的对象和对象数组可以使用运算符delete删除c.使用它创建对象时要调用构造函数d.使用它创建对象数组时必须指定初始值三、(6分)分析下面程序的运行结果#include <>class B{public:B(){}B(int i){b=i;}virtual void virfun(){cout<<"B::virfun() called.\n";}private:int b;};class D:public B{public:D(){}D(int i,int j):B(i){d=j;} private:int d;void virfun(){cout<<"D::virfun() called.\n";}};void fun(B *obj){obj->virfun();}void main(){D *pd=new D;fun(pd);}四、(9分)下面的程序可以统计命令行第一个参数中出现的字母个数,请填充下面空白,完成程序。
#include <>#include <>void main(int argc, argv[];){char *str;int count=0;if(argc<2)exit(1);str= ;while(*str)if(isalpha( )) count++;printf("\n字母个数:%d\n",count);}提示:int isalpha(int ch)函数功能是检查ch是否是字母五、(8分)定义一个字符栈类Stack(包括类的实现)。
数据成员包括一个存放字符的数组stck[ ]和一个栈指针tos。
栈数组的尺寸由常量SIZE确定。
栈的基本操作为Push()和Pop()。
六、(10分)完成下面的函数,对有n个元素的数组a,使数组元素按逆序排列。
void inverse(int *a, int n){}七、(12分)下面的函数统计子字符串substr在字符串str中出现的次数,如果substr在str中不出现,则返回值0。
请完成该函数。
int str_count(char *substr, char *str){}二、问答题1、虚析构函数有什么作用?解答要点:对象销毁时,需要调用析构函数。
在多态调用时,是用基类的指针访问派生类的对象。
如果析构函数是非虚函数,则基类指针只能访问基类的析构函数,而不能访问派生类的析构函数,导致派生类对象销毁时,没有调用派生类的析构函数,只是调用了基类的析构函数。
如果把析构函数定义成虚函数,则可克服这个问题。
2、拷贝构造函数在哪几种情况下调用?解答要点:用一个对象初始化另一个对象时当用对象作为函数参数传递时当函数返回对象时3、函数重载与函数覆盖有什么不同,它们与多态有什么关系?解答要点:函数重载是指函数名相同,而函数的参数个数或类型不同;覆盖是指在派生类中成员函数与基类成员函数的函数名、参数个数、类型与返回值均相同;C++中正是通过虚函数的覆盖,实现多态的功能。
4、 C++继承是如何工作的?答:继承使得派生类能够使用基类的公有和保护成员,从而实现代码的复用,派生类可以增加成员,也可以隐藏和覆盖基类的成员。
对于公有继承,基类成员的访问权限在派生类保持不变。
5、类与对象有什么区别?答:类是类型,是对象的抽象,对象是类的具体实例。
一个类可以有多个对象,每个对象都有自己的存储单元,而类不占存储单元。
三、运行结果为: D::virfun() called.四、填空① char * ② argv[1] ③ *str++五、(8分)定义一个字符栈类Stack(包括类的实现)。
数据成员包括一个存放字符的数组stck[ ]和一个栈指针tos。
栈数组的尺寸由常量SIZE确定。
栈的基本操作为Push()和Pop()。
const int SIZE=27;class Stack{public:Stack():tos(0){};void Push(char ch);char Pop();private:char stck[SIZE];int tos;};void Stack::Push(char ch){if(tos==SIZE)cout<<"\nStack is full\n";else{stck[tos]=ch;tos++;}}char Stack::Pop(){if(tos==0){cout<<"\nStack is empty\n";return 0;}tos--;return stck[tos];}六、(10分)完成下面的函数,对有n个元素的数组a,使数组元素按逆序排列。
void inverse(int *a, int n){}int i,*p;p=new int[n];for(i=0;i<=n-1;i++)p[i]=a[i];for(i=0;i<=n-1;i++)a[i]=p[n-i-1];delete []p;七、(12分)下面的函数统计子字符串substr在字符串str中出现的次数,如果substr在str中不出现,则返回值0。
请完成该函数。
int str_count(char *substr, char *str){}int count=0;char *pChar;if(substr==NULL||str==NULL) return count;while(*str!='\0'){pChar=substr;while(*pChar==*str){pChar++;if(*pChar=='\0'){count++;break;}else str++;}.) statementstr++;}.) statement return count;。