成都信息工程学院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)└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。
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语言程序,实现以下功能:输入一个字符串,判断它是否是回文(正读和反读都一样的字符串)。
