【大学C语言期末考试练习题】详解答案及过程讲解 读程序结构体
- 格式:docx
- 大小:25.53 KB
- 文档页数:2
c语言大期末考试题库及详解答案1. 选择题(1) 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A(2) 以下哪个选项是正确的C语言变量声明?A. int a = 10, b = 20;B. int a = 10; b = 20;C. int a = 10; int b = 20;D. int a = 10, b = 20;答案:A2. 填空题(1) 在C语言中,用于定义一个函数的关键字是____。
答案:void(2) 当使用指针变量时,用于获取指针所指向的值的运算符是____。
答案:*3. 简答题(1) 简述C语言中数组和指针的关系。
答案:在C语言中,数组名可以作为指向数组首元素的指针使用。
数组的每个元素可以通过指针偏移量来访问。
(2) 解释C语言中的预处理指令#include的作用。
答案: #include预处理指令用于在编译前将指定的文件包含到当前文件中,通常用于包含标准库或自定义的头文件。
4. 编程题(1) 编写一个C语言程序,计算并输出100以内所有偶数的和。
```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("Sum of even numbers from 1 to 100 is: %d\n", sum);return 0;}```(2) 编写一个C语言函数,实现字符串的反转。
```cvoid reverseString(char* str) {int length = 0;while (str[length] != '\0') {length++;}for (int i = 0; i < length / 2; i++) {char temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}}```5. 论述题(1) 论述C语言中指针的重要性及其应用场景。
c语言大期末考试题库及详解答案一、选择题1. C语言中,以下哪个关键字用于定义一个函数?A. intB. voidC. returnD. function答案:A2. 在C语言中,哪个运算符用于取模?A. /B. %C. *D. -答案:B3. 如果一个变量声明为 `int x;`,那么x的类型是什么?A. 浮点型B. 整型C. 字符型D. 双精度型答案:B4. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. variable!2D. variable-2答案:B5. 在C语言中,以下哪个语句用于结束一个循环?A. continueB. breakC. returnD. exit答案:B二、填空题6. C语言中,一个基本的程序结构包括_____、_____和_____。
答案:预处理指令;函数定义;程序的主体7. 以下代码段的输出结果是_____。
```c#include <stdio.h>int main() {int a = 5, b = 10;printf("%d", a + b);return 0;}```答案:158. 在C语言中,若要定义一个字符数组来存储字符串"Hello",正确的声明方式是_____。
char str[] = "Hello";```答案:char str[6];9. 下列代码段中,变量x的最终值是_____。
```cint x = 10;x += x * x - 3 * x + 2;```答案:11210. C语言中,若要计算两个数的乘积,可以使用运算符_____。
答案:*三、简答题11. 解释C语言中指针的概念及其用途。
答案:指针是一种变量,它存储了另一个变量的内存地址。
指针用于访问和操作内存地址中的数据,可以实现动态内存分配、数组操作、函数参数传递等。
c语言期末试题及答案及详解一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的关键字?A. defineB. caseC. functionD. include答案:B2. C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A3. 若有以下代码:```cint a = 5, b = 10;a = a + b;b = a - b;a = a - b;```执行后变量a的值是:A. 5B. 10C. 15D. 0答案:B4. 下列关于指针的描述,错误的是:A. 指针可以指向一个变量B. 指针可以指向一个数组C. 指针可以指向一个函数D. 指针不可以指向一个指针答案:D5. 在C语言中,以下哪个函数用于将字符串从源字符串复制到目标字符串?A. strcpyB. strcatC. strcmpD. strlen答案:A6. 下列哪个选项是C语言中合法的数组声明?A. int arr[5] = {0, 1, 2, 3, 4};B. int arr[] = {0, 1, 2, 3, 4};C. int arr[5] = {0, 1, 2};D. int arr[] = {0, 1, 2, 3};答案:B7. C语言中,以下哪个运算符用于执行按位与操作?A. &&B. ||C. &D. &&答案:C8. 下列关于函数的描述,正确的是:A. C语言中的函数可以没有返回值B. C语言中的函数可以返回多个值C. C语言中的函数可以重载D. C语言中的函数可以嵌套定义答案:A9. 在C语言中,以下哪个选项是正确的文件操作函数?A. fopenB. fcloseC. fgetcD. All of the above答案:D10. 下列关于C语言中循环的描述,错误的是:A. for循环可以嵌套使用B. while循环可以和do-while循环嵌套使用C. do-while循环至少执行一次D. break语句可以跳出循环体答案:B二、填空题(每题2分,共20分)1. 在C语言中,用于定义一个整型变量的关键字是________。
作者:非成败作品编号:92032155GZ5702241547853215475102时间:2020.12.13一、单项选择题1.(A)是构成C语言程序的基本单位。
A、函数B、过程C、子程序D、子例程2.C语言程序从C开始执行。
A) 程序中第一条可执行语句B) 程序中第一个函数C) 程序中的main函数D) 包含文件中的第一个函数3、以下说法中正确的是(C)。
A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main( )函数中定义C、C语言程序总是从main( )函数开始执行D、C语言程序中的main( )函数必须放在程序的开始部分4.下列关于C语言的说法错误的是(B)。
A) C程序的工作过程是编辑、编译、连接、运行B) C语言不区分大小写。
C) C程序的三种基本结构是顺序、选择、循环D) C程序从main函数开始执行5.下列正确的标识符是(C)。
A.-a1B.a[i]C.a2_iD.int t5~8题为相同类型题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是(B)。
A)3ax B)x C)case D)-e2 E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);7.下列四组选项中,正确的C语言标识符是(C)。
A)%x B)a+b C)a123 D)123选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。
A、print _3d db8 aBcB、I\am one_half start$it 3paiC、str_1 Cpp pow whileD、Pxq My->book line# His.age选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3)9.C语言中的简单数据类型包括(D)。
c语言期末试题及答案及详解本文将提供C语言的期末试题及答案,并对每个问题进行详细解析,旨在帮助读者更好地理解和掌握C语言知识。
每个问题都将以清晰的排版和通顺的语句进行阐述,以确保文章的可读性和表达流畅。
试题一:1. 以下代码段输出的结果是什么?```c#include <stdio.h>int main() {int x = 6 / 2 * (1 + 2);printf("%d", x);return 0;}```答案及详解:输出的结果是9。
这个问题考察了C语言中的运算符优先级。
根据优先级规则,先计算括号内的表达式1 + 2,结果为3。
然后进行乘法运算6 / 2 * 3,结果为9。
最后通过printf函数将结果打印出来。
试题二:2. 以下代码段中存在什么错误,并进行改正。
```c#include <stdio.h>int main() {int num1, num2;printf("请输入两个整数:");scanf("%d %d", num1, num2);int sum = num1 + num2;printf("两个整数的和为:%d", sum);return 0;}```答案及详解:代码存在的错误是scanf函数参数传递时变量名未加取地址符&,需要改正为scanf("%d %d", &num1, &num2)。
scanf函数用于从标准输入读取数据,需要通过取地址符&将变量的地址传递给scanf函数,以便将读取的数据存储到相应的变量中。
在给定的代码中,应该在num1和num2前面加上&,即scanf("%d %d", &num1, &num2)。
试题三:3. 下面的代码中,函数fun的返回值是什么?```c#include <stdio.h>int fun(int *arr, int n) {if (n == 0) {return 0;}return (*arr) + fun(arr+1, n-1);}int main() {int arr[] = {1, 2, 3, 4, 5};int sum = fun(arr, 5);printf("数组元素的和为:%d", sum);return 0;}```答案及详解:函数fun的返回值是数组元素的和。
大一c语言期末考试题及答案解析一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的关键字?A. intB. floatC. doubleD. all of the above答案:D2. C语言中,用于定义单精度浮点数的关键字是?A. intB. floatC. doubleD. char答案:B3. 下列哪个函数用于将浮点数转换为字符串?A. sprintfB. printfC. scanfD. strcat答案:A4. 在C语言中,哪个运算符用于计算两个数的和?A. +B. -C. *D. /答案:A5. 下列哪个选项不是C语言中的控制结构?A. ifB. forC. whileD. switch答案:D6. C语言中,用于定义字符数组的关键字是?A. charB. stringC. arrayD. vector答案:A7. 下列哪个函数用于输出格式化的字符串?A. printfB. scanfC. fprintfD. sprintf答案:A8. C语言中,用于定义整型变量的关键字是?A. intB. floatC. doubleD. char答案:A9. 下列哪个选项不是C语言中的运算符?A. %B. &&C. ||D. ==答案:D10. 在C语言中,用于定义布尔变量的关键字是?A. boolB. intC. charD. float答案:A二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型变量的正确语法是:___________。
答案:int variable_name;2. C语言中,用于输入一个整数的函数是:___________。
答案:scanf3. 如果要定义一个字符串常量,应该使用___________符号。
答案:"4. 在C语言中,使用___________关键字可以定义一个函数。
答案:void 或者其他返回类型5. C语言中,用于定义一个数组的语法是:___________。
一、单项选择题1.若有以下说明语句:struct date{ int year;int month;int day;}brithday;则下面的叙述不正确的是__C___.A) struct是声明结构体类型时用的关键字B) struct date 是用户定义的结构体类型名C) brithday是用户定义的结构体类型名D) year,day 都是结构体成员名2. 以下对结构变量stul中成员age的非法引用是Bstruct student{ int age;int num;}stu1,*p;p=&stu1;A) stu1.age B) student.age C) p->age D) (*p).age3.设有如下定义:struck sk{ int a;float b;}data;int *p;若要使P指向data中的a域,正确的赋值语句是CA) p=&a; B) p=data.a; C) p=&data.a; D)*p=data.a;4.设有以下说明语句:typedef struct stu{ int a;float b;} stutype;则下面叙述中错误的是(D)。
A、struct是结构类型的关键字B、struct stu是用户定义的结构类型C、a和b都是结构成员名D、stutype是用户定义的结构体变量名5.语句int *p;说明了 C 。
A)p是指向一维数组的指针B)p是指向函数的指针,该函数返回一int型数据C)p是指向int型数据的指针// 指针的定义教材P223D)p是函数名,该函数返回一指向int型数据的指针6.下列不正确的定义是(A)。
A.int *p=&i,i;B.int *p,i;C.int i,*p=&i; D.int i,*p;选项A先定义一个整型指针变量p,然后将变量i的地址赋给p。
然而此时还未定义变量i因此编译器无法获得变量i的地址。
大学《C语言程序设计》期末考试试卷及参考答案《C语言程序设计》期末考试试卷参考答案一、判断题(10分)1、对2、对3、错4、错5、对6、错7、错8、错9、错10、错二、填空题(30分,,1到10题1分1空,10到18题2分1空)1.2.5 2. a!=0&&b!=0 3. m=1b 4. windows 95 5. x[i]>='A'&&x[i]<='Z' 6.234567 7.文件的首纪录前8、struct tree *Ltree,*Rtree 9. i<=10010. char a[10]="continue"; 11. p*pow(1+r,5) 12. 'D' 13. 10、514.#define utol(ch) ch=ch>='A'&& ch<='Z' ? ch+'a'-'A':ch15.首行第i+1个元素的地址,第i+1行的首地址,a[0][0]的值16.p=(int*)mallo(n);17. (-b+sqrt(b*b-4*a*c))/2/a 18. float(*fg)(float **,int,int);三、单项选择题(在每小题的四个备选答案中选出一个正确的,10分))1、A2、B3、C4、B5、D6、A7、A8、B9、C 10、A四、程序阅读题(20分,每题4分)1、 A C E G2、 x=3 y=23、the two string are same:fthe two string are same:r4、 K=85、1《C语言程序设计》期末考试试卷及参考答案一、判断题(10分)1、C语言是一种结构化程序设计语言。
()2、在标准C中,整型变量与字符变量是可以通用的。
()3、在标准C中,“=”是判断两个数是否相等。
大一上c语言期末考试题库及详解答案在编写大一上C语言期末考试题库及详解答案时,需要确保内容的准确性和完整性。
以下是一份模拟的C语言期末考试题库及其详解答案的正文内容:一、选择题1. C语言中,以下哪个是正确的标识符?- A. 2variable- B. variable2- C. variable-variable- D. variable$答案:B详解:在C语言中,标识符可以由字母、数字和下划线组成,但不能以数字开头,也不能包含特殊字符如$或-。
2. 以下哪个是C语言中的整型常量?- A. 3.14- B. 'A'- C. 0x1A- D. 1e2答案:C详解:选项A是浮点数,选项B是字符常量,选项D是科学计数法表示的浮点数,而选项C是十六进制表示的整型常量。
二、填空题1. 在C语言中,一个简单的if语句的语法格式为:`if (________) { __________ }`。
答案:条件表达式;语句块2. 以下代码段的输出结果是什么?```cint a = 10, b = 20;if (a < b) {printf("%d", a + b);}```答案: 30三、简答题1. 简述C语言中数组的定义和初始化方法。
答案:在C语言中,数组是一种基本的数据结构,用于存储固定数量的相同类型的元素。
数组的定义格式为:`类型名数组名[数组大小]`。
初始化可以使用花括号包围的初始化列表,如:`int arr[5] = {1, 2, 3, 4, 5};`。
2. 描述C语言中指针的概念及其用途。
答案:指针是一种变量,它存储了另一个变量的内存地址。
指针的主要用途包括动态内存分配、数组操作、函数参数传递等。
指针可以用于通过地址来间接访问和修改数据,增加了程序的灵活性。
四、编程题1. 编写一个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;}```2. 编写一个函数,用于计算一个整数的阶乘。
一、单项选择题1.(A)是构成C语言程序的基本单位。
A、函数B、过程C、子程序D、子例程2.C语言程序从C开始执行。
A) 程序中第一条可执行语句B) 程序中第一个函数C) 程序中的main函数D) 包含文件中的第一个函数3、以下说法中正确的是(C)。
A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main( )函数中定义C、C语言程序总是从main( )函数开始执行D、C语言程序中的main( )函数必须放在程序的开始部分4.下列关于C语言的说法错误的是(B)。
A) C程序的工作过程是编辑、编译、连接、运行B) C语言不区分大小写。
C) C程序的三种基本结构是顺序、选择、循环D) C程序从main函数开始执行5.下列正确的标识符是(C)。
A.-a1B.a[i]C.a2_iD.int t5~8题为相同类型题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是(B)。
A)3ax B)x C)case D)-e2 E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);7.下列四组选项中,正确的C语言标识符是(C)。
A)%x B)a+b C)a123 D)123选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。
A、print _3d db8 aBcB、I\am one_half start$it 3paiC、str_1 Cpp pow whileD、Pxq My->book line# His.age选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3)9.C语言中的简单数据类型包括(D)。
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语言的位运算符之一,用于按位与操作。
一、单项选择题欧阳光明(2021.03.07)1.(A)是构成C语言程序的基本单位。
A、函数B、过程C、子程序D、子例程2.C语言程序从C开始执行。
A) 程序中第一条可执行语句B) 程序中第一个函数C) 程序中的main函数D) 包含文件中的第一个函数3、以下说法中正确的是(C)。
A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main( )函数中定义C、C语言程序总是从main( )函数开始执行D、C语言程序中的main( )函数必须放在程序的开始部分4.下列关于C语言的说法错误的是(B)。
A) C程序的工作过程是编辑、编译、连接、运行B) C语言不区分大小写。
C) C程序的三种基本结构是顺序、选择、循环D) C程序从main函数开始执行5.下列正确的标识符是(C)。
A.-a1B.a[i]C.a2_iD.int t5~8题为相同类型题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int 为关键字,不满足(3)6.下列C语言用户标识符中合法的是(B)。
A)3ax B)x C)case D)-e2 E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);7.下列四组选项中,正确的C语言标识符是(C)。
A)%x B)a+b C)a123 D)123选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。
A、print _3d db8 aBcB、I\am one_half start$it 3paiC、str_1 Cpp pow whileD、Pxq My->book line# His.age 选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3)9.C语言中的简单数据类型包括(D)。
一、单项选择题1.(A)是构成C语言程序的基本单位。
A、函数B、过程C、子程序D、子例程2.C语言程序从C开始执行。
A) 程序中第一条可执行语句B) 程序中第一个函数C) 程序中的main函数D) 包含文件中的第一个函数3、以下说法中正确的是(C)。
A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main( )函数中定义C、C语言程序总是从main( )函数开始执行D、C语言程序中的main( )函数必须放在程序的开始部分4.下列关于C语言的说法错误的是(B)。
A) C程序的工作过程是编辑、编译、连接、运行B) C语言不区分大小写。
C) C程序的三种基本结构是顺序、选择、循环D) C程序从main函数开始执行5.下列正确的标识符是(C)。
A.-a1B.a[i]C.a2_iD.int t5~8题为相同类型题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是(B)。
A)3ax B)x C)case D)-e2 E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);7.下列四组选项中,正确的C语言标识符是(C)。
A)%x B)a+b C)a123 D)123选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。
A、print _3d db8 aBcB、I\am one_half start$it 3paiC、str_1 Cpp pow whileD、Pxq My->book line# His.age选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3)9.C语言中的简单数据类型包括(D)。
2020届大学c语言期末考试习题讲解读程序函数1.#include <stdio.h>int Sub(int a, int b){return (a- b);}main(){int x, y, result = 0;scanf("%d,%d", &x,&y );result = Sub(x,y ) ;printf("result = %d\n",result);}当从键盘输入:6,3运行结果为:result =32.#include <stdio.h>int min( int x, int y ){ int m;if ( x> y ) m = x;else m = y;return(m);}main() {int a=3,b=5,abmin ;abmin = min(a,b);printf(“min is %d”,abmin);}运行结果为:min is 53.#include<stdio.h>func(int x) {x=10;printf(“%d, ”,x);}main( ){ int x=20;func(x);printf(“%d”, x);}运行结果为:10, 20在main函数中调用函数func,main函数将20作为实参穿给func,并转向开始执行func. main()对应的内存func()对应的内存func()执行x=10;,其内存中x变为10.10 xfunc()执行printf(“%d, ”,x); 即输出func函数对应内存中x的值,输出的是10. 至此,func函数执行结束,返回main函数。
main函数执行printf(“%d”, x);此时输出main函数对应内存中的x,即204.#include <stdio.h>int m=4;int func(int x,int y){ int m=1;return(x*y-m);}main(){int a=2,b=3;printf("%d\n",m);printf("%d\n",func(a,b)/m);}运行结果为:41整型变量m在函数外定义,因此m为全局变量,其作用于范围为其定义位置开始,一直到整个程序结束。
大学C语言期末考试练习题(带详解答案)------------------------------------------作者------------------------------------------日期一、单项选择题.( ✌ )是构成 语言程序的基本单位。
✌、函数 、过程 、子程序 、子例程. 语言程序从 开始执行。
✌✆ 程序中第一条可执行语句∙∙∙ ✆ 程序中第一个函数∙∙∙✆ 程序中的❍♋♓⏹函数∙∙∙∙∙∙∙∙∙ ✆ 包含文件中的第一个函数、以下说法中正确的是( )。
✌、 语言程序总是从第一个定义的函数开始执行、在 语言程序中,要调用的函数必须在❍♋♓⏹☎ ✆函数中定义、 语言程序总是从❍♋♓⏹☎ ✆函数开始执行、 语言程序中的❍♋♓⏹☎ ✆函数必须放在程序的开始部分下列关于 语言的说法错误的是( ) 。
✌✆ 程序的工作过程是编辑、编译、连接、运行✆ 语言不区分大小写。
✆ 程序的三种基本结构是顺序、选择、循环✆ 程序从❍♋♓⏹函数开始执行下列正确的标识符是( )。
✌♋ ♋☯♓ ♋♉♓ ♓⏹♦ ♦❞题为相同类型题考点:标识符的命名规则( )只能由字母、数字、下划线构成( )数字不能作为标识符的开头( )关键字不能作为标识符选项✌中的❽❾ ,选项 中❽☯❾与❽❾不满足( );选项 中的♓⏹♦为关键字,不满足( ).下列 语言用户标识符中合法的是( )。
✌✆♋⌧ ✆⌧ ✆♍♋♦♏ ✆♏ ☜✆◆⏹♓☐⏹选项✌中的标识符以数字开头不满足( );选项 ,☜均为为关键字,不满足( );选项 中的❽❾不满足( );.下列四组选项中,正确的 语言标识符是( )。
✌) ⌧ ) ♋♌ )♋ ) ( )、下列四组字符串中都可以用作 语言程序中的标识符的是( ✌ )。
✌、☐❒♓⏹♦ ♉♎ ♎♌ ♋♍ 、✋♋❍ ☐⏹♏♉♒♋●♐ ♦♦♋❒♦♓♦ ☐♋♓、♦♦❒♉ ☐☐ ☐☐♦ ♦♒♓●♏ 、⌧❑ ⍓♌☐☐ ●♓⏹♏✁ ☟♓♦♋♑♏选项 中的❽❾,❾❾ ,选项 中❽❾,❾✁❾,❾❾,❾❾不满足( );选项 中的♦♒♓●♏为关键字,不满足( )语言中的简单数据类型包括( )。
大学c语言的期末试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的描述中,错误的是()。
A. C语言是一种高级语言B. C语言可以直接在计算机上运行C. C语言具有结构化的特点D. C语言具有丰富的数据类型答案:B2. 在C语言中,用于定义一个整型变量的关键字是()。
A. intB. floatC. charD. double答案:A3. C语言中,用于输入输出的库函数是()。
A. <stdio.h>B. <math.h>C. <stdlib.h>D. <string.h>答案:A4. 下列选项中,不属于C语言运算符的是()。
A. %C. :D. <答案:C5. 在C语言中,用于定义一个字符数组的关键字是()。
A. intB. floatC. charD. double答案:C6. 下列关于C语言函数的描述中,正确的是()。
A. 函数必须有返回值B. 函数可以没有参数C. 函数的返回值类型不能是数组D. 函数的返回值类型必须是int答案:B7. 在C语言中,用于定义一个浮点型变量的关键字是()。
A. intB. floatC. charD. double答案:B8. C语言中,用于定义一个字符串常量的关键字是()。
B. stringC. strD. text答案:A9. 下列关于C语言指针的描述中,错误的是()。
A. 指针可以存储地址B. 指针可以存储值C. 指针可以作为函数的参数D. 指针可以作为函数的返回值答案:B10. 在C语言中,用于定义一个布尔型变量的关键字是()。
A. boolB. intC. charD. float答案:A二、填空题(每题2分,共20分)1. 在C语言中,使用____关键字来定义一个静态变量。
答案:static2. C语言中,使用____关键字来定义一个全局变量。
答案:extern3. 在C语言中,____运算符用于取地址。
2020届大学c语言期末考试习题讲解读程序数组1.#include <stdio.h>main(){ int i, a[10];for(i=9;i>=0;i--)a[i]=10-i;printf(“%d%d%d”,a[2],a[5],a[8]);}运行结果为:852详见p143-146. 例题6.1一定看懂!首先定义整型变量i,整型数组a, a的长度为10,即a中包含10个整型元素(整型变量)执行for循环语句初值i=9, 使得循环条件i>=0成立,执行循环体第1次循环执行a[i]=10-i 等价于a[9]=10-9=1计算表达式3,即i--,i为8,使得循环条件i>=0成立,继续执行循环体第2次循环执行a[i]=10-i 等价于a[8]=10-8=2计算表达式3,即i--,i为7,使得循环条件i>=0成立,继续执行循环体第3次循环执行a[i]=10-i 等价于a[7]=10-7=3计算表达式3,即i--,i为6,使得循环条件i>=0成立,继续执行循环体第4次循环执行a[i]=10-i 等价于a[6]=10-6=4计算表达式3,即i--,i为5,使得循环条件i>=0成立,继续执行循环体第5次循环执行a[i]=10-i 等价于a[5]=10-5=5计算表达式3,即i--,i为4,使得循环条件i>=0成立,继续执行循环体第6次循环执行a[i]=10-i 等价于a[4]=10-4=6计算表达式3,即i--,i为3,使得循环条件i>=0成立,继续执行循环体第7次循环执行a[i]=10-i 等价于a[3]=10-3=7计算表达式3,即i--,i为2,使得循环条件i>=0成立,继续执行循环体第8次循环执行a[i]=10-i 等价于a[2]=10-2=8计算表达式3,即i--,i为1,使得循环条件i>=0成立,继续执行循环体第9次循环执行a[i]=10-i 等价于a[1]=10-1=9计算表达式3,即i--,i为0,使得循环条件i>=0成立,继续执行循环体第10次循环执行a[i]=10-i 等价于a[0]=10-0=10计算表达式3,即i--,i为-1,使得循环条件i>=0不成立,跳出循环体2.#include <stdio.h>main(){ int i,a[6];for (i=0; i<6; i++)a[i]=i;for (i=5; i>=0 ; i--)printf("%3d",a[i]);}运行结果为:5 4 3 2 1 0首先定义整型变量i,整型数组a, a的长度为6,即a中包含6个整型元素(整型变量)执行第一个for循环语句初值i=0, 使得循环条件i<6成立,执行循环体第1次循环执行a[i]= i 等价于a[0]=0计算表达式3,即i++,i为1,使得循环条件i<6成立,继续执行循环体第2次循环执行a[i]= i 等价于a[1]=1计算表达式3,即i++,i为2,使得循环条件i<6成立,继续执行循环体第3次循环执行a[i]= i 等价于a[2]=2计算表达式3,即i++,i为3,使得循环条件i<6成立,继续执行循环体第4次循环执行a[i]= i 等价于a[3]=3计算表达式3,即i++,i为4,使得循环条件i<6成立,继续执行循环体第5次循环执行a[i]= i 等价于a[4]=4计算表达式3,即i++,i为5,使得循环条件i<6成立,继续执行循环体第6次循环执行a[i]= i 等价于a[5]=5计算表达式3,即i++,i为6,使得循环条件i<6不成立,结束循环执行第二个for循环语句初值i=5, 使得循环条件i>=0成立,执行循环体第1次循环执行printf("%3d",a[i]); 即输出a[5]的值计算表达式3,即i--,i为4,使得循环条件i>=0成立,继续执行循环体第2次循环执行printf("%3d",a[i]); 即输出a[4]的值计算表达式3,即i--,i为3,使得循环条件i>=0成立,继续执行循环体第3次循环执行printf("%3d",a[i]); 即输出a[3]的值计算表达式3,即i--,i为2,使得循环条件i>=0成立,继续执行循环体第4次循环执行printf("%3d",a[i]); 即输出a[2]的值计算表达式3,即i--,i为1,使得循环条件i>=0成立,继续执行循环体第5次循环执行printf("%3d",a[i]); 即输出a[1]的值计算表达式3,即i--,i为0,使得循环条件i>=0成立,继续执行循环体第6次循环执行printf("%3d",a[i]); 即输出a[0]的值计算表达式3,即i--,i为6,使得循环条件i>=0不成立,结束循环3.#include <stdio.h>main( ){ int i,k,a[10],p[3];k=5;for(i=0;i<10;i++)a[i]=i;for(i=0;i<3;i++)p[i]=a[i*(i+1)];for(i=0;i<3;i++)k+=p[i]*2;printf("%d\n",k);}运行结果为:21首先定义整型变量i,k,整型数组a, a的长度为10,整型数组p, p的长度为3k初值为5第一个for循环语句为数组a进行初始化执行完第一个for语句后,a[0]=0,a[1]=1,a[2]=2,a[3]=3,a[4]=4,a[5]=5,a[6]=6,a[7]=7,a[8]=8,a[9]=9 (循环过程略)第二个for循环语句为数组p进行初始化初值i=0, 使得循环条件i<3成立,执行循环体第1次循环执行p[i]=a[i*(i+1)]; 即p[0]=a[0*(0+1)]=a[0]=0计算表达式3,即i++,i为1,使得循环条件i<3成立,继续执行循环体第2次循环执行p[i]=a[i*(i+1)]; 即p[1]=a[1*(1+1)]=a[2]=2计算表达式3,即i++,i为2,使得循环条件i<3成立,继续执行循环体第3次循环执行p[i]=a[i*(i+1)]; 即p[2]=a[2*(2+1)]=a[6]=6计算表达式3,即i++,i为3,使得循环条件i<3不成立,结束循环第三个for循环语句初值i=0, 使得循环条件i<3成立,执行循环体第1次循环执行k+=p[i]*2; 即k=5+p[0]*2=5+0=5计算表达式3,即i++,i为1,使得循环条件i<3成立,继续执行循环体第2次循环执行k+=p[i]*2; 即k=5+p[1]*2=5+2*2=9计算表达式3,即i++,i为2,使得循环条件i<3成立,继续执行循环体第1次循环执行k+=p[i]*2; 即k=9+p[2]*2=9+6*2=21计算表达式3,即i++,i为3,使得循环条件i<3不成立,结束循环4.#include <stdio.h>int m[3][3]={{1},{2},{3}};int n[3][3]={1,2 ,3};main( ){ printf(“%d,”, m[1][0]+n[0][0]);printf(“%d\n”,m[0][1]+n[1][0]);}运行结果为:3,0详见教材P149~152,图6.7看懂!首先定义整型二维数组m,m为3行,3列的二维矩阵,并对其以行的形式初始化m[0][0]=1 m[0][1]=0 m[1][2]=0m[1][0]=2 m[1][1]=0 m[2][2]=0m[2][0]=3 m[2][1]=0 m[2][2]=0定义整型二维数组n,m为3行,3列的二维矩阵n[0][0]=1 n[0][1]=2 n[1][2]=3n[1][0]=0 n[1][1]=0 n[2][2]=0n[2][0]=0 n[2][1]=0 n[2][2]=0因此m[1][0]+n[0][0]=2+1=3m[0][1]+n[1][0]=0+0=05.#include <stdio.h>main(){ int i;int x[3][3]={1,2,3,4,5,6,7,8,9};for (i=1; i<3; i++)printf("%d ",x[i][3-i]);}运行结果为:6 8首先按存储顺序为数组x初始化x[0][0]=1 x[0][1]=2 x[0][2]=3x[1][0]=4 x[1][1]=5 x[1][2]=6x[2][0]=7 x[2][1]=8 x[2][2]=9初值i=1, 使得循环条件i<3成立,执行循环体第1次循环执行printf("%d ",x[i][3-i]),打印出x[i][3-i],即x[1][2]的值计算表达式3,即i++,i为2,使得循环条件i<3成立,继续执行循环体第2次循环执行printf("%d ",x[i][3-i]),打印出x[i][3-i],即x[2][1]的值计算表达式3,即i++,i为3,使得循环条件i<3成立,结束循环6.#include <stdio.h>main( ){ int n[3][3], i, j;for(i=0;i<3;i++ ){for(j=0;j<3;j++ ){n[i][j]=i+j;printf(“%d ”, n[i][j]);}}}运行结果为:0 1 21 2 32 3 4循环变量i为0, 循环条件i<3成立,执行循环体外层for第1次循环相当于输出第1行内层for循环j初值为0,循环条件j<3成立,执行循环体内层for第1次循环执行n[i][j]=i+j;即n[0][0]=0+0=0;执行printf(“%d ”, n[i][j]);执行内层循环表达式3,j++,j为1,j<3成立,继续执行内层循环体内层for第2次循环执行n[i][j]=i+j;即n[0][1]=0+1=1;执行printf(“%d ”, n[i][j]);执行内层循环表达式3,j++,j为2,j<3成立,继续执行内层循环体内层for第3次循环执行n[i][j]=i+j;即n[0][2]=0+2=2;执行printf(“%d ”, n[i][j]);执行内层循环表达式3,j++,j为3,j<3不成立,结束内层循环执行printf(“\n”);执行外层for语句的表达式3,i++,i为,1,i<3成立,继续执行外层循环体外层for第2次循环相当于输出第2行内层for循环j初值为0,循环条件j<3成立,执行循环体内层for第1次循环执行n[i][j]=i+j;即n[1][0]=1+0=1;执行printf(“%d ”, n[i][j]);执行内层循环表达式3,j++,j为1,j<3成立,继续执行内层循环体内层for第2次循环执行n[i][j]=i+j;即n[1][1]=1+1=2;执行printf(“%d ”, n[i][j]);执行内层循环表达式3,j++,j为2,j<3成立,继续执行内层循环体内层for第3次循环执行n[i][j]=i+j;即n[1][2]=1+2=3;执行printf(“%d ”, n[i][j]);执行内层循环表达式3,j++,j为3,j<3不成立,结束内层循环执行printf(“\n”);执行外层for语句的表达式3,i++,i为,1,i<3成立,继续执行外层循环体外层for第2次循环相当于输出第3行内层for循环j初值为0,循环条件j<3成立,执行循环体内层for第1次循环执行n[i][j]=i+j;即n[2][0]=2+0=1;执行printf(“%d ”, n[i][j]);执行内层循环表达式3,j++,j为1,j<3成立,继续执行内层循环体内层for第2次循环执行n[i][j]=i+j;即n[2][1]=2+1=2;执行printf(“%d ”, n[i][j]);执行内层循环表达式3,j++,j为2,j<3成立,继续执行内层循环体内层for第3次循环执行n[i][j]=i+j;即n[2][2]=2+2=3;执行内层循环表达式3,j++,j为3,j<3不成立,结束内层循环执行printf(“\n”);执行外层for语句的表达式3,i++,i为,3,i<3不成立,结束外层循环7.#include <stdio.h>main(){char diamond[][5]={{‘_’,’_’,’*’},{‘_‘,’*’,’_’,’*’},{‘*’,’_’,’_‘,’_‘,’*’},{‘_’,’*’,’_’,’*’},{‘_’,’_’,’*’}};int i,j;for(i=0;i<5;i++){for(j=0;j<5;j++)printf(“%c”,diamond[i][j]);printf(“\n”);}}注:“_”代表一个空格。
2020届大学c语言期末考试习题讲解读程序指针1.# include < stdio .h >main ( ){ int x[ ] = {10, 20, 30, 40, 50 };int *p ;p=x;printf ( “%d”, *(p+2 ) );}运行结果为:30首先定义一个整型数组x,x的长度为5;然后定义一个指针变量p;对p进行初始化,将数组x的地址赋给p。
因此此时p中存放的数组x的首地址,即数组中第一个元素x[0]的地址。
然后执行printf语句,输出表达式*(p+2)的值。
p+2表示以p当前指向的位置起始,之后第2个元素的地址,即a[2]的地址。
*(p+2)则表示该地址内所存放的内容,即a[2]的值30,因此输出302.#include <stdio.h>main( ){ char s[]=”abcdefg”;char *p;p=s;printf(“ch=%c\n”,*(p+5));}运行结果为:ch=f首先定义一个字符型数组s,并用字符串abcdefg对s进行初始化; 然后定义一个字符型指针变量p; 对p进行初始化,将数组s的地址赋给p。
因此此时p中存放的数组s的首地址,即数组中第一个元素s[0]的地址。
然后执行printf语句,输出表达式*(p+5)的值。
p+5表示以p当前指向的位置起始,之后第5个元素的地址,即a[5]的地址。
*(p+5)则表示该地址内所存放的内容,即a[5]的值f, 因此输出ch=f3.#include<stdio.h>main ( ){ int a[]={1, 2, 3, 4, 5} ;int x, y, *p;p=a;x=*(p+2);printf("%d:%d \n", *p, x);}运行结果为:1:3首先定义一个整型数组a,并对a进行初始化; 然后定义整型变量x,y,整型指针变量p; 再将数组a的地址赋给p。
2020届大学c语言期末考试习题讲解
读程序
结构体
1.
#include<stdio.h>
struct st
{ int x;
int y;
} a[2]={5, 7, 2, 9} ;
main()
{
printf("%d\n",a[0].y*a [1].x);
}
运行结果是:
14
首先是定义结构体st,st中共有两个整型成员x,y。
然后定义一个st类型的数组a,a的长度为2,即数组中含有两个st类型的元素,分别是a[0]和a[1]. 对a进行初始化,此题是按照储存顺序进行初始化,即将5赋给a[0]中的x(即a[0].x=5); 将7赋给a[0]中的y(即a[0].y=7); 将2赋给a[1]中的x(即a[1].x=2); 将9赋给a[1]中的y(即a[1].y=9);
执行main函数,输出表达式a[0].y*a [1].x的值,即7*2的值
5 a[0].x a[0]
7 a[0].y
2 a[1].x a[1]
9 a[1].y
2.
#include<stdio.h>
main( )
{struct stu
{int num;
char a[5];
float score;
}m={1234,”wang”,89.5};
printf(“%d,%s,%f”,m.num,m.a,m.score);
}
运行结果是:
1234,wang,89.5
3.
#include<stdio.h>
struct cmplx
{ int x;
int y;
} cnum[2]={1, 3, 2, 7};
main( )
{
printf(“%d\n”, cnum[0].y * cnum[1].x );
}
运行结果是:6
与第一题解法同
4.
#include <stdio.h>
struct abc
{ int a, b, c; };
main()
{ struct abc s[2]={{1,2,3},{4,5,6}};
int t;
t=s[0].a+s[1].b;
printf("%d \n",t);
}
运行结果是:6
与第一题解法同。