C语言期末复习卷习题教学内容
C语言期末复习.doc
C语言期末复习.doc第一章C语言概述一、选择题1、C语言程序由什么组成()A、子程序B、主程序和子程序C、函数D、过程2、源程序要正确地运行,必须要有什么函数()A、Printf函数B、自定义的函数C、main函数D、不需要函数3、指出下面哪些是合法的标识符()A、3abB、intC、ABCD、a_3E、sum..aF、#abcG、_stu2H、abc f二、问答题1、C语言程序由哪几部分组成?C语言程序结构有什么特点?参考答案一、选择题1、C2、C二、问答题见教案第二章基本数据类型、运算符及表达式一、选择题1、C语言中的数据的基本类型包括()A、整型、实型、字符型和逻辑型B、整型、实型、字符型和结构体C、整型、实型、字符型和枚举型D、整型、实型、字符型和指针型2、在C语言中,不合法的int型常量是()A、32767B、0678C、0XABCD、32768L3、在C语言中,运算对象必须是整型数的运算符是()A、%B、\\C、%和\\D、**4、若已定义X和Y为double型,则表达式:x=1,y=x+3/2的值是()A、1B、2C、2.0D、2.55、若t为double类型,表达式t=1,t+5,t++的值就是()A、1B、6.0D、1.06、若有定义:int a=10,b=9,c=8;执行下面两条语句c=(a-=(b-5));c=(a%11)+(b=3);后,变量b的值为()A、9B、4C、3D、27、设int a=12,则执行完语句a+=a-=a*a后,a的值是_____A、22B、264C、144D、-264二、问答题:1、简述‘a’和“a”的区别。
参考答案一、选择题1、C2、D3、A4、D5、D6、C7、D二、问答题‘a’是字符常量“a”是字符串常量C语言规定:在每一个字符串的结尾加一个“字符串结束标志”,以便系统据此判断字符串是否结束。
C语言规定以字符’\\0’作为字符串结束标志。
如果有一个字符串”china”,实际上在内存中是占内存不是5个字节,而是6个字节,最后一个是’\\0’。
C语言程序设计期末复习题及参考答案
C语言程序设计期末复习题及参考答案1. 若变量a的值为10,b的值为20,则表达式a++ + ++b的结果是多少?答案:32解析:在表达式a++ + ++b中,a++表示先使用变量a的值,然后再对a的值进行自增操作;++b表示先对变量b的值进行自增操作,然后再使用变量b的值。
因此,a++ + ++b相当于10 + 21,结果为32。
2. 字符串连接函数strcat()的原型和功能是什么?答案:strcat()函数的原型为char *strcat(char *str1, const char *str2),其功能是将字符串str2追加到字符串str1的末尾,并返回拼接后的字符串起始地址。
3. 请简述switch语句的用法及其与if语句的异同点。
答案:switch语句用于根据不同的情况执行不同的代码分支。
其语法结构为:```cswitch (表达式){case 值1:代码块1;break;case 值2:代码块2;break;...default:默认代码块;break;}```switch语句与if语句的异同点如下:- 相同点:都用于根据条件执行不同的代码分支;- 不同点:1)switch语句的条件表达式只能是整型或字符型,而if语句的条件表达式可以是任意的关系表达式;2)switch语句针对的是多个离散的取值,if语句则根据条件的真假执行对应的代码;3)switch语句执行完一个匹配的分支后会跳出整个switch语句,而if语句在执行条件为真的分支后会继续执行后续的代码。
4. 请写出一个函数,实现将字符串中的大写字母转换为小写字母的功能。
答案:示例代码如下:```cvoid convertToLower(char *str){int i;for (i = 0; str[i] != '\0'; i++){if (str[i] >= 'A' && str[i] <= 'Z'){str[i] += 'a' - 'A';}}}// 使用示例:int main(){char str[] = "Hello World";convertToLower(str);printf("%s\n", str); // 输出:hello worldreturn 0;}```5. 请编写一个程序,从键盘输入一个整数n,然后计算并输出1到n之间的所有整数的累加和。
C语言期末考试题及答案教案资料
C语⾔期末考试题及答案教案资料1、给定n个数据, 求最⼩值出现的位置(如果最⼩值出现多次,求出第⼀次出现的位置即可)。
最⼤值第三⾏i<=n五⾏k+1 2、编写程序求⽆理数e的值并输出。
计算公式为:e=1+1/1!+1/2!+1/3!+......+1/n!当1/n!<0.000001时e=2.718282。
3、求⼀批数中最⼤值和最⼩值的积。
4、某⼀正数的值保留2位⼩数,对第三位进⾏四舍五⼊。
5、从键盘上输⼊任意实数x,求出其所对应的函数值。
z=(x-4)的⼆次幂(x>4) z=x的⼋次幂(x>-4)z=z=4/(x*(x+1))(x>-10)z=|x|+20(其他)6、求出N×M整型数组的最⼤元素及其所在的⾏坐标及列坐标(如果最⼤元素不唯⼀,选择位置在最前⾯的⼀个)。
例如:输⼊的数组为:1 2 34 15 612 18 910 11 2求出的最⼤数为18,⾏坐标为2,列坐标为1。
7、求⼀个n位⾃然数的各位数字的积。
(n 是⼩于10的⾃然数)8、计算n门课程的平均值,计算结果作为函数值返回。
例如:若有5门课程的成绩是:92,76,69,58,88,则函数的值为76.599998。
9、求⼀批数中⼩于平均值的数的个数。
10、编写函数判断⼀个整数m的各位数字之和能否被7整除,可以被7整除则返回1,否则返回0。
调⽤该函数找出100~200之间满⾜条件的所有数。
11、请编⼀个函数void fun(int tt[M][N],int pp[N]),tt指向⼀个M⾏N列的⼆维数组,求出⼆维数组每列中最⼤元素,并依次放⼊pp所指⼀维数组中。
⼆维数组中的数已在主函数中赋予。
12、编写函数fun⽤⽐较法对主程序中⽤户输⼊的具有10个数据的数组a按由⼤到⼩排序,并在主程序中输出排序结果。
13、编写main程序调⽤函数fact求解从m个元素选n个元素的组合数的个数。
计算公式是:组合数=m!/(n!.(m-n)!)。
c语言期末试题及答案及详解
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语言程序设计期末复习
②doudb!le=
float
f &&
int
(i+1)
int
③dou4b.0le
int
*i
char
+ c double
【14】 A) double, double, double (或float)
B) int, double, char
✓C) int, int, double (或float) D) unsigned, unsigned, int
② 其他可打印(可显示)的字符,如汉字等自然语言 符号(作为字符串的内容)
[注意] C/C++语言是区分大小的语言 !
(详见P377 附录B)
8
zxl.xmu.2014
关键字
关键字/保留字 —— C语言程序中有特殊含义 的英文单词,主要用于构成语句、定义存储类 型和数据类型。
✓ C语言中仅有37个关键字
else continue;
printf("%4d",n); }
break; 仅输出: 100 }
输出【:131】00A1)01fo1r0(3n=1100401;0(n6%1037)&…&…n<=200; n++) printf("%4d",n); B) for (n=100; (n%3)||n<=2仅00输; n出++:) p1ri0n0tf1("0%1 4d",n);
非法字符举例:M.D.John,$123,1AB,d e
11
zxl@xmu
运算符(共34种,详见P378《附录D》)
• 目/元——运算时所需运算对象(操 作数)的个数。
C语言期末考试复习资料
C语言期末考试复习资料C语言复习摘要一、数据类型:基本类型(整型、实型、字符型、枚举类型),构造类型(数组、结构体、共用体)、指针类型、空类型。
基本类型也叫简单类型,构造类型也叫复杂类型二、标识符:标识符只能由字母、下划线、数字构成,且必须以字母或下划线开头,且对字母的大小写敏感。
三、常量1、整型常量,如:32,0x32,0X32,0x3f,0xea,8L,8l,0672、实型常量,如:3.14,1e23,0.8E8,0.8E-8,0.8E+83、字符常量,如:‘a’,‘\n’, ‘\w’,‘\\’,‘\0’4、字符串常量,如:“windows”,“a”,(其赋值表达式和赋值语句中其本质是一个地址常量)5、地址常量,若有定义:int k,a[10];char s[20];则:&k,a,s,NULL都是地址常量6、符号常量,用宏定义实现,如:#define PAI 3.14159267、以下都是非法常量:0xfg,3.1e2.8,‘aw’,‘w\’,0x,068四、表达式(要点:先确定表达式的类型,再确定表达式的值的类型,最后确定表达式的值):1、算术表达式(应注意变量类型的自动转换——原则:低级向高级转换):(1)、整型表达式:参加运算的都是整型量,结果也是整型数。
如:x+20*9+3(2)、实型表达式:参加运算的都是实型量,运算过程中先转换成double型,结果也是double型。
如:x+20*9+3.0,x+20*9+sqrt(3)2、赋值表达式:将赋值运算符“=”右边的值赋给左边的变量,其值为赋值后左边变量的值,类型为左边变量的类型。
如:x=3(注:若x为整型变量,则该表达式的值为整型,若x实型变量,则该表达式的值为实型)3、逻辑表达式:用逻辑运算符(!,&&,||)连接的整型量,结果为整数(0或1)。
逻辑表达式可认为是整型表达式的一种特殊形式。
如:((x=3)&&(y=0))4、关系表达式:用关系运算符将两个表达式连接起来的式子,结果为整数(0或1)。
C语言程序设计期末考试复习题及答案
C语言考试期末考试复习题及答案一、选择题(1) 一个C语言程序总是从(C )开始执行A) 书写顺序的第一个函数B) 书写顺序的第一条执行语句C) 主函数main()D) 不确定(2) 设int x=3,y=4,z=5,则下列表达式中的值为0的是 ( D )A) ‘x’&&’y’B) x||y+z&&y-z C) x<=yD) !((x<y)&&!z||1)(3) 执行以下程序段后,i的值是 ( C )int i=10。
switch(i+1){ case 10: i++。
break。
case 11: ++i。
case 12: ++i。
break。
default : i=i+1。
}A) 11 B) 13 C) 12 D) 14(4) 语句while(!e)。
中的条件!e等价于 ( A )A) e==0 B)e!=1 C) e!=0D) 运行时出错(5) 用 int a[4]={1,2}。
对数组进行初始化后,数组元素a[3]的值是 ( B )A) 随机值B) 0 C) 1 D) F(6) 在执行char str[10]=“china\0”; strlen(str)的结果是 ( A )A)5 B) 6 D) 7 D 9(7) 若有定义,char *p=”computer”。
则语句printf(“%c”,*(p+2))运行结果是( B )A) 随机值B) m C)o D) omputer(8) 在以下函数调用语句中fun1(x,10,(x,10),fun2(y,10,(y,10)))。
函数fun1参数的个数为 ( B )A) 8 B) 4C) 5 D) 编译出错(9) 在说明一个结构体变量时系统分配给它的存储空间是( D )A)该结构体中第一个成员变量所需存储空间 B) 该结构体中最后一个成员变量所需存储空间C)该结构体中占用最大存储空间的成员变量所需存储空间D) 该结构体中所有成员变量所需存储空间的总和1. 用C语言编写的代码程序( B )A)可立即执行 B)是一个源程序 C)经过编译即可执行 D)经过编译解释才能执行2. C语言中用于结构化程序设计的三种基本结构是( A )A)顺序结构、选择结构、循环结构 B)if、switch、break C)for、while、do-while D)if、for、continue3. 以下定义语句中正确的是( C )A)char a='A'b='B'。
[新]C语言期末复习,经典练习题+知识点总结+模拟考题。三位一体,完胜c语言!!!!{考期必备神器}
C语言期末复习(平时练习答案)[特别适用于千千万北航学子]考试重点:(编程题)排序,选择与冒泡排序,,各种进制转换。
]第二次大作业—前驱、后继字符1. 【问题描述】从键盘输入一个字符,求出它的前驱和后继字符(按照ASCII码值排序),并按照从小到大的顺序输出这三个字符和对应的ASCII值。
【输入形式】从键盘输入一个字符【输出形式】按两行输出:第一行按照从小到大的顺序输出这三个字符,并以一个空格隔开;第二行按照从小到大的顺序输出三个字符对应的ASCII 值,并以一个空格隔开。
【输入样例】 b 【输出样例】 a b c 97 98 99 【样例说明】输入字符b,b的前驱字符是a,后继字符是c,第一行按照从小到大的顺序输出a b c;第二行输出对应的ASCII值97 98 99 【评分标准】结果完全正确得20分,每个测试点4分。
提交程序名为:c0103.c。
//*从键盘输入一个字符,求出它的前驱和后继字符(按照ASCII码值排序),并按照从小到大的顺序输出这三个字符和对应的ASCII值。
*//#include<stdio.h>int main(){char c=" ";printf("Input a number:");scanf("%c",&c); //*从键盘输入一个字符*//printf(" %c %c %c\n",c-1,c,c+1);//*第一行按照从小到大的顺序输出这三个字符,并以一个空格隔开*//printf(" %d %d %d", c-1,c,c+1);//*第二行按照从小到大的顺序输出三个字符对应的ASCII值,并以一个空格隔开。
*//return 0;}当前编程题:第二次大作业---数值变换2. 【问题描述】编写一程序,从键盘输入输入一个三位正整数,然后反向输出对应的数,如果输入的数不是三位正整数,则输出-1。
C语言设计期末考试指导(有答案版本)
C语言程序设计复习指导一、程序设计题1、多项式求和(积)例1:3!+5!+7!+...+N!,求直到S>=680000为止的奇数N。
(N=11)main(){int i,j;long s,t=0;for(i=3;;i=i+2){s=1;for(j=1;j<=i;j++)s=s*j;t=t+s;if(t>=680000)break;}printf("%d",i);}例2:请编程计算1-1/2+1/3-1/4+1/5-...+1/99。
(精确到小数点后3位)。
(0.698)main(){int i,t=1;float s=0;for(i=1;i<=99;i++){s=s+1.0*t/i;t=-t;}printf("%.3f",s);getch();}例3:1+1/3+1/9+1/27…+1/n>1.489时最小的n。
(n=81)main(){int i;float s=0;for(i=1;;i=i*3){s=s+1.0/i;if(s>1.489)break;}printf("%d",i);getch();}例4:求4*(1-1/3+1/5-1/7+…)的值,直到最后一项的绝对值小于10的负6次方为止。
(3.141594) #include "math.h"main(){long i,t=1;float s=0;for(i=1;fabs(1.0*t/i)>=0.000001;i=i+2){s=s+1.0*t/i;t=-t;}printf("%f",4*s);getch();}2、穷举法的应用例1:百钱百鸡问题。
例2:大作业本单价4元,中作业本单价2元,小作业本单价1元,当天共卖出大中小作业本30本,每种至少卖出1本,金额100元,问大中小作业本共有几种组合情况。
计算机C语言期末考试复习试题及答案[1]
C语言复习题【程序填空】题目:利用全局变量计算长方体的体积及三个面的面积。
—*/int s1,s2,s3;int vs(int a,int b,int c){int v;/***********SPACE***********/v=【?】;s1=a*b;/***********SPACE***********/s2=【?】;s3=a*c;return v;}main(){int v,l,w,h;clrscr();printf("\ninput length,width andheight:”);/***********SPACE***********/scanf("%d%d%d”,【?】,&w,&h);/***********SPACE***********/v=【?】;printf("v=%d s1=%d s2=%ds3=%d\n",v,s1,s2,s3);getch();}答案:=======(答案1)=======a*b*c=========或=========a *b *c=======(答案2)=======b*c=========或=========b *c=======(答案3)=======&l=======(答案4)=======vs(l,w,h)=========或=========vs(l , w ,h )第2题(12.0分)题号:441/*----—-—-—-—--—--------——————-—-—-——--——-—--—-—-———-【程序填空】题目:给定程序中函数fun的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。
—*/#include <conio.h〉#include <stdio.h>void fun (long s,long *t){long sl=10;s /= 10;/***********SPACE***********/*t = s 【?】10;while(s>0)/***********SPACE***********/{s = 【?】;/***********SPACE***********/*t = s%10*sl【?】;/***********SPACE***********/sl = sl 【?】10;}}main(){long s, t;clrscr();printf(”\nPlease enter s:”); scanf("%ld”,&s);fun(s, &t);printf("The result is: %ld\n”, t);}答案:=======(答案1)=======%=======(答案2)=======s/100四、程序改错共2题(共计22分)第1题(11.0分)题号:383/*——————-————-—-—-——-—--——--——---—--—--—-----———-—-—-【程序改错】题目:给定程序的功能是:读入一行英文文本,将其中每个单词的最后一个字母改成大写,然后输出此文本行(这里的“单词”是指由空格隔开的字符串)。
大一期末C语言程序设计基础题库与总结复习资料
C语言题库第一章计算机语言经历发展阶段:机器语言、符号语言、高级语言程序结构有3种:顺序结构,选择结构,循环结构C语言的特点:允许直接访问物理地址。
【C语言中含有的位和指针运算,能够直接对内存地址进行访问。
】不是C语言的特点的是:能够编制出功能复杂的程序【所有程序都可以,不算特点】Main:主函数,是所有程序运行的入口、起点。
一个C语言程序必须只有一个main函数。
程序总是从main函数开始执行,main函数可以放任何位置,到main函数结束。
函数体由花括号括起来结束标志:returnreturn 0的作用是:当main函数执行结束前将整数0作为函数值返回到调用函数处return(z)的作用是:将z的值作为max的函数值返回给调用max 函数的函数。
只有通过return(z)才能把求出的z值作为函数值并返回调用它的main函数中C语言程序的结构:由一个或多个源程序(C语言编写的程序,也可以叫编译单位)文件组成(源程序文件中包含:预处理指令、全局声明、函数定义)函数是C程序的主要组成部分(也是基本单位),C语言由函数组成。
函数包括两部分:函数首部、函数体C语言本身不提供输入输出语句,输入输出的操作是有库函数scanf 和printf等函数来完成的。
程序应包含注释#define和printf都不是C语句C语言程序的运行经过:编辑(edit)、编译(compile)、连接(link)【C语言中是build】、执行(execute)。
C语言源程序文件的后缀是.cpp,经过编译之后,生成后缀为.obj 的目标文件,经连接生成后缀.exe的可执行文件C语言的储存类型包括register、extern、statis和auto基础知识6、用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( C )。
A. 生成可执行目标文件B. 生成目标文件C. 输出运行结果D. 自动保存源文件运算优先级:!(非)>算数(如%)>关系>逻辑>赋值运算符(低)空语句:只有分号组成的语句,即一个分号。
c语言期末复习题纲
c语言期末复习题纲C语言期末复习题纲一、C语言基础1. C语言的发展历程2. C语言的特点3. C语言的基本组成4. C语言的编译和运行过程二、数据类型与变量1. 基本数据类型- 整型(int)- 浮点型(float, double)- 字符型(char)2. 变量的定义和声明3. 变量的初始化4. 常量的定义和使用三、运算符与表达式1. 算术运算符2. 赋值运算符3. 比较运算符4. 逻辑运算符5. 位运算符6. 条件运算符7. 表达式的求值和类型转换四、控制结构1. 顺序结构2. 分支结构- if语句- switch语句3. 循环结构- while循环- do-while循环- for循环4. 控制语句- break- continue- goto五、数组1. 一维数组的定义和使用2. 二维数组的定义和使用3. 数组的初始化4. 数组的内存分配5. 数组的遍历和搜索六、函数1. 函数的定义和声明2. 函数的参数传递- 值传递- 地址传递3. 函数的返回值4. 递归函数5. 函数的嵌套调用6. 函数的指针七、指针1. 指针的基本概念2. 指针的声明和初始化3. 指针与数组4. 指针与函数5. 指针的指针6. 动态内存分配八、结构体与联合体1. 结构体的定义和使用2. 结构体数组3. 结构体与指针4. 结构体作为函数参数5. 联合体的定义和使用九、预处理指令1. 宏定义(#define)2. 文件包含(#include)3. 条件编译(#ifdef, #ifndef)十、文件操作1. 文件的打开和关闭2. 文件的读写操作3. 文件的定位4. 文件的错误处理十一、C语言中的高级特性1. 位域2. 枚举类型3. 静态存储类4. 动态存储类5. 自动存储类6. 外部存储类十二、C语言的应用1. C语言在系统编程中的应用2. C语言在嵌入式编程中的应用3. C语言在图形编程中的应用结束语:本复习题纲涵盖了C语言的主要知识点,希望能够帮助同学们系统地回顾和巩固C语言的学习内容,为期末考试做好充分的准备。
C语言期末复习试题及答案
C语言期末复习题(有答案)★●不仅要会做这些题,更重要的是要掌握其相关知识点。
典型程序一定要会默写。
●看题要细心;注意后续题;程序填空、程序改错题要保存;程序设计题要运行且要保存;勿删注释符,但要删去非法符;交卷前要检查!一、一般填空题1-1、调用fopen函数打开一文本文件,在“打开模式”这一项中,为输出(写)而打开需填入【1】.1-2、调用fopen函数打开一文本文件,在“打开模式”这一项中,为追加而打开需填入【1】.1-3、fopen函数的原形在头文件【1】中.1-4、getchar函数的原形在头文件【1】中.1-5、sqrt函数的原形在头文件【1】中.1-6、如果函数不要求带回值,可用【1】来定义函数返回值为空.答案:w或w+;a或a+;stdio.h ; stdio.h ; math.h ;void .2-1、字符串“\1011234\\at”的长度(字符数)是【1】.2-2、测试字符串“abc\083\\bcd”的长度值是【1】.2-3、字符串“1\\t\x43\abx44”的长度(字符数)是【1】.2-4、“a“在内存中占【1】个字节.2-5、‘a’在内存中占【1】个字节.2-6、“\71“在内存中占【1】个字节.2-7、一维数组下标的最小值是【1】;数组char a[]=“china” ;在内存应占【1】个字节。
答案:8; 3; 9; 2;1;2 ;0;6.3-1、设x=(5>1)+2, x的植为【1】.3-2、表达式‘B’+15+‘\x41’+011+0x10的值是【1】.3-3、表达式‘b’+5+‘\x42’+011+0x10的值是【1】.答案:3;171;194;4-1、if(!a)中的表达式!a等价于【1】.4_2、已知a=1,b=2,c=3,执行if(a>b>c) b=a;else b=c;a=4;b=8;后,b的值是【1】.4_3、下列程序段的执行结果依次是【1】.int x=1,y=2,a,b,z1=0,z2=2,z3=0;z1=(a=3,b=5,a>b?a++:--b,a=1);z2+=x>y?++x:++y;z3=(a=2,b=5,a>b?a++:b++,a+b);printf("%d,%d,%d\n",z1,z2,z3);4_4、若x=3;y=4;t=1;执行t = ++x||++y;后,y和t的值依次是【1】.4_5、设a=12,执行语句: a+=a-=a*a;后,a的值是【】。
【大学C语言期末考试练习题】详解答案及过程讲解 读程序函数
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语言期末考试题库及详解答案在C语言期末考试题库及详解答案C语言作为一门广泛应用的编程语言,其期末考试通常包括对基础语法、数据结构、算法设计、程序调试等方面的考察。
以下是一些典型的C语言期末考试题库题目及其详解答案,供同学们复习参考。
1. 题目:编写一个程序,实现两个整数的加法运算,并输出结果。
答案:```c#include <stdio.h>int main() {int a, b, sum;printf("请输入两个整数:");scanf("%d %d", &a, &b);sum = a + b;printf("两个整数的和是:%d\n", sum);return 0;}```2. 题目:使用循环结构实现1到100的累加,并输出结果。
答案:```c#include <stdio.h>int main() {int i, sum = 0;for (i = 1; i <= 100; i++) {sum += i;}printf("1到100的累加和是:%d\n", sum);return 0;}```3. 题目:编写一个程序,实现字符串的逆序输出。
答案:```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;}```4. 题目:使用函数实现求一个数的阶乘。
C语言程序设计期末考试复习题及答案
main()
{ int i;
for (i=0; i<3; i++)
switch (i)
{ case 1: printf("%d ", i);
case 2: printf("%d ", i);
default : printf("%d ", i); }
A)_1234_ B)_1_2 C) int_2_ D)2_int_
5.在函数调用过程中,如果函数funA调用了函数 funB,函数funB又调用了函数funA,则 ( B )
A)称为函数的直接递归调用 B)称为函数的间接递归调用
C)称为函数的循环调用 D)C语言中不允许这样的递归调用
函数fun1参数的个数为 ( B )
A) 8 B) 4
C) 5 D) 编译出错
(9) 在说明一个结构体变量时系统分配给它的存储空间是( D )
A)该结构体中第一个成员变量所需存储空间 B) 该结构体中最后一个成员变量所需存储空间
C)该结构体中占用最大存储空间的成员变量所需存储空间D) 该结构体中所有成员变量所需存储空间的总和
printf(“%d”,sum);
}
程序的运行结果是:
(3) #include<stdio.h>
main()
{ char str[ ]=”1a2b3c”;
int i;
for(i=0;str[i]!=’\0’;i++)
3. 以下定义语句中正确的是( C )
C语言期末复习卷习题
C语言期末复习卷习题 Revised by Petrel at 2021期末总复习(基础知识+程序设计部分)一.填空1.已知char ch=’A’; 则下列表达式的值是: aCh=(ch>=’A’ && ch<=’Z’)(ch+32):ch;2. 若x=1,y=2,z=3, 则表达式z+=++x+y++之值是 73.若x=2,y=3,则x%=y+3之值为 24.. 若有定义int y=3; float z=5.2, x=4.8; 则表达式y+=(int)x+x+z的值为 175. 设x,y,z为int型变量,且x=3,y=-4,z=5,请写出下列各表达式的值1)(x&&y)==(x||z) 12)!(x>y)+(y!=z)||(x+y)&&(y-z) 03)x++-y+(++z) 136. 设x,y,z为int型变量,请用C语言表达式描述下列命题1)x和y中有一个小于z (x<z&&y>z||x>z&&y<z )==12) x,y和z中有两个为负数(x<0&&y<0&&z>=0||z<0&&y<0&&x>=0||y<0&&x<0&&z>=0)==13)y是奇数y%2!=07. 下面for循环语句最多可执行 4 次For (x=0,y=0;(y!=99)&&(x<4);x++)8. 设i,j,k均为int型变量,则执行以下for语句后,k的值是 10for (i=0,j=10;i<=j;i++,j--)k=i+j;9.若已知x,y,z,m,n均为int 型变量,则执行下面语句后,x的值为 7 y 的值为 9 z的值为 7m=10 ; n=5;x=(--m==n++) --m : ++n;y=m++;z=n;10. 若有说明语句: w=1,x=2,y=3,z=4; 则表达式w>x w:z>yz:x值是 411. 若定义的函数没有返回值时,则应该在该函数定义时加上类型说明符 void12. 凡在函数中未指定存储类型的变量,其隐含的存储类别为动态存储13. 在C语言中,一个函数直接或间接地调用自身,编构成函数的递归14. 如果被调用的自定义函数和调用函数不再同一个文件中,则在应以函数的文件中应将该文件的存储类型定义成型,在调用函数的文件中将该函数说明为型。
大学C语言期末考试练习题(带详解答案)讲解
一、单项选择题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_i D.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).A、整型、实型、逻辑型B、整型、实型、逻辑型、字符型C、整型、字符型、逻辑型D、整型、实型、字符型10。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言期末复习卷习题期末总复习(基础知识+程序设计部分)一.填空1.已知char ch=’A’; 则下列表达式的值是: aCh=(ch>=’A’ && ch<=’Z’)? (ch+32):ch;2. 若x=1,y=2,z=3, 则表达式z+=++x+y++之值是 73.若x=2,y=3,则x%=y+3之值为 24.. 若有定义int y=3; float z=5.2, x=4.8; 则表达式y+=(int)x+x+z的值为 175. 设x,y,z为int型变量,且x=3,y=-4,z=5,请写出下列各表达式的值1)(x&&y)==(x||z) 12)!(x>y)+(y!=z)||(x+y)&&(y-z) 03)x++-y+(++z) 136. 设x,y,z为int型变量,请用C语言表达式描述下列命题1)x和y中有一个小于z (x<z&&y>z||x>z&&y<z )==12) x,y和z中有两个为负数(x<0&&y<0&&z>=0||z<0&&y<0&&x>=0||y<0&&x<0&&z>=0)==13)y是奇数y%2 !=07. 下面for循环语句最多可执行 4 次For (x=0,y=0 ;(y !=99)&&(x<4) ;x++)8. 设i,j,k均为int型变量,则执行以下for语句后,k的值是 10for (i=0,j=10 ;i<=j ;i++,j--)k=i+j ;9.若已知x,y,z,m,n均为int 型变量,则执行下面语句后,x的值为 7 y 的值为 9 z的值为 7m=10 ; n=5;x=(--m==n++)? --m : ++n;y=m++;z=n;10. 若有说明语句: w=1,x=2,y=3,z=4; 则表达式w>x? w:z>y? z:x值是 411. 若定义的函数没有返回值时,则应该在该函数定义时加上类型说明符 void12. 凡在函数中未指定存储类型的变量,其隐含的存储类别为动态存储13. 在C语言中,一个函数直接或间接地调用自身,编构成函数的递归14. 如果被调用的自定义函数和调用函数不再同一个文件中,则在应以函数的文件中应将该文件的存储类型定义成型,在调用函数的文件中将该函数说明为型。
15. 对于所定义的二维数组a[2][3],元素a[1][2]是数组的第 6 个元素。
N*j+m+116.若有定义:char *str=”I am a student.”; 则字符串在存储单元中占 16 个字节。
17. 在执行int a[][3]={{1,2},{3,4}};语句后,a[1][2]的值是 0 。
18. 调用strlen(“abc\0ef\0g”)的返回值是 3 。
\0为停止符19. 设有定义:char s[12]=“string”; 则printf(“%d\n”,strlen(s));的输出值是 620. 执行下列程序段后,*p等于 3int a[5]={1,3,5,7,9}; *p=a;p++;二.判断(true or false)1.调用函数时,实参的类型、个数和顺序与函数定义时形参的类型、个数和顺序完全一致。
T2.函数可以嵌套定义F3.函数必须有返回值,否则不能正确作用F4.C程序中有调用关系的所有函数必须放在同一源程序文件中。
F5.全局变量与函数体内定义的局部变量重名时,局部变量不起作用。
F6.函数定义时可以不制定形参的类型,函数调用时由实参的类型决定形参的类型F7.当函数定义放在main()函数前面时,可以缺省函数声明。
T8.C语言中允许函数嵌套调用T9.局部静态变量是在编译时赋初值的,即只赋一次初值。
T10.外部变量必须定义在文件的开头部分F11.字符’\0’是字符串的结束标记,其ASCII码为0.T12.若有说明 :int a[3][4]={0};则数组a中每个元素的初值都为0.T13.若有说明 :int a[2][4]={0,0};则只有a[0][0]和a[0][1]的初值为0,其余元素的初值均不为0. F14.若有说明 :int a[3][4];则数组a中各元素可在程序的编译阶段达到初值0.F15.若用数组名作为函数调用时的实参,则实际上传递给形参的是数组的第一个元素值。
F16.在两个字符串的比较中,字符个数多的字符串比字符少的字符串大。
F17.当需要接受用户从键盘上输入的含有空格的字符串时,应使用gets()函数。
T18.在C语言中,二维数组元素在内存中的存放顺序可以随意调整变化。
F19.&b指的是变量b的地址处所存放的值;F20.指针变量可用于保存同类型变量的地址值;F21.存放地址的变量同其他类型的变量一样,可以存放任何类型的数据;F22.指向同一数组的两指针p1,p2相减的结果与所指元素的下标相减的结果是相同的。
F23.如果定义函数时参数是指针变量,那么,调用函数时的参数就可以是同类型的指针变量,数组名或简单变量的地址T24.char *name[5]定义了一个一维指针数组,它有5个元素,每个元素都是指向字符数据的指针型数据。
F25.语句y=*p++;和y=(*p)++;是等价的。
F26.函数指针指向的是函数的入口地址。
T27. int *p;定义了一个指针变量,其值是整型的。
F28.用指针作为函数参数时,采用的是“地址传送”方式.T三、选择题1.下列变量名中哪些是合法的?π 2a a# C$ t3 _var θ int2.语言中用________表示逻辑值“真”。
A) true B) 整型值0C) 非零整数值D) T3.下列合法的字符常量为________。
A) "a" B) '\n' C) 'china' D) a4. 设有语句char c='\72';则变量c________。
A) 包含1个字符 B)包含2个字符 C) 包含3个字符 D) 不合法5. 字符串"\t\"Name\\Address\n"的长度为________。
A) 19 B) 15 C) 18 D) 不合法6. 设a,b,c 为 int 型变量,且a = 3 ,b = 4 , c = 5,下面表达式值为0的是________。
A) 'a' && 'b' B) a <= bC) a || b+c && b-c D) !((a<b) && !c || 1)7. 若有以下定义:char a ; int b ; float c ;double d ; 则表达式 a * b + d – c 的值的类型为_____________A) floatB) int C) char D)double 8. 设有语句int a = 3; 执行了语句a += a -= a * a; 后,变量a 的值是________。
A) 3 B) 0 C) 9 D) -129. 设有语句int a = 3; 执行了语句printf("%d", -a ++); 后,输出的结果是__C______,变量a 的值是__D_____。
A) 3 B) 4 C) -3 D) -210. 将下列数学表达式表示为合法的C 语言表达式。
(1) cb a 222+ (2) 2))((+++d c b a (3) 2/))sin((ln y x + (4) r π2 (5) x 111+ (6) xxy y e ++22)30sin(ο 12. 下列可作为C 语言赋值语句的是:_____________。
A) x = 3, y = 5 B) a = b = cC) i -- ; D)y = int ( x ) ;13. 以下程序的输出结果为:_____________。
main(){int a = 2, c = 5;printf("a = %%d, b = %%d\n", a, c); }A) a = %2, b = %5 B) a = 2, b = 5 C ) a=%%d, b=%%d D) a=%d, b=%d14. 在下面的条件语句中,只有一个在功能上与其它三个语句不等价(其中s1和s2表示它是C 语句),这个不等价的语句是: 。
A) if (a) s1; else s2;B) if (!a) s2; else s1;C) if (a != 0) s1; else s2;D) if (a == 0) s1; else s2;15. 设有声明语句:int a=1,b=0;则执行以下语句后输出为:。
switch (a){case 1:switch (b){case 0: printf("**0**");break;case 1: printf("**1**");break;}case 2: printf("**2**");break;}A)**0** B) **0****2** C)**0****1****2** D)有语法错误16.在while (x)语句中的x与下面条件表达式等价的是:。
A) x == 0 B) x == 1 C) x != 1 D) x != 017. 若int x;且有下面的程序片断,则输出结果为:。
for (x=3; x<6; x++){printf((x%2)==0? "**%d" : "##%d\n", x);}A) **3 B) ##3 C) ##3 D) **3##4##4 **4 **4##5 **5**5 ##518. 以下能对外部的一维数组a(含有10个元素)进行正确初始化的语句是:。
A) int a[10] = (0,0,0,0,0);B) int a[10] = {};C) int a[] = {0};D) int a[10] = {10*1};19. 以下能对外部的二维数组a进行正确初始化的语句是:。
A) int a[2][] = {{1,0,1},{5,2,3}};B) int a[][3] = {{1,2,1},{5,2,3}};C)2 int a[2][4] = {{1,2,1},{5,2},{6}};D) int a[][3] = {{1,0,2},{},{2,3}};20. 若二维数组a有m列,则在a[i][j]之前的元素个数为:。