成都信息工程学院C语言考试题及答案
c语言二级考试题库及详解答案
c语言二级考试题库及详解答案C语言二级考试题库及详解答案一、选择题1. 在C语言中,以下哪个选项是合法的标识符?A. 2variableB. variable2C. 3numberD. variable#答案:B2. C语言中,整型变量int所占的字节数是:A. 1字节B. 2字节C. 4字节D. 8字节答案:C(注:实际字节数可能因编译器和平台而异,但通常为4字节)3. 下列哪个不是C语言的控制语句?A. ifB. switchC. forD. goto答案:B(注:switch也是C语言的控制语句,此题有误)二、填空题1. 在C语言中,若要定义一个整型数组,可以使用以下语法:___________。
答案:int array_name[array_size];2. C语言中,用于计算两个数的乘积的运算符是:___________。
答案:*三、简答题1. 简述C语言中数组和指针的区别。
答案:数组是一种数据结构,用于存储相同类型的元素集合。
指针是一个变量,它存储了另一个变量的内存地址。
数组名可以作为指针使用,但数组本身不是指针。
数组的大小在定义时确定,而指针可以指向不同大小的内存块。
2. 解释C语言中的递归函数。
答案:递归函数是一种函数,它在执行过程中调用自己。
递归函数通常用于解决可以分解为相似子问题的问题。
递归函数必须有一个明确的终止条件,以避免无限递归。
四、编程题1. 编写一个C语言程序,实现求1到100的和。
答案:```c#include <stdio.h>int main() {int sum = 0, i;for(i = 1; i <= 100; i++) {sum += i;}printf("1到100的和是:%d\n", sum);return 0;}```2. 编写一个C语言函数,实现字符串反转。
答案:```cvoid reverseString(char *str) {int len = 0;while(str[len] != '\0') {len++;}for(int i = 0; i < len / 2; i++) {char temp = str[i];str[i] = str[len - 1 - i];str[len - 1 - i] = temp;}}```五、论述题1. 论述C语言中函数的作用和重要性。
大一上c语言考试题及答案解析
大一上c语言考试题及答案解析一、选择题(每题2分,共20分)1. 下列关于C语言的描述中,错误的是:A. C语言是一种高级语言B. C语言可以直接被计算机执行C. C语言具有结构化的特点D. C语言支持多种数据类型答案:B解析:C语言是一种高级语言,它需要编译成机器语言后才能被计算机执行。
2. C语言中,用于定义一个整型变量的关键字是:A. intB. floatC. charD. double答案:A解析:在C语言中,整型变量使用关键字int来定义。
3. 下列选项中,哪一个是C语言中的合法标识符?A. 2variableB. _variableC. variable2D. variable$答案:C解析:在C语言中,标识符可以包含字母、数字和下划线,但不能以数字开头。
4. C语言中,用于实现循环结构的关键字是:A. forB. ifC. switchD. while答案:A解析:for关键字用于定义循环结构。
5. 下列关于C语言数组的描述中,正确的是:A. 数组可以存储不同类型的数据B. 数组的大小在定义后可以改变C. 数组的索引从0开始D. 数组可以赋给另一个数组答案:C解析:C语言中数组的索引从0开始。
6. C语言中,用于定义一个浮点型变量的关键字是:A. intB. floatC. charD. double答案:B解析:在C语言中,浮点型变量使用关键字float来定义。
7. 下列选项中,哪一个是C语言中的合法字符串常量?A. "Hello"B. 'Hello'C. "HelloD. 'Hello'答案:A解析:在C语言中,字符串常量使用双引号括起来。
8. C语言中,用于定义一个字符型变量的关键字是:A. intB. floatC. charD. double答案:C解析:在C语言中,字符型变量使用关键字char来定义。
9. C语言中,用于定义一个双精度浮点型变量的关键字是:A. intB. floatC. charD. double答案:D解析:在C语言中,双精度浮点型变量使用关键字double来定义。
大学生期末c语言试题及答案
大学生期末c语言试题及答案一、选择题(每题2分,共20分)1. C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A2. 下列关于数组的描述中,正确的是:A. 数组必须在定义时初始化B. 数组的元素类型必须一致C. 数组的下标可以是实数D. 数组的下标可以是负数答案:B3. C语言中,用于文件操作的库函数位于哪个头文件中?A. stdio.hB. math.hC. string.hD. stdlib.h答案:A4. 下列哪个运算符不能用于赋值?A. =B. +=C. *=D. %答案:D5. C语言中,用于定义一个函数的关键字是:A. functionB. defineC. defD. void答案:B6. 下列关于指针的描述中,错误的是:A. 指针可以存储地址B. 指针可以存储值C. 指针可以作为函数的参数D. 指针可以作为函数的返回值答案:B7. C语言中,用于定义一个宏的预处理指令是:A. #defineB. #includeC. #pragmaD. #if答案:A8. 下列关于循环的描述中,正确的是:A. for循环可以没有初始化表达式B. while循环可以嵌套C. do-while循环至少执行一次D. 所有循环都可以使用break语句退出答案:C9. C语言中,用于定义一个枚举类型的关键字是:A. enumB. structC. unionD. typedef答案:A10. 下列关于函数的描述中,错误的是:A. 函数可以没有返回值B. 函数可以有多个返回值C. 函数可以递归调用D. 函数可以嵌套定义答案:D二、填空题(每题2分,共20分)1. 在C语言中,字符'A'的ASCII码值是______。
答案:652. 若int a = 10; int b = 20; 则表达式a++ + b的结果是______。
c语言大一期末考试题库及详解答案
c语言大一期末考试题库及详解答案C语言大一期末考试题库及详解答案一、选择题1. 下列哪个选项是C语言的关键字?A. IntegerB. StringC. FloatD. None of the above答案:D2. 在C语言中,定义一个整型变量的正确语法是什么?A. int var;B. var int;C. integer var;D. var integer;答案:A3. 以下哪个表达式的结果不是整数?A. 3 / 2B. 7 % 3C. 10 / 2D. 8 / 2答案:A二、填空题1. 在C语言中,用于定义数组的关键字是________。
答案:Array2. 一个C语言程序的执行从________函数开始。
答案:main3. 以下语句的输出结果是________。
```cint a = 5, b = 10;printf("%d", a + b);```答案:15三、简答题1. 简述C语言中指针的概念及其用途。
答案:指针是C语言中用来存储变量地址的变量。
它允许程序员直接访问内存地址,从而可以动态地操作内存。
指针的用途包括动态内存分配、实现数据结构如链表、数组的遍历等。
2. 解释C语言中的函数重载。
答案:C语言不支持函数重载。
在C语言中,如果两个或多个函数具有相同的名称但参数列表不同,编译器会报错。
这是与支持函数重载的语言(如C++)的主要区别。
四、编程题1. 编写一个C语言程序,实现计算并输出1到100的整数之和。
```c#include <stdio.h>int main() {int sum = 0, i;for(i = 1; i <= 100; i++) {sum += i;}printf("The sum of numbers from 1 to 100 is: %d\n", sum);return 0;}```2. 编写一个C语言函数,实现字符串反转的功能。
大学C语言考试题库(含答案)
单项选择==================================================题号:1482执行以下程序段后,输出结果和a的值是()。
int a=10; printf("%d",a++);A、11 和 10B、11 和 11C、10 和 11D、10 和 10答案:C题号:2100已知字符'A'的ASCⅡ代码值是65,字符变量c1的值是'A',c2的值是'D'.执行语句printf("%d,%d",c1,c2-2);后,输出结果是A、65,66B、A,BC、65,68D、A,68答案:A题号:5055相同结构体类型的变量之间,可以()。
A、比较大小B、地址相同C、赋值D、相加答案:C题号:3217int a[10];合法的数组元素的最小下标值为()。
A、1B、0C、10D、9答案:B题号:45能正确表示逻辑关系:" a≥10或a≤0 "的C语言表达式是A、a>=0 | a<=10B、a>=10 or a<=0C、a>=10 && a<=0D、a>=10 || a<=0答案:D题号:157main(){int x=1,a=0,b=0;switch (x){ case 0: b++;case 1: a++;case 2: a++;b++;} printf("a=%d,b=%d",a,b); }该程序的输出结果是( )A、2,2B、2,1C、1,1D、1,0答案:B题号:4784设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为()。
A、不确定B、doubleC、intD、float答案:B题号:1647以下程序中,while循环的循环次数是______main(){int i=0;while(i<10){if(i<1) continue;if(i==5) break;i++;}}A、死循环,不能确定次数B、6C、4D、1答案:A题号:191若有说明语句:char c='\72';则变量c()。
计算机二级c语言考试真题及答案详解
计算机二级c语言考试真题及答案详解一、单项选择题(每题2分,共40分)1. 在C语言中,以下哪个选项是合法的整型常量?A. 0x12B. 0x12.3C. 0x12LD. 0x12.3L答案:A2. 若有定义int a=1, b=2;,则以下哪个表达式的值不为真?A. a<bB. a<=bC. a>bD. a!=b答案:C3. 在C语言中,以下哪个选项是合法的字符串字面量?A. "Hello, World"B. 'Hello, World'C. "Hello, World\n"D. "Hello, World\0"答案:A4. 下列哪个函数不能正确计算数组元素的总和?A. sum = 0; for(i=0; i<n; i++) sum += array[i];B. sum = 0; for(i=0; i<n; i++) sum = sum + array[i];C. sum = 0; for(i=0; i<n; i++) sum = array[i];D. sum = 0; for(i=0; i<n; i++) sum += array[i];答案:C5. 在C语言中,以下哪个选项是合法的函数声明?A. int add(int, int);B. int add();C. int add(int a, int b);D. int add(a, b);答案:C6. 若有定义int a[10];,则以下哪个表达式是合法的数组元素访问?A. a[10]B. a[-1]C. a[3.5]D. a[3]答案:D7. 在C语言中,以下哪个选项是合法的指针声明?A. int *ptr;B. int *ptr[];C. int ptr*;D. int ptr[];答案:A8. 若有定义int x=10;,则以下哪个表达式是合法的赋值语句?A. x = x + 1;B. x = 1 + x;C. x = x++;D. x = ++x;答案:A9. 在C语言中,以下哪个选项是合法的循环语句?A. for(;;)B. while(1)C. do {} while(0)D. for(;;) {}答案:D10. 若有定义int a[5] = {1, 2, 3, 4, 5};,则以下哪个表达式是合法的数组元素访问?A. a[5]B. a[-1]C. a[2.5]D. a[2]答案:D11. 在C语言中,以下哪个选项是合法的switch语句?A. switch(x) { case 1: break; }B. switch(x) { default: break; }C. switch(x) { case 1: case 2: break; }D. switch(x) { case 1: default: break; }答案:C12. 若有定义int x=5;,则以下哪个表达式是合法的自增运算?A. x++;B. ++x;C. x--;D. --x;答案:A13. 在C语言中,以下哪个选项是合法的函数原型声明?A. void func();B. int func(int);C. void func(int a);D. All of the above答案:D14. 若有定义int a=3;,则以下哪个表达式是合法的位运算?A. a & 2B. a | 2C. a ^ 2D. All of the above答案:D15. 在C语言中,以下哪个选项是合法的宏定义?A. #define PI 3.14159B. #define PI 3.14159fC. #define PI 3.14159LD. All of the above答案:A二、编程题(每题30分,共60分)1. 编写一个函数,计算并返回一个整数数组中所有元素的和。
2022年成都信息工程大学公共课《C语言》科目期末试卷B(有答案)
2022年成都信息工程大学公共课《C语言》科目期末试卷B(有答案)一、填空题1、设有以下定义和语句,请在printf语句的_______中填上能够正确输出的变量及相应的格式说明。
union{int n;doublex;}num;num.n=10;num.x=10.5;printf("_______",_______);2、在C语言中,输入操作是由库函数________完成的,输出操作是由库函数________完成的。
3、一个C语言源程序由若干函数组成,其中至少应含有一个________4、已知字母a的ASCIl码为十进制数97,且设ch为字符型变量,则表达式ch='a'+'8'-3'的值为_______。
5、在C语言中,8作为双目运算符时表示的是_______,而作为单目运算符时表示的是_______。
6、测试char型变量a第6位是否为1的表达式是_______(设最右位是第1位)。
7、鸡兔共有30只,脚共有90只,下面程序段是计算鸡兔各有多少只。
请填空。
for(x=0;x<=30;x++){y=30一x;if(_______)printf("%d,%d\n",x,y);}8、若有定义:inta[3][4]={{1,2},{0},{4,6,8,10}};,则初始化后,a[1][2]得到的初值是_______,a[2][1]得到的初值是_______。
9、在C语言中,二维数组元素在内存中的存放顺序是_______。
10、以下程序段通过指针变量q,但不移动q,将如图所示连续动态存储单元的值,从第一个元素起依次输出到终端屏幕。
请填空。
(假设程序段中的所有变量均已正确说明。
)for(k=0;k<10;k++) printf("%d,",_______); printf("\n");二、选择题11、表达式18/4*sqrt(4.0)/8值的数据类型为()A.intB.floatC.doubleD.不确定12、下面4个选项中,是正确的八进制数或十六进制数的选项是()。
信息工程系C语言基础知识练习题
整理ppt
6
选择题(谭试题2.28)
若以下变量均是整型,且 num=sum=7;则执行表达式 sUM=num++, sUM ++,++num后
sum的值为 __(_A_)__ 。
(A)7 (C)9
(B)8
(D)10
整理ppt
7
选择题(谭试题2.30)
若有说明语句:char c=‘\72’;则
变量c__(_B_)__ 。
其作用:可求出相应参数所占 的内存字节数。
例:sizeof(int);
------ 2
sizeof(float); ------ 4
sizeof(double); ------ 8
sizeof(char); ------ 1
sizeof(“good”); ------ 5
整理ppt
15
选择题(谭试题3.1)
整理ppt
13
选择题(02年7月学历考试1-9题 )
令 int a=2,b=3; 则 语 句 printf(“%d,%d\n”,(a,b),(b,a)); 的 输 出 是
___C__)____。
A)(2, 3),(3, 2)B) Nhomakorabea3, 2)
C) 3, 2
D) 2, 3
整理ppt
14
求字节数运算符sizeof:
表达式是__(_D_)__ 。
int k=7,x=12;
(A) x%=(k%=5)
(B) x%=(k-k%5)
(C) x%=k-k%5
(D) (x%=k)-(k%=5)
整理ppt
10
选择题(谭试题3.24) 设x、y和z均为int型变量,则
大一c语言考试题库及详解答案
大一c语言考试题库及详解答案大一C语言考试题库及详解答案一、选择题1. 下列哪个选项是C语言的关键字?A. intB. floatC. doubleD. string答案:A2. 在C语言中,一个整型变量int占用的内存大小是多少字节?A. 1B. 2C. 4D. 8答案:C二、填空题1. 在C语言中,___________ 用于定义一个变量的存储类型、类型和变量名。
答案:声明2. 一个C语言程序的执行从___________ 函数开始。
答案:main三、简答题1. 简述C语言中数组的定义和初始化方式。
答案:在C语言中,数组是一种基本的数据结构,用于存储相同类型的多个元素。
数组的定义格式为:类型名数组名[数组大小]。
数组的初始化可以通过赋值语句逐个元素赋值,或者使用初始化列表在定义时直接初始化。
2. 描述C语言中函数的定义和调用过程。
答案:函数是C语言中实现代码复用的一种方式。
函数的定义包括返回类型、函数名、参数列表和函数体。
调用函数时,需要使用函数名和相应的参数列表。
函数的调用过程包括参数传递、函数执行和返回结果。
四、编程题1. 编写一个C语言程序,实现求两个整数的最大公约数。
```c#include <stdio.h>int gcd(int a, int b) {while (b != 0) {int temp = b;b = a % b;a = temp;}return a;}int main() {int num1, num2;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);printf("最大公约数是:%d\n", gcd(num1, num2));return 0;}```答案:上述程序定义了一个名为gcd的函数,通过辗转相除法计算两个整数的最大公约数。
(完整版)C语言考试题库及答案
(完整版)C语言考试题库及答案一、选择题1. 以下哪个选项是C语言的合法标识符?A. intB. 2abcC. voidD. a+b答案:C2. 在C语言中,下列哪个选项是正确的数据类型?A. floatB. integerC. doubleD. All of the above答案:D3. 若变量定义如下:int a = 5;,则执行语句printf("%d", a++); 后,a的值是多少?A. 4B. 5C. 6D. 无法确定答案:C4. 以下哪个函数用于动态分配内存?A. malloc()B. alloc()C. new()D. calloc()答案:A5. 在C语言中,哪个运算符用于取模(取余)?A. %B. /C. &D. |答案:A以下是判断题部分:6. C语言中的数组名可以作为指向该数组首元素的指针使用。
()答案:正确7. 在C语言中,结构体变量可以作为函数的参数传递。
()答案:正确8. 在C语言中,静态存储类别的变量在程序运行期间始终占据内存空间。
()答案:正确二、填空题9. 在C语言中,定义一个整型变量需要使用关键字______。
答案:int10. 若变量定义如下:int a = 10;,则执行语句printf("%d", a--); 后,a的值是______。
答案:911. 在C语言中,用于动态分配内存的函数是______。
答案:malloc12. 在C语言中,用于释放动态分配的内存的函数是______。
答案:free13. 在C语言中,用于清空标准输入缓冲区的函数是______。
答案:getchar()三、编程题14. 编写一个C语言程序,实现以下功能:输入一个整数,输出它的阶乘。
答案:```c#include <stdio.h>int main() {int n, i;long factorial = 1;printf("Enter an integer: ");scanf("%d", &n);if (n < 0) {printf("Factorial of a negative number doesn't exist.\n");} else {for (i = 1; i <= n; i++) {factorial = i;}printf("Factorial of %d is %ld\n", n, factorial);}return 0;}```15. 编写一个C语言程序,实现以下功能:输入一个字符串,判断它是否是回文(正读和反读都一样的字符串)。
c语言工程师面试题及答案
c语言工程师面试题及答案1. 题目:请解释C语言中的指针和引用的区别。
答案:在C语言中,指针是一个变量,它存储了另一个变量的内存地址。
指针可以被重新赋值指向不同的内存地址,而引用是C++中的概念,它是一个别名,它与原始变量共享内存地址,不能被重新赋值。
2. 题目:描述C语言中的结构体(struct)及其用途。
答案:结构体是C语言中一种用户自定义的数据类型,它允许将不同的数据类型组合成一个单一的数据结构。
结构体的用途包括创建复杂的数据类型,如员工记录、学生信息等,以便于数据管理。
3. 题目:解释C语言中全局变量和局部变量的区别。
答案:全局变量是在函数外部定义的变量,它在整个程序中都可以访问。
局部变量是在函数内部定义的变量,它只能在定义它的函数内部访问。
4. 题目:请举例说明C语言中的递归函数。
答案:递归函数是一个调用自身的函数。
例如,计算阶乘的函数就是一个递归函数:```cint factorial(int n) {if (n == 0) return 1;else return n * factorial(n - 1);}```5. 题目:什么是C语言中的预处理器指令,它们有什么作用?答案:预处理器指令是C语言中的特殊指令,它们在编译之前处理源代码。
常见的预处理器指令包括`#include`(包含头文件)、`#define`(定义宏)、`#ifdef`、`#ifndef`、`#endif`(条件编译)等。
它们的作用包括代码的模块化、代码的复用、条件编译等。
6. 题目:解释C语言中的内存分配方式。
答案: C语言中的内存分配方式主要有三种:静态分配(编译时分配)、动态分配(运行时分配,使用`malloc`、`calloc`、`realloc`函数)和栈分配(局部变量的分配方式)。
7. 题目:如何在C语言中实现文件的读写操作?答案:在C语言中,可以使用`fopen`函数打开文件,`fprintf`、`fscanf`函数进行文件的写入和读取,`fclose`函数关闭文件。
成都信息工程学院C语言考试题及答案
编写一程序P111.C实现以下功能x(x只考虑整数int且必须定义为int、但F(x)完全可能超过int的表示范围) 通过键盘输入(输入前给出提示Please input x:,然后计算并在屏幕上输出函数值。
编程可用素材:printf("Please input x:")…、printf("\nF(…)=…"…。
厂-5x+27 (x<0)F(x)=卜7909 (x=0)L2x-1 (x>0)程序的运行效果应类似地如图1所示,图1中的3是从键盘输入的内容。
#include vstdio.h> int main(void) {int x; //x存储自变量x的值double Fx; //Fx 存储函数值F(x)/*从键盘上读入x的值*/printf("Please input x:"); 〃在屏幕上显示提示输入x的信息,告诉用户需要做的事scanf("%d", &x); 〃从键盘读入x的值/*根据题目里给出的计算公式计算F(x) */if (x v 0) 〃如果x<0{Fx = -5.0 * x + 27; 〃xv0 时的F(x)计算公式}else if (0 == x) // 否则,若x 等于0{Fx = 7909; 〃x=0时的F(x)计算公式}else{Fx = 2.0 * x - 1; 〃x>0 时的F(x)计算公式}/*将计算结果按题目的要求输出*/printf("\nF(%d) = %.0f", x, Fx);return 0;}编写一程序P113.C实现以下功能已知某银行整存整取存款不同期限的年息利率分别为: 3.15%期限一年,3. 63%期限二年,4.02%期限三年,4.69%期限五年,5.36%期限八年。
从键盘上输入存钱的本金(以元为单位,必须定义为int且应考虑金额很大的情况)和存款期限(只考虑1,2,3,5,8),求到期时能从银行得到的利息(以元为单位,应考虑有小数,不计复利)。
《C语言程序设计》试题库及答案
《C语言程序设计》试题库及答案C语言程序设计习题集及答案电子信息工程学院2022.9.1内容简介本习题集是为根据嘉应学院电子信息工程学院《C语言程序设计》课程教学大纲筛选题目整理而成的。
本习题集共分10章,提供了361道选择题,85道填空题,42道编程题,题集覆盖了《C语言程序设计》的全部内容,满足嘉应学院电子信息工程学院《C语言程序设计》考试大纲的要求。
寄语亲爱的同学们:很高兴你们学习计算机的语言—C语言,她将带你进入一个全新的计算机的世界。
我是你们的老师,但我更希望是你们的朋友,为你在学习C语言的道路上提供帮助。
同学们,“攻城不怕坚,攻书莫畏难。
科学有险阻,苦战能过关。
”,学习是辛苦的,但也充满了挑战和乐趣。
我希望你们在学习C语言时,带着希望出发,体会一路的艰辛,最后满载收获而回。
朋友们,学习向来没有什么捷径可寻。
“多看、多模仿、多操作”是我能给你们的唯一建议。
祝你们学业有成。
杨久红2022.9.1I目录第一部分习题第1章C语言概述............................................................. ............................................................... .. (1)1.1选择题............................................................. ............................................................... ...................11.2填空题............................................................. ............................................................... ...................21.3编程题............................................................. ............................................................... ...................2第2章数据的存储与运算............................................................. .. (3)2.1选择题............................................................. ............................................................... ...................32.2填空题............................................................. ............................................................... ...................62.3编程题............................................................. ............................................................... ...................7第3章最简单的程序设计-顺序程序设 (8)3.1选择题............................................................. ............................................................... ...................83.2填空题............................................................. ............................................................... .................133.3编程题............................................................. ............................................................... .................14第4章选择结构程序设计............................................................. (15)4.1选择题............................................................. ............................................................... .................154.2填空题............................................................. ............................................................... .................194.3编程题............................................................. ............................................................... .................20第5章循环结构程序设计............................................................. .. (2)15.1选择题............................................................. ............................................................... .................215.2填空题..............................................................................295.3编程题............................................................. ............................................................... .................30第6章利用数组处理批量数据............................................................. . (32)6.1选择题.............................................................. ................................................................ ...............326.2填空题.............................................................. ................................................................ ...............376.3编程题.............................................................. ................................................................ ...............38第7章用函数实现模块化程序设计.............................................................. . (40)7.1选择题............................................................. ............................................................... .................407.2填空题............................................................. ............................................................... .................527.3编程题............................................................. ................................................................................57第8章善于使用指针............................................................. ............................................................... .. (58)8.1选择题............................................................. ............................................................... .. (58)II8.2填空题............................................................. ............................................................... .................708.3编程题............................................................. ............................................................... .................71第9章结构体............................................................. ............................................................... (72)9.1选择题............................................................. ............................................................... .................729.2填空题............................................................. ............................................................... .................739.3编程题............................................................. ............................................................... .................74第10章利用文件保存数据............................................................. . (75)10.1选择题............................................................. ............................................................... ...............7510.2填空题............................................................. ............................................................... ...............7710.3编程题............................................................. ............................................................... (79)第二部分参考答案第1章C语言概述............................................................. ............................................................... . (81)1.1选择题............................................................. ............................................................... .................811.2填空题............................................................. ............................................................... .................811.3编程题............................................................. ............................................................... .................81第2章数据的存储与运算............................................................. (81)2.1选择题............................................................. ............................................................... .................812.2填空............................................................... .................822.3编程题............................................................. ............................................................... .................82第3章最简单的程序设计-顺序程序设计............................................................. .. (83)3.1选择题............................................................. ............................................................... .................833.2填空题............................................................. ............................................................... .................833.3编程题............................................................. ............................................................... .................83第4章选择结构程序设计............................................................. (84)4.1选择题............................................................. ............................................................... .................844.2填空题............................................................. ............................................................... .................854.3编程题............................................................. ............................................................... .................85第5章循环结构程序设计.............................................................75.1选择题............................................................. ............................................................... .................885.2填空题............................................................. ............................................................... .................885.3编程题............................................................. ............................................................... .................88第6章利用数组处理批量数据............................................................. . (95)6.1选择题............................................................. ............................................................... .................956.2填空题............................................................. ............................................................... .................956.3编程题............................................................. ............................................................... .. (95)III第7章用函数实现模块化程序设计.............................................................. .. (100)7.1选择题............................................................. ............................................................... ...............1007.2填空题............................................................. ............................................................... ...............1007.3编程题............................................................. ............................................................... ...............100第8章善于使用指针............................................................. ............................................................... (104)8.1选择题............................................................. ............................................................... ...............1048.2填空题............................................................. ............................................................... ...............1048.3编程题............................................................. ............................................................... ...............104第9章结构体............................................................. ............................................................... . (106)9.1选择题............................................................. ............................................................... ...............1069.2填空题............................................................. ..............................................................................1069.3编程题............................................................. ............................................................... ...............106第10章利用文件保存数据............................................................. .. (107)10.1选择题............................................................. ............................................................... .............10710.2填空题............................................................. ............................................................... .............10710.3编程题............................................................. ............................................................... . (107)IV第一部分习题第1章C语言概述1.1选择题1.以下说法中正确的是()。
大学C语言期末考试练习题(带详解答案)(1)
计
A)\’
B)\0 C)\n
D)\\
D 基
本
6) 8) 设先有定义:int a=10;则表达式a+=a *=a的值为____.
数 据
A)10
B)100 C)1000
D)200
C 类
型 9) 设先有定义:int a=10;则表达式(++a)+(a- -)的值为____.
与
运 算
A)20
B)21 C)22
型
与
printf("x=%d,a=%d,b=%d\n",x,a,b);
运 算
}
符
返回目录
C
● 填空题
语
0 5.以下程序的执行结果是___________。
言 程
#include<stdio.h>
序
main( )
设 计
{
基
float f1,f2,f3,f4;
D)19
符
返回目录
C
● 单项选择题
10) 设先有定义:int y=3,x=3,z=1;则语句:
语 言
D printf(“%d %d\n”,(++x,y++),z+2); 的输出结果为____.
程 序
A)3 4
B)4 2 C)4 3
D)3 3
设
计 11)假定x、y、z、m均为int型变量,有如下程序段:
● 单项选择题
C
3) 某C程序由一个主函数main( )和一个自定义函数max( )组
语
D 成,则该程序 ____.
言
A)总是从max( )函数开始执行
2022年四川省成都市全国计算机等级考试C语言程序设计真题(含答案)
2022年四川省成都市全国计算机等级考试C语言程序设计真题(含答案) 学校:________ 班级:________ 姓名:________ 考号:________一、单选题(12题)1.第3题已知:int c[3][4];则对数组元素引用正确的是A.c[1][4]B.c[1.5][0]C.c[1+0][0]D.以上表达都错误2. 若有以下定义;char a;int b; float c;double d;则表达式“a*b+d-c”值的类型为( )A.floatB.intC.charD.double3.有以下程序:main{ int x,i;for(i=l;i<=50;i++){ x=i:if(x%2=0)if(x%3=0)if(X%7=0)printf(”%d,i)”;}}输出结果是( )。
A.28B.27C.42D.4l4.有以下程序:#include <stdio.h>main(){int i,t[ ][3]={9,8,7,6,5,4,3,2,1};for(i=0; i<3; i++)printf(“%d ”,t[2-i][i]);}程序的运行结果是()。
A.3 5 7B.7 5 3C.3 6 9D.7 5 15.以下说法正确的是()。
A.C语言只接受十进制的数B.C语言只接受八进制、十进制、十六进制的数C.C语言接受除二进制之外任何进制的数D.C语言接受任何进制的数6.printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。
如果字符串长度大于5,则输出按方式()。
A.从左起输出该字串,右补空格B.按原字符长从左向右全部输出C.右对齐输出该字串,左补空格D.输出错误信息7.若有定义:int a,h;通过语句:scanf(”%d;%d”,&a,&B.;,能把整数3赋给变量a,5赋给变量b的输入数据是()。
A.3 5B.3,5C.3;5D.358.以下叙述中错误的是( )。
成都信息工程学院C语言题库答案
第九次课上课程序及习题参考程序1、一维数组的下标法访问:int main(void){int a[10];int i;for(i=0; i<10; i++){scanf("%d", &a[i]);}for(i=0; i<10; i++){printf("%d", a[i]);}return 0;}2、一维数组的指针法访问:int main(void){int a[10];int *p;for(p=a;p<(a+10);p++){scanf("%d", p);}for(p=a;p<(a+10);p++){printf("%d ", *p);}return 0;}3、冒泡排序中指针做形参#include <stdio.h>void bubble_sort(int arr[], int n);int main(void){int arr[10], i;printf("Please input 10 numbers:\n");for ( i = 0; i < 10; i++)scanf("%d", &arr[i]);}bubble_sort(arr, 10);printf("The sorted numbers:\n");for ( i = 0; i< 10; i++){printf("%4d", arr[i]);}printf("\n");return 0;}void bubble_sort(int *p, int n){int i, j, temp;for (i = 0; i < n - 1; i++){for ( j = 0; j< n - i - 1; j++){if(p[j] > p[j+1]){temp = p[j];p[j] = p[j+1];p[[j+1] = temp;}}}}4、有序表的有序插入#include <stdio.h>void insert(int a[], int n, int num);int main(void){int a[6], num, i;printf("Input array(5):\n");for (i = 0; i < 5; i++){scanf("%d", &a[i]);printf("Input the insert num:");scanf("%d", &num);insert(a, 6, num);printf("Output:\n");for (i = 0; i < 6; i++){printf("%d ", a[i]);}printf("\n");return 0;}从前向后找void insert(int a[], int n, int num){int i, j;i=0;while (num > a[i]) /*寻找位置*/{i++;}for (j=n-1; j>i; j--) /*移动*/{a[j] = a[j-1];}a[i] = num; /*插入*/}从后向前找void insert(int a[], int n, int num){int i;i = n-1;while (i > 0 && num < a[i-1]) /*寻找和移动*/ {a[i] = a[i-1];i--;}a[i] = num;}使用指针:#include <stdio.h>void insert(int a[], int n, int num);int main(void){int a[6], num, i;printf("Input array(5):\n");for (i = 0; i < 5; i++){scanf("%d", &a[i]);}printf("Input the insert num:");scanf("%d", &num);insert(a, 6, num);printf("Output:\n");for (i = 0; i < 6; i++){printf("%d ", a[i]);}printf("\n");return 0;}void insert(int *p, int n, int num){int i;i = n-1;while (i > 0 && num < p[i-1]){p[i] = p[i-1];i--;}p[i] = num;}5、题库59题,编写一程序P2-217.C实现以下功能求任意的一个m×m矩阵的对角线上元素之和#include <stdio.h>int main(void){int arr[20][20];int i, j, m, sum;printf("Please input m: ");scanf("%d", &m);printf("\nPlease input array:\n");for (i = 0; i < m; i++){for (j = 0; j < m; j++){scanf("%d", &arr[i][j]);}}sum = 0;for (i = 0; i < m; i++){for (j = 0; j < m; j++){if (i == j || i + j == m - 1){sum += arr[i][j];}}}printf("\nsum=%d\n", sum);return 0;}使用行指针和列指针:#include <stdio.h>int main(void){int arr[20][20], *p1, (*p2)[20];int i, j, m, sum;printf("Please input m: ");scanf("%d", &m);printf("\nPlease input array:\n");p1 = *arr;for (i = 0; i < m; i++){for (j = 0; j < m; j++){scanf("%d", p1+i*20+j);}}p2 = arr;sum = 0;for (i = 0; i < m; i++){for (j = 0; j < m; j++){if (i == j || i + j == m - 1){sum += *(*(p2 + i) + j);}}}printf("\nsum=%d\n", sum);return 0;}6、输入5个字符串,按升序排序后输出,用字符数组处理#include <stdio.h>#include <string.h>void bubble_sort(char str[][10], int n);int main(void){int i;char str[5][10];for (i=0; i<5; i++){gets(str[i]);}bubble_sort(str, 5);for (i=0; i<5; i++){puts(str[i]);}return 0;}void bubble_sort(char str[][10], int n){int i, j;char temp[10];for (i=0; i<n-1; i++){for (j=0; j<n-1-i; j++){if (strcmp(str[j], str[j+1]) > 0){strcpy(temp, str[j]);strcpy(str[j], str[j+1]);strcpy(str[j+1], temp);}}}}7、输入5个字符串,按升序排序后输出,用指针数组完成#include <stdio.h>#include <string.h>void bubble_sort(char *ps[], int n);int main(void){int i;char str[5][81], *ptr[5];for (i = 0; i < 5; i++){ptr[i] = str[i];}printf("Input 5 strings:\n");for (i = 0; i < 5; i++){gets(ptr[i]);}bubble_sort(ptr, 5);printf("---------------------------\n");for (i = 0; i < 5; i++){puts(ptr[i]);}return 0;}void bubble_sort(char *ps[], int n){int i, j;char *temp;for (i=0; i<n-1; i++){for (j=0; j<n-1-i; j++){if (strcmp(ps[j], ps[j+1]) > 0){temp = ps[j];ps[j] = ps[j + 1];ps[j + 1] = temp;}}}}8、带参数的main()函数#include <stdio.h>int main(int argc, char *argv[]){int i;printf("The program name is:%s\n", argv[0]);if (argc > 1){printf("The other arguments are following:\n");for (i = 1; i<argc; i++){printf("%s\n", argv[i]);}}return 0;}习题9-7参考程序题库104题,输入5个字符串,排序,不能使用strcpy()和strcmp()函数p7-781.c只使用字符数组#include <stdio.h>void bubble_sort(char s[][81], int n);int str_compare(char s1[], char s2[]);void str_copy(char s1[], char s2[]);int main(void){char str[5][81];printf("Input 5 strings:\n");for (i = 0; i < 5; i++){gets(str[i]);}bubble_sort(str, 5);printf("---------------------------\n");for (i = 0; i < 5; i++){puts(str[i]);}return 0;}void bubble_sort(char s[][81], int n){int i, j;char temp[81];for (i=0; i<n-1; i++){for (j=0; j<n-1-i; j++){if (str_compare(s[j], s[j+1]) > 0){str_copy(temp, s[j]);str_copy(s[j], s[j+1]);str_copy(s[j+1], temp);}}}}int str_compare(char s1[], char s2[]){int i;i = 0;while ( s1[i] == s2[i]){i++;return (s1[i] - s2[i]);}void str_copy(char s1[], char s2[]) {int i;for (i = 0; s2[i] != '\0'; i++){s1[i] = s2[i];}s1[i] = '\0';}使用指针数组#include <stdio.h>void bubble_sort(char *ps[], int n);int str_compare(char *p1, char *p2);int main(void){int i;char str[5][81], *ptr[5];for (i = 0; i < 5; i++){ptr[i] = str[i];}printf("Input 5 strings:\n");for (i = 0; i < 5; i++){gets(ptr[i]);}bubble_sort(ptr, 5);printf("---------------------------\n");for (i = 0; i < 5; i++){puts(ptr[i]);}return 0;}void bubble_sort(char *ps[], int n){int i, j;char *temp;for (i=0; i<n-1; i++){for (j=0; j<n-1-i; j++){if (str_compare(ps[j], ps[j+1]) > 0){temp = ps[j];ps[j] = ps[j + 1];ps[j + 1] = temp;}}}}int str_compare(char *p1, char *p2){while ( (*p1) == (*p2)){p1++;p2++;}return ((*p1) - (*p2));}11。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
编写一程序P111.C实现以下功能x(x只考虑整数int且必须定义为int、但F(x)完全可能超过int的表示范围)通过键盘输入(输入前给出提示Please input x:),然后计算并在屏幕上输出函数值。
编程可用素材:printf("Please input x: ")...、printf("\nF(...) = ..."...。
┌-5x+27 (x<0)F(x)= ├7909 (x=0)└2x-1 (x>0)程序的运行效果应类似地如图1所示,图1中的3是从键盘输入的内容。
#include <stdio.h>int main(void){int x; //x存储自变量x的值double Fx; //Fx存储函数值F(x)/* 从键盘上读入x的值*/printf("Please input x:"); //在屏幕上显示提示输入x的信息,告诉用户需要做的事scanf("%d", &x); //从键盘读入x的值/* 根据题目里给出的计算公式计算F(x) */if (x < 0) //如果x<0{Fx = -5.0 * x + 27; //x<0时的F(x)计算公式}else if (0 == x) //否则,若x等于0{Fx = 7909; //x=0时的F(x)计算公式}else{Fx = 2.0 * x - 1; //x>0时的F(x)计算公式}/* 将计算结果按题目的要求输出*/printf("\nF(%d) = %.0f", x, Fx);return 0;}编写一程序P113.C实现以下功能已知某银行整存整取存款不同期限的年息利率分别为:3.15%期限一年,3. 63%期限二年, 4.02%期限三年,4.69%期限五年,5.36%期限八年。
从键盘上输入存钱的本金(以元为单位,必须定义为int且应考虑金额很大的情况)和存款期限(只考虑1,2,3,5,8),求到期时能从银行得到的利息(以元为单位,应考虑有小数,不计复利)。
编程可用素材:printf("\nPlease input benjin,cunqi:")...、print f("\nlixi = ... yuan"...。
程序的运行效果应类似地如图1所示,图1中的10000,8是从键盘输入的内容。
#include <stdio.h>int main(void){int benjin, cunqi;double lixi, lilv;printf("\nPlease input benjin,cunqi:");scanf("%d,%d", &benjin, &cunqi);if (1 == cunqi){lilv = 3.15 / 100.0;}else if (2 == cunqi){lilv = 3.63 / 100.0;}else if (3 == cunqi){lilv = 4.02 / 100.0;}else if (5 == cunqi){lilv = 4.69 / 100.0;}else if (8 == cunqi){lilv = 5.36 / 100.0;}lixi = benjin * lilv * cunqi;printf("\nlixi = %.2f yuan\n", lixi);return 0;}编写一程序P114.C实现以下功能编写一个简单计算器程序,输入格式为:data1 op data2。
其中data1和da ta2是参加运算的两个数(data1、data2必须定义为int,但二者相加可能超出int 能表示的范围),op为运算符,它的取值只能是+、-、*、/、%。
编程可用素材:printf("Please input data1 op data2: ")...、printf("\nError! chu shu wei 0.\n")...。
程序的运行效果应类似地如图1、图2、图3、图4所示,图1中的3000 + 2 000、图2中的3000 % 2000、图3中的3000 % 0和图4中的3000 / 0是从键盘输入的内容。
#include <stdio.h>#include <stdlib.h>int main(void){int data1, data2;double result;char op;printf("Please input data1 op data2: ");scanf("%d %c %d", &data1, &op, &data2);switch (op){case '+':result = (double)data1 + data2;break;case '-':result = (double)data1 - data2;break;case '*':result = (double)data1 * data2;break;case '%':if (0 == data2){printf("\nError! chu shu wei 0.\n");exit(1);}else{result = data1 % data2;}break;case '/':if (0 == data2){printf("\nError! chu shu wei 0.\n");exit(1);}else{printf("\n%d%c%d=%.2f", data1, op, data2, (double)data1 / data2);return 0;}}printf("\n%d%c%d=%f\n", data1, op, data2, result);return 0;}编写一程序P702.C实现以下功能输入月份,打印2003年该月有几天。
当输入的月份超范围时,应显示“Inv alid month input”。
编程可用素材:printf("please input the month number: ")...、printf("\nInvalid month input !\n")...、printf("\n 2003.... has ... days\n"...。
程序的运行效果应类似地如图1和图2所示,图1中的4和图2中的13是从键盘输入的内容。
#include<stdio.h>int main(void){int month, day;printf("please input the month number: ");scanf("%d", &month);switch (month){case 1:case 3:case 5:case 7:case 8:case 10:case 12:day = 31;break;case 4:case 6:case 9:case 11:day = 30;break;case 2:day = 28;break;default :day = -1;}if (-1 == day){printf("\nInvalid month input !\n");}else{printf("\n 2003.%d has %d days\n", month, day);}return 0;}编写一程序P703.C实现以下功能已知某公司员工的保底薪水为500,某月所接工程的利润profit(整数)与利润提成的关系如下(计量单位:元):profit≤1000没有提成;1000<profit≤2000提成10%;2000<profit≤5000提成15%;5000<profit≤10000提成20%;10000<profit提成25%。
请根据输入的利润计算员工的薪水。
编程可用素材:printf("Input profi t: ")...、printf("\nsalary=...\n"...。
程序的运行效果应类似地如图1所示,图1中的2000是从键盘输入的内容。
#include<stdio.h>int main(void){int profit, grade;double salary = 500;printf("Input profit: ");scanf("%d", &profit);grade = (profit - 1) / 1000;switch (grade){case 0:break;case 1:salary += profit * 0.1;break;case 2:case 3:case 4:salary += profit * 0.15;break;case 5:case 6:case 7:case 8:case 9:salary += profit * 0.2;break;default:salary += profit * 0.25;}printf("\nsalary=%.2f\n", salary);return 0;}编写一程序P708.C实现以下功能输入一个三位正整数,然后逆序输出。
如输入123,则输出321。
编程可用素材:printf("Input an integer: ")...、printf("\nThe result is ...。
程序的运行效果应类似地如图1所示,图1中的750是从键盘输入的内容。
#include <stdio.h>int main(void){int num, bai, shi, ge;printf("Input an integer: ");scanf("%d", &num);bai = num / 100;shi = num % 100 / 10;ge = num % 10;printf("\nThe result is %d%d%d\n", ge, shi, bai);return 0;}编写一程序P709.C实现以下功能输入一个华氏温度,要求输出摄氏温度,计算公式为c=5(F-32)/9。