(完整版)大一上学期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语言期末考试题库大题及详解答案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语言期末考试题库试题及答案
大学c语言期末考试题库试题及答案在即将到来的大学C语言期末考试中,同学们可能会遇到各种类型的题目。
以下是一些典型的试题及其答案,供同学们复习参考。
1. 以下哪个选项是C语言中的关键字?A. intB. IntegerC. INTD. integer答案:A. int2. 若有定义:int a = 10; 则表达式 a++ 的值是多少?A. 9B. 10C. 11D. 无法确定答案:B. 103. 在C语言中,以下哪个函数用于计算字符串的长度?A. strlen()B. length()C. str_length()D. string_length()答案:A. strlen()4. 若有以下代码片段:```cint x = 5;printf("%d", x++);```执行后输出的结果是?A. 4B. 5C. 6D. 无法确定答案:B. 55. 在C语言中,以下哪个选项表示“逻辑与”操作?A. &&B. ||C. !D. &答案:A. &&6. 若有以下代码:```cint a = 3, b = 4, c;c = a + b;```则变量 c 的值是多少?A. 7B. 3C. 4D. 无法确定答案:A. 77. 在C语言中,以下哪个选项是正确的二维数组声明?A. int array[2,3];B. int array[2][3];C. int array[2][3][4];D. int array[][];答案:B. int array[2][3];8. 若有以下函数定义:```cint add(int x, int y) {return x + y;}```则调用 add(5, 3) 时,返回的值是多少?A. 2B. 5C. 8D. 无法确定答案:C. 89. 在C语言中,以下哪个选项表示“不等于”的比较运算符?A. ==B. !=C. =D. <=答案:B. !=10. 若有以下代码:```cchar str[] = "Hello";str[0] = 'h';```执行后,str 数组的内容是什么?A. "hello"B. "Hello"C. "helloworld"D. "hEllo"答案:A. "hello"这些题目覆盖了C语言的基础知识点,包括关键字、变量、函数、数组以及基本的控制结构。
大一c语言期末考试试题及答案(含对应考察点)
一1-1 考察点计算思维C语言实现->模块化编程能力->函数设计题型C语言-自主编程难度系数 4题目请在右边完善GetZhouChang函数,函数的具体要求如下:输入:圆的半径r处理:计算这个圆的周长,并返回结果输出:圆的周长输出样式:注意:请勿修改任何已有代码!默认圆周率为3.14!默认代码#include <stdio.h>/*请在此处注释语句下方完成GetZhouChang函数的声明与实现*/float GetZhouChang(float x);float GetZhouChang(float r){return 2*3.14*r;}int main( ) {float r = 4.4;float zhouchang = GetZhouChang(r);printf("%0.2f",zhouchang);return 0;}2-1 考察点计算思维C语言实现->模块化编程能力->函数设计题型C语言-自主编程难度系数 4题目请完善判断奇偶数JudgeOddNumber函数,函数的具体要求如下:形参:一个整型数num处理:判断num奇偶数,如果是奇数,返回1;如果是偶数,返回0返回:返回判断结果提示:函数建议声明为如下格式 int JudgeOddNumber(int num); 注意:请勿修改任何已有代码!默认代码#include<stdio.h>//请在此处注释语句下方完成JudgeOddNumber函数的声明与实现int JudgeOddNumber(int num);int JudgeOddNumber(int num){if(num%2==1)return 1;elsereturn 0;}int main( ) {int num = 103;int result = JudgeOddNumber(num);printf("%d", result); // 当前num是奇数,输出1num = 8;result = JudgeOddNumber(num);printf("%d", result); // 当前num是偶数,输出0return 0;}3-1 考察点计算思维C语言实现->模块化编程能力->函数设计题型C语言-自主编程难度系数 4题目请在右边完善func函数,函数的具体要求如下:输入:两个整型的数据a和b处理:求a-b的绝对值,并返回结果输出:|a-b|注意:请勿修改任何已有代码!默认代码#include<stdio.h>/*请在此处注释语句下方完成func函数的声明与实现,*/int func(int a,int b);int func(int a,int b){if(a>b)return a-b;elsereturn b-a;}int main( ){int a = 30,b = 100;int result = func(a,b);printf("%d", result);return 0;}4-1 考察点计算思维C语言实现->模块化编程能力->函数设计题型C语言-自主编程难度系数 4题目请完善div函数,函数的具体要求如下:形参:两个整型数a,b处理:判断a能否整除b,如果可以整除,输出0;如果不能整除,输出它们的余数返回:返回处理结果提示:函数建议声明为如下格式 int div(int a,int b);注意:输出语句结束不用换行!请勿修改任何已有代码!默认代码#include<stdio.h>//请在此处注释语句下方完成div函数的声明与实现int div(int a,int b);int div(int a,int b){return a%b;}int main( ) {int a = 100;int b = 50;int result = div(a,b);printf("%d",result);return 0;}5-1 考察点计算思维C语言实现->模块化编程能力->函数设计题型C语言-自主编程难度系数 4题目请在右边完善Calculation函数,函数的具体要求如下:输入:两个整型的数据处理:计算这两个数组成的矩形的周长,并返回结果输出:矩形周长输出样式:注意:请勿修改任何已有代码!默认代码#include <stdio.h>/*请在此处注释语句下方完成Calculation函数的声明与实现*/int Calculation(int a,int b);int Calculation(int a,int b){return 2*(a+b);}int main( ) {int a = 10, b = 20;int c irc = Calculation(a,b);printf("周长为%d",circ);return 0;}6-1 考察点计算思维C语言实现->模块化编程能力->函数设计题型C语言-自主编程难度系数 4题目请完善判断最大数的GetMax函数,函数的具体要求如下:输入:三个整型数a,b,c处理:通过条件语句判断最大的数,并返回最大的数输出:返回判断结果提示:函数建议声明为如下格式 int GetMax(int a,int b,int c) 注意:请勿修改任何已有代码!默认代码#include <stdio.h>//请在此处注释语句下方完成GetMax函数的声明与实现int GetMax(int a, int b, int c);int GetMax(int a, int b, int c){int max;if(a>b)max=a;elsemax=b;if(max<c)max=c;return max;}int main( ) {int a = 20, b = 5, c = 10;int max = GetMax(a, b, c);printf("三个数最大的是%d", max);return 0;}7-1 考察点计算思维C语言实现->模块化编程能力->函数设计题型C语言-自主编程难度系数 4题目请在右边完善fun函数,函数的具体要求如下:输入:一个整型数字处理:用户传入一个整型数字,然后返回这个整型数字的最后一位数字,输出样式如下图输出样式:注意:请勿修改任何已有代码!默认代码#include <stdio.h>/*请在此处注释语句下方完成fun函数的声明与实现,*/int fun(int x);int fun(int x){return x%10;}int main( ){int x = 325;int result = fun(x);printf("%d", result);return 0;}8-1 考察点计算思维C语言实现->模块化编程能力->函数设计题型C语言-自主编程难度系数 4题目请完善右边的fun函数,函数的具体要求如下:输入:任意一个字母处理:如果是大写字母返回1;如果是小写字母返回0.输出:返回判断结果注意:请勿修改任何已有代码!提示:A的ASCII码是65,a的ASCII码是97默认代码#include <stdio.h>//请在此处注释语句下方完成fun函数的声明与实现int fun(char letter);int fun(char letter){if(letter>=65 && letter<=90)return 1;elsereturn 0;}int main( ){char letter = 'A';int result = fun(letter);printf("%d%\n", result);char letter2 = 'b';int result2 = fun(letter2);printf("%d",result2);return 0;}9-1 考察点计算思维C语言实现->模块化编程能力->函数设计题型C语言-自主编程难度系数 4题目请完善判断最小数的GetMin函数,函数的具体要求如下:输入:三个整型数a,b,c处理:通过定义的GetMin函数判断最小的数,并返回最小的数输出:返回判断结果注意:请勿修改任何已有代码!输出语句结束不用换行!默认代码#include <stdio.h>//请在此处注释语句下方完成GetMin函数的声明与实现int GetMin(int a, int b, int c);int GetMin(int a, int b, int c){int min;if(a<b)min=a;elsemin=b;if(c<min)min=c;return min;}int main( ) {int a = 18, b = 8, c = 28;int min = GetMin(a, b, c);printf("三个数最小的是%d", min);return 0;}10-1 考察点计算思维C语言实现->模块化编程能力->函数设计题型C语言-自主编程难度系数 4题目请在右边完善UpperLetter函数,函数的具体要求如下:输入:一个小写字母处理:将小写字母转换成大写字母,返回结果输出样式:大写字母注意:请勿修改任何已有代码!提示:A的ASCII码是65,a的ASCII码是97默认代码#include <stdio.h>/*请在此处注释语句下方完成UpperLetter函数的声明与实现,*/char UpperLetter(char letter);char UpperLetter(char letter){return letter-32;}int main( ){char letter = 'g';char r = UpperLetter(letter);printf("%c", r);return 0;}11-1 考察点计算思维C语言实现->模块化编程能力->函数设计题型C语言-自主编程难度系数 4题目请在右边完善fun函数,函数的具体要求如下:输入:一个浮点型数字处理:输出该数绝对值,保留小数点后三位有效数位输出:返回绝对值注意:请勿修改任何已有代码!默认代码#include <stdio.h>/*请在此处注释语句下方完成fun函数的声明与实现,*/float fun(float a);float fun(float a){if(a>=0)return a;elsereturn -a;}int main( ){float a = -30;float b = fun(a);printf("绝对值是%.3f",b);return 0;}12-1 考察点计算思维C语言实现->模块化编程能力->函数设计题型C语言-自主编程难度系数 4题目请完善fun函数,函数的具体要求如下:输入你和你朋友的年龄,返回两者的年龄差,注意务必年龄大者减去年龄小者。
大一上学期C语言期末复习总结和模拟试题带答案,推荐文档
进行了不合法易错点C 语言中易犯的错误对初学C 语言的人来说,经常会出一些 连自己都不知道错在哪里的错误 . 看 着有错的程序 , 不知该如何改起 , 一些 C 编程时常犯的错误 , 写给各位学员以 供参考.******************************** ******************************************************** 运算 , 而实型变量则不允许进行 "求余 "运算.******************************** ******************************** ************************3. 将字符常量与字符串常量混淆char c;1. 书写标识符时 , 忽略了大小写字母 的区别.main(){int a=5; printf("%d",A);}编译程序把 a 和 A 认为是两个不同 的变量名 , 而显示出错信息 .C 认为大写字母和小写字母是两个不 同的字符.习惯上, 符号常量 名用大写 , 变量名用小写表示 , 以增加 可读性.******************************** ******************************** ************************2. 忽略了变量的类型 的运算.main(){float a,b; printf("%d",a%b);}在这里就混淆了字符常量与字符串常量 , 字符常量是由一对单 引号括起来的单个字符 , 字符串常量 是一对双引号括起来的字符序 列.C 规定以"\"作字符串结束标志,它 是由系统自动加上的 , 所以 字 符 串 "a" 实际上包含两 个字符:'a'和'\',而把它赋给一 个字符变量是不行的 .******************************** ******************************** ************************4. 忽略了 "=" 与"==" 的区别 .在许多高级语言中 , 用"=" 符号作为 关系运算符 "等于".如在BASIC 程序中可以写if (a=3) then但C 语言中,"="是赋值运算符,"==" 是关系运算符 . 如:if (a==3) a=b;%是求余运算,得到a/b 的整余数.整 型变量 a 和 b 可以进行求余前者是进行比较 ,a 是否和 3相等 , 后c="a "・{z=x+y;这是不合法的 .Scanf 函数的作用是者表示如果 a 和3相等,把b 值赋给a.由于习惯问题,初学者往往 会犯这样的错误 .******************************** ******************************** ************************5. 忘记加分号 .分号是C 语句中不可缺少的一部分, 语句末尾必须有分号 .a=1 b=2编译时,编译程序在"a=1"后面没发 现分号,就把下一行"b=2"也作为上一行语句的一部分 , 这就 会出现语法错误 . 改错时 ,有时在被指出有错的一行中未发现错 误 , 就需要看一下上一行是否 漏掉了分号 .{ z=x+y; t=z/100; printf("%f",t); }对于复合语句来说 , 最后一个语句 中最后的分号不能忽略不写******************************** ******************************** ************************6. 多加分号 .对于一个复合语句 , 如:t=z/100; printf("%f",t);};复合语句的花括号后不应再加分号 否则将会画蛇添足 . 又如:if (a%3==0); I++;本是如果 3整除 a, 则 I 加1. 但由于 if (a%3==0) 后多加了分号, 则 if 语句到此结束 , 程序将执行 I++语句 , 不论3是否整除 a,I 都 将自动加1 . 再如:for (I=0;I<5;I++); {scanf("%d",&x); printf("%d",x);}本意是先后输入 5个数 , 每输入一个 数后再将它输出 . 由于 for() 后多加了一个分号 , 使循环体变为 空语句 , 此时只能输入一个数 并输出它 .******************************** ******************************** ************************7. 输入变量时忘记加地址运算符 "&". int a,b;scanf("%d%d",a,b);按照a,b在内存的地址将a,输入应如以下形式a=3,b=4b的值存进去."&a"指a在内存中的地址.****************************************************************************************8.输入数据的方式与要求不符•①scan f("%d%d",&a,&b);输入时,不能用逗号作两个数据间的分隔符,如下面输入不合法:3,4输入数据时,在两个数据之间以一个或多个空格间隔,也可用回车键,跳格键tab.②scan f("%d,%d",&a,&b);C规定:如果在"格式控制"字符串中除了格式说明以外还有其它字符,则在输入数据时应输入与这些字符相同的字符•下面输入是合法的:3,4此时不用逗号而用空格或其它字符是不对的.3 4 3:4又如:sca nf("a=%d,b=%d",&a,&b); ****************************************************************************************9.输入字符的格式与要求不一致•在用"%c"格式输入字符时,"空格字符"和"转义字符"都作为有效字符输入.sca nf("%c%c%c",&c1,&c2,&c3);如输入a b c字符"a"送给c1,字符""送给c2,字符"b"送给c3,因为%c只要求读入一个字符,后面不需要用空格作为两个字符的间隔•****************************************************************************************10.输入输出的数据类型与所用格式说明符不一致.例如,a已定义为整型,b定义为实型a=3;b=4.5;prin tf("%f%d\n",a,b);编译时不给出出错信息,但运行结果将与原意不符•这种错误尤其需要注意•****************************************************************************************11.输入数据时,企图规定精度•sca nf("%7.2f",&a);这样做是不合法的,输入数据时不能规定精度.****************************************************************************************12.switch 语句中漏写break 语句.例如: 根据考试成绩的等级打印出百分制数段.switch(grade){ case 'A':printf("85~100\n");case 'B':printf("70~84\n");case 'C':printf("60~69\n");case 'D':printf("<60\n");default:printf("error\n");由于漏写了break 语句,case 只起标号的作用, 而不起判断作用.因此,当grade值为A时,printf 函数在执行完第一个语句后接着执行第二, 三, 四, 五个printf 函数语句. 正确写法应在每个分支后再加上"break;". 例如case 'C':printf("60~69\n");break;****************************************************************************************13. 忽视了while 和do-while 语句在细节上的区别.(1)main(){int a=0,I;scanf("%d",&I); while(I<=10){a=a+I;I++;}printf("%d",a);}(2)main(){int a=0,I;scanf("%d",&I);do{a=a+I;I++;}while(I<=10);printf("%d",a);}可以看到, 当输入I 的值小于或等于10 时, 二者得到的结果相同.而当1>10时,二者结果就不同了•因为while 循环是先判断后执行, 而do-while 循环是先执行后判断. 对于大于10的数while 循环一次也不执行循环体, 而do-while 语句则要执行一次循环体.****************************************************************************************14. 定义数组时误用变量.int n;scanf("%d",&n);int a[n];数组名后用方括号括起来的是常量表达式, 可以包括常量和符号常量.即C不允许对数组的大小作动态定义.****************************************************************************************15.在定义数组时, 将定义的" 元素个数"误认为是可使的最大下标值.main(){static inta[10]={1,2,3,4,5,6,7,8,9,10};printf("%d",a[10]);}C 语言规定: 定义时用a[10], 表示a 数组有10个元素. 其下标值由0 开始, 所以数组元素a[10] 是不存在的.****************************************************************************************16.初始化数组时, 未使用静态存储.int a[3]={0,1,2}; 这样初始化数组是不对的.C 语言规定只有静态存储(static) 数组和外部存储(exterm) 数组才能初始化. 应改为: static inta[3]={0,1,2};****************************************************************************************17.在不应加地址运算符&的位置加了地址运算符.scanf("%s",&str);C 语言编译系统对数组名的处理是: 数组名代表该数组的起始地址, 且scanf 函数中的输入项是字符数组名,不必要再加地址符&.应改为:scanf("%s",str);****************************************************************************************18.同时定义了形参和函数中的局部变量.int max(x,y)int x,y,z;{z=x>y?x:y;return(z);}形参应该在函数体外定义, 而局部变量应该在函数体内定义. 应改为:int max(x,y)A.<=&B.=C.%D.&C.a>10&&a<15 &&!( a>=15)D. !( a<=10)int x,y; {int z;z=x>y?x:y;return(z);}试题一一、单项选择题(共30分,每题1分)C1. 下列不正确的转义字符是A.\\‘ C.074 D.\02. 不是C 语言提供的合法关键字是A.switch B.cher C.caseD.default3.正确的标识符是()A.?a B.a=2 C.a.3 D.a_34.下列字符中属于键盘符号的是B.\nC.\tD.\b.下列数据中属于“字符串常量” 的A.ABC B. “ ABC” C. ‘ABC' D. ‘A'6.char 型常量在内存中存放的是A.ASCII 码B.BCD 码C.内码值D. 十进制代码值7.设a为5,执行下列语句后,b 的值不为2 的是()A.b=a/2B.b=6- (——a)C.b=a%2 D.b=a>3 ?2:28.在以下一组运算符中,优先级最高的运算符是()9.设整型变量i 的值为3,则计算表达式i ——i 后表达式的值是()A.0 B.1 C. 2 D. 表达式出错10. 设整型变量a,b,c 均为2,表达式a+++b+++c++勺结果是()A.6 B.9 C.8 D. 表达式出错11. 若已定义x 和y 为double 类型,则表达式x=1, y=x+3/2 勺值是( )A.1B.2C.2.0D.2.512.设a=1, b=2, c=3, d=4,则表达式: a<b?a:c<d?a:d 勺结果是( )A.4B.3C.2D.113. 设a 为整型变量,不能正确表达数学关系: 10<a<15 勺C 语言表达式是()A.10<a<15B.a==11 || a= =12 || a= =13 || a= =1414. 若有以下定义: char a 、int b 、floatc 、doubled ,则表达式a*b+d-c 值勺类型为()D.char a[]={0 ,15.表达式“ 10!=9”的值是 ) A. true B. 非零 值 C.0 D.1 20. 设有定义: char s[12]={“string ” } ;则 printf(“ %d\n”,strlen(s ));的输出是( )16. 循环语句 for ( x=0,y=0; (y ! =123) ||(x<4); x++);的循环执行( )A. 无限次B. 不确定次 C.4 次 D.3 次17. 在 C 语言中,下列说法中正确 的是( )A. 不能使用“ do while ”的循环B. “do while ”的循环必须使用break 语句退出循环C.“do while ”的循环中,当条 件为非 0 时将结束循环D.“do while ”的循环中,当条 件为 0时将结束循环。
大一期末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语言的期末考试。
为了帮助同学们更好地复习和准备,我们特别整理了一份大一C语言期末考试题及答案,供同学们下载和参考。
首先,我们来看第一题,这是一道关于C语言基础语法的选择题。
题目要求同学们选择正确的C语言变量声明方式。
正确答案是选项C,即`int a = 5;`。
这道题目考察了同学们对C语言变量声明和初始化的理解。
接下来是第二题,这是一道关于数组的编程题。
题目要求编写一个程序,实现对一个整型数组的逆序输出。
同学们需要掌握数组的遍历和元素交换的方法来完成这道题目。
第三题是一道关于函数的编程题。
题目要求编写一个函数,实现对两个整数的交换。
这道题目不仅考察了同学们对函数定义和调用的理解,还考察了参数传递和返回值的使用。
紧接着是第四题,这是一道关于指针的选择题。
题目要求同学们选择正确的指针声明方式。
正确答案是选项B,即`int *p;`。
这道题目考察了同学们对指针声明和初始化的理解。
第五题是一道关于结构体的编程题。
题目要求编写一个程序,实现对学生信息的输入和输出。
同学们需要掌握结构体的定义和使用,以及如何通过指针访问结构体成员。
第六题是一道关于文件操作的编程题。
题目要求编写一个程序,实现对文本文件的读写操作。
这道题目考察了同学们对文件指针的使用,以及如何进行文件的打开、读取、写入和关闭。
第七题是一道关于预处理指令的选择题。
题目要求同学们选择正确的宏定义方式。
正确答案是选项A,即`#define PI 3.14159`。
这道题目考察了同学们对预处理指令的理解。
第八题是一道关于位运算的编程题。
题目要求编写一个程序,实现对整数的二进制表示的反转。
这道题目考察了同学们对位运算符的使用,以及如何进行位运算。
最后是第九题,这是一道综合性的编程题。
大学计算机 C语言期末复习题(一) (附带答案)
大学计算机C语言期末复习题(一)《附带答案》一、单项选择题1. 以下不正确的C语言标识符是()。
A. ABC B. abc C. a_bc D. ab.c 2.以下正确的C语言标识符是()。
A. %k B. a+b C. a123 D. test!3. 一个C程序的执行是从()。
A.main( )函数开始,直到main( )函数结束B.第一个函数开始,直到最后一个函数结束C.第一个语句开始,直到最后一个语句结束D.main( )函数开始,直到最后一个函数结束4. 在C程序中,main( )的位置()。
A.必须作为第一个函数B.必须作为最后一个函数C.可以任意D.必须放在它所调用的函数之后5.C语言源程序的基本单位是()。
A.过程 B.函数 C.子程序 D.标识符6.以下结果为整数的表达式(设有int i;char c;float f;)( ).A.i+fB.i*cC.c+fD.i+c+f7.以下不正确的语句(设有int p,q)是()。
A.p*=3; B.p/=q; C.p+=3; D.p&&=q;8.以下使i的运算结果为4的表达式是()。
A.int i=0,j=0; (i=3,(j++)+i);B. int i=1,j=0; j=i=((i=3)*2);C. int i=0,j=1; (j==1)? (i=1): (i=3);D. int i=1,j=1; i+=j+=2;9.设char ch;以下正确的赋值语句是()。
A.ch='123'; B.ch='\xff'; C.ch='\08'; D.ch="\";10.设n=10,i=4,则赋值运算n%=i+1执行后,n的值是()。
A.0 B.3 C.2 D.1 11.逗号表达式(a=3*5,a*4),a+15的值为(),a的值是()。
①A.15 B.60 C.30 D.不确定②A.60 B.30 C.15 D.9012.如果a=1,b=2,c=3,d=4,则条件表达式a<b?a:c<d?c:d的值为( ).A.1 B.2 C.3 D.413.设int n=3;则++n的结果是(),n的结果是()。
(完整word版)大一C语言期末考试参考资料
C 语言总复习总体上必须清楚的:1)程序结构是三种: 顺序结构 , 循环结构 (三个循环结构), 选择结构 (if 和 switch)2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。
3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址.4)bit是位是指为0 或者1。
byte 是指字节, 一个字节 = 八个位.5)一定要记住二进制如何划成十进制。
概念常考到的:1、编译预处理不是C语言的一部分,不再运行时间。
C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。
2、每个C语言程序中main函数是有且只有一个。
3、在函数中不可以再定义函数。
4、算法的是一定要有输出的,他可以没有输入。
5、break可用于循环结构和switch语句。
6、逗号运算符的级别最低。
第一章1)合法的用户标识符考查:合法的要求是由字母,数字,下划线组成。
有其它元素就错了。
并且第一个必须为字母或则是下划线。
第一个为数字就错了。
关键字不可以作为用户标识符号。
main define scanf printf 都不是关键字。
迷惑你的地方If是可以做为用户标识符。
因为If中的第一个字母大写了,所以不是关键字。
2)实型数据的合法形式:2.333e-1 就是合法的,且数据是2.333×10-1。
考试口诀:e前e后必有数,e后必为整数。
.3)字符数据的合法形式::'1' 是字符占一个字节,"1"是字符串占两个字节(含有一个结束符号)。
'0' 的ASCII数值表示为48,'a' 的ASCII数值是97,'A'的ASCII数值是65。
4)整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节:考试时候一般会说,在16位编译系统,或者是32位系统。
碰到这种情况,不要去管,一样做题。
c 大一 期末考试题及答案
c 大一期末考试题及答案**C语言大一期末考试题及答案**一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的关键字?A. intB. inputC. stringD. var答案:A2. C语言中,哪个运算符用于求两个数的和?A. +B. -C. *D. /答案:A3. 在C语言中,哪个函数用于计算一个数的绝对值?A. abs()B. fabs()C. sqrt()D. pow()答案:A4. C语言中,哪个函数用于将字符串连接起来?A. strcat()B. strcpy()C. strcmp()D. strlen()答案:A5. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. !D. &答案:A6. 在C语言中,哪个关键字用于定义一个函数?A. functionB. defC. defineD. void答案:D7. 下列哪个选项是C语言中的循环结构?A. ifB. whileC. switchD. case答案:B8. 在C语言中,哪个函数用于将浮点数转换为整数?A. int()B. float()C. atof()D. atoi()答案:D9. C语言中,哪个关键字用于声明一个变量?A. varB. letC. dataD. int答案:D10. 下列哪个选项是C语言中的数组声明方式?A. int array[10];B. int array=10;C. int array[];D. int[10] array;答案:A二、填空题(每题2分,共20分)1. C语言中,用于定义一个整型变量的关键字是________。
答案:int2. C语言中,用于定义一个浮点型变量的关键字是________。
答案:float 或 double3. C语言中,用于定义一个字符型变量的关键字是________。
答案:char4. C语言中,用于定义一个字符串常量的符号是________。
大学c语言期末考试题库及答案汇总
大学c语言期末考试题库及答案汇总一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的关键字?A. intB. INTC. IntegerD. int_答案:A2. C语言中,以下哪个函数用于计算字符串的长度?A. strlen()B. length()C. size()D. count()答案:A3. 在C语言中,以下哪个运算符用于表示逻辑与?A. &&B. ||C. !D. &&答案:A4. 以下哪个选项不是C语言中的控制语句?A. ifB. whileC. switchD. goto答案:D5. 在C语言中,以下哪个函数用于将整数转换为字符串?A. atoi()B. itoa()C. sprintf()D. printf()答案:B6. C语言中,以下哪个选项是正确的字符常量表示?A. 'ab'B. "ab"C. 'ab'D. "ab"答案:C7. 在C语言中,以下哪个选项是正确的数组声明?A. int arr[5] = {1, 2, 3};B. int arr[] = {1, 2, 3};C. int arr[3] = {1, 2, 3, 4};D. int arr = {1, 2, 3};答案:A8. 下列哪个选项是C语言中的合法浮点数?A. 3.14159B. 3.14.159C. 3.14eD. 3.14e1答案:D9. 在C语言中,以下哪个函数用于输出格式化的字符串?A. printf()B. scanf()C. sprintf()D. fprintf()答案:A10. C语言中,以下哪个选项是正确的函数声明?A. int function();B. int function;C. int function int;D. int function(int, int);答案:D二、填空题(每题2分,共20分)1. C语言中,用于定义一个整型变量的关键字是________。
大一c语言考试题及答案解析
大一c语言考试题及答案解析一、选择题1. 下列关于C语言的描述中,错误的是()。
A. C语言是一种高级编程语言B. C语言可以用于系统编程C. C语言不支持面向对象编程D. C语言的源代码文件扩展名是.cpp答案:D解析:C语言的源代码文件扩展名是.c,而不是.cpp,后者是C++的源代码文件扩展名。
2. 在C语言中,以下哪个关键字用于定义一个函数?()A. returnB. functionC. defineD. void答案:D解析:在C语言中,void是用于定义函数的关键字,例如:void functionName()。
二、填空题1. 在C语言中,用于声明一个整型变量的关键字是______。
答案:int2. 若定义一个变量x,其值为10,正确的声明语句是______。
答案:int x = 10;三、简答题1. 请简述C语言中数组和指针的区别。
答案:数组是一个数据结构,用于存储相同类型的多个元素,而指针是一个变量,它存储了另一个变量的内存地址。
数组名本身代表数组的首地址,而指针变量可以被赋值为任意地址。
2. 请解释C语言中结构体的作用。
答案:结构体是一种用户自定义的数据类型,它允许将不同的数据类型组合成一个单一的数据结构,从而可以创建复杂的数据结构来表示复杂的数据。
四、编程题1. 编写一个C语言程序,计算并输出1到100之间所有奇数的和。
答案:```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 != 0) {sum += i;}}printf("The sum of odd numbers from 1 to 100 is: %d\n", sum);return 0;}```解析:程序使用for循环遍历1到100的整数,通过if语句检查每个数是否为奇数,如果是,则将其加到sum变量中。
大学大一C语言程序设计期末考试试卷和答案
大学大一C语言程序设计期末考试试卷和答案大学大一C语言程序设计期末考试试卷和答案C语言程序设计试卷试卷A答卷说明:1、本试卷共6页,答题纸3页,4个大题,35个小题,满分100分,120分钟完卷。
2、闭卷考试,所有的答案都必须写在答题纸上,判卷以答题纸上答案为准。
3、本试卷适用于2011级1、2、3班。
题号一二三四总分总分人分数得分评卷人一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。
每小题1分,共20分)1、在C语言中,下列标识符中合法的是( )A). -int B). in1_3 C). A_B!D D). const2、不属于C语言基本数据类型的是( )A). int B). union C). char D). unsigned3、下面是对宏定义的描述。
不正确的是( )A). 宏不存在类型问题,宏名无类型,它的参数也无类型B). 宏替换不占用运行时间C). 宏替换只是字符串的简单替代D). 宏替换时先检查类型,类型一致时才可以替换4、C语言中,″\\xfds″在内存中占用的字节数是( )A).3 B).4 C).5 D).65、设int x;则执行printf(″%x\n″,~x^x);的结果是( )A). ffffffff B). ff C). 0 D). 16、对于while语句,错误的说法是( )A).用条件控制循环体的执行次数B).循环体至少要执行一次C).循环体有可能一次也不执行D).循环体中可以包含若干条语句7、执行下列语句后输出的结果是( ),8( ),19 D).10,20 ( )D). 0取变量地址D). enum t{a,b}x;A). p B). p(r) C). 3.14*r D). p(r) 3.14*r20、要打开一个已存在的用于修改的非空二进制文件“hello.txt ”,正确语句是( )A). fp=fopen( "hello.txt ","r" ) B). fp=fopen( "hello.txt ","ab+" ) C). fp=fopen( "hello.txt ","w" ) D). fp=fopen( "hello.txt ","r+" )得分评卷人二、填空题(仔细阅读每小题的说明和源代码,并将正确答案写到答题纸上对应的题号处。
大一c期末考试题及答案
大一c期末考试题及答案大一C期末考试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义一个类?A. classB. structC. unionD. enum答案:B2. 在C语言中,以下哪个函数用于将字符串复制到另一个字符串中?A. strcpy()B. strcat()C. strlen()D. strcmp()答案:A3. 下列哪个选项不是C语言的基本数据类型?A. intB. floatC. charD. string答案:D4. 在C语言中,以下哪个运算符用于计算两个数的乘方?A.B. *C. /D. %答案:A5. 以下哪个语句可以用于C语言中的条件判断?A. ifB. whileC. forD. switch答案:A6. 在C语言中,以下哪个不是数组的初始化方式?A. int arr[5] = {1, 2, 3, 4, 5};B. int arr[5] = 5;C. int arr[] = {1, 2, 3};D. int arr[5] = {0,};答案:B7. 下列哪个选项是C语言中正确的函数定义?A. int function(int a, int b) { ... }B. void myFunc(int a, int b) { ... }C. int myFunc(int a, int b) { ... }D. all of the above答案:D8. 在C语言中,哪个关键字用于定义指针?A. intB. floatC. charD. *答案:D9. 下列哪个选项是C语言中正确的循环结构?A. do-whileB. forC. whileD. all of the above答案:D10. 在C语言中,以下哪个不是标准库函数?A. printf()B. scanf()C. malloc()D. myFunc()答案:D二、填空题(每空3分,共15分)1. 在C语言中,使用________关键字可以定义一个函数。
(完整版)大学大一C语言程序设计期末考试试卷和答案
四川师范大学计算机科学学院 2012~2013学年度第二学期期末考试C 语言程序设计试卷 试卷A答卷说明: 1、本试卷共6页,答题纸3页,4个大题,35个小题,满分100分,120分钟完卷。
2、闭卷考试,所有的答案都必须写在答题纸上,判卷以答题纸上答案为准。
3、 本试卷适用于2011级1、2、3班。
一、 单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。
每小题1分,共20分) 1、 在C 语言中,下列标识符中合法的是( )A). -int B). in1_3 C). A_B!D D). const2、 不属于C 语言基本数据类型的是( )A). int B). union C). char D). unsigned3、 下面是对宏定义的描述。
不正确的是( )A). 宏不存在类型问题,宏名无类型,它的参数也无类型 B). 宏替换不占用运行时间C). 宏替换只是字符串的简单替代D). 宏替换时先检查类型,类型一致时才可以替换4、 C 语言中,″\\xfds ″在内存中占用的字节数是( )__________________学院__________级___________班 姓名_______________ 学号_______________………………………………(密)………………………………(封)………………………………(线)………………………………密 封 线 内 答 题 无 效A).3 B).4C).5D).65、设int x;则执行printf(″%x\n″,~x^x);的结果是()A). ffffffff B). ff C).0D). 16、对于while语句,错误的说法是()A).用条件控制循环体的执行次数B).循环体至少要执行一次C).循环体有可能一次也不执行D).循环体中可以包含若干条语句7、执行下列语句后输出的结果是()int a=8,b=7,c=6;if(a<b)if(b>c){a=c;c=b;}printf("%d,%d,%d\n",a,b,c);A).6,7,7B).6,7,8C).8,7,6D).8,7,88、设int a=9,b=20;则printf(″%d,%d\n″,a--,--b);的输出结果是()A).9,19B).9,20C).10,19D).10,209、设static char x[ ]=″12345″,y[ ]={′1′,′2′,′3′,′4′,′5′,′\0′};那么()A).x数组的长度等于y数组的长度B).x数组的长度大于y数组的长度C).x数组的长度少于y数组的长度D).x数组与y数组的存储区域相同10、设int i,x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是()for(i=0;i<3;i++)printf(″%d″,x[i][2-i]);A).147B).159C).357D).36911、执行完下列语句后,n的值是()int n;for (n=0 ; n<100 ; n=2*n+1);A).125B).126 C).127D).12812、有以下语句:int a=6;a+=a-=a*a;printf(“%d”,a);输出结果()A).–132 B).–60 C). -24 D). 013、为了连接两个字符串s1与s2,应当使用()A). strcat( s1,s2 ) B). strcpy( s1, s2 ) C). strlen( s1, s2 ) D). strcmp( s1, s2 )14、设int a,*p;则语句p=&a;中的运算符“&”的含义是()A).位与运算B).逻辑与运算C).取指针内容D).取变量地址15、下面输出的结果为()i nt a=13, b=64;printf(“%d\n”, !a || (b>>3) );A).13 B).64 C).1 D).016、 下列定义正确的是( )A).enum t={a,b}x; B). enum t{1,2}x; C). enum {′+′,′-′}x; D). enum t{a,b}x;17、 设有定义:struct u{int a[4];float b[3]; char c[16];}aa;则printf(″%d\n ″,sizeof(aa));的输出是( ) A).32 B).36 C).12 D).818、 数据-54.78在文本文件中占用的字节个数是( )A).4 B).5 C).6 D).819、 在宏定义#define p(r) 3.14*r 中,请问宏名是( )A). p B). p(r) C). 3.14*r D). p(r) 3.14*r 20、 要打开一个已存在的用于修改的非空二进制文件“hello.txt ”,正确语句是( )A). fp=fopen( "hello.txt ","r" ) B). fp=fopen( "hello.txt ","ab+" ) C). fp=fopen( "hello.txt ","w" ) D). fp=fopen( "hello.txt ","r+" ) 二、填空题(仔细阅读每小题的说明和源代码,并将正确答案写到答题纸上对应的题号处。
大一上学期c语言考试题库及答案
大一上学期c语言考试题库及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义函数?A. structB. intC. voidD. return答案:B2. 以下哪个选项是正确的C语言变量声明?A. int a, b, c;B. int a; b; c;C. int a, b, c = 0;D. int a; int b; int c;答案:A3. 在C语言中,以下哪个运算符用于取模运算?A. %B. /C. *D. -答案:A4. 下列哪个选项是C语言中正确的注释?A. // 这是注释B. /* 这是注释 */C. //这是注释D. /*这是注释答案:A5. C语言中,以下哪个关键字用于定义数组?A. arrayB. listC. vectorD. int答案:D6. 在C语言中,以下哪个函数用于计算字符串的长度?A. strlenB. lengthC. sizeD. len答案:A7. 以下哪个选项是C语言中正确的条件语句?A. if (x > 0)B. if x > 0C. if (x > 0) thenD. if x > 0 then答案:A8. 在C语言中,以下哪个关键字用于定义指针?A. ptrB. pointC. *D. ref答案:C9. 下列哪个选项是C语言中正确的循环语句?A. for (int i = 0; i < 10; i++)B. for i = 0 to 10C. while (i < 10)D. loop i < 10答案:A10. 在C语言中,以下哪个函数用于将整数转换为字符串?A. itoaB. sprintfC. atoiD. strcpy答案:A二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型变量的关键字是________。
答案:int2. C语言中,用于定义一个函数的关键字是________。
大学C语言期末考试练习题(带详解答案)
序
设
C)while的循环体至少无条件执行一次
计
控
D)while的循环控制条件比do-while的严格
D 制
结 构
7)语句while (!a);中条件等价于____.
A)a!=0 B)~a C)a==1 D)a==0
返回目录
C
● 单项选择题
第20页
D 8)以下程序的运行结果为____.
#include <stdio.h>
C)for(表达式1;表达式1;表达式3)
D)for(表达式1;表达式3;表达式3)
返回目录
C
第24页
● 程序填空题
1.下面程序的功能是计算n!。
#include <stdio.h>
main( )
{
int i, n;
语
long p;
言 程
printf ( "Please input a number:\n" );
main( )
语{
言 程 序 设 计
控 制 结
构}
int i=1,sum=0; while(i<=100)
sum+=i; i++; printf("1+2+3+...+99+100=%d", sum);
A)5050 B)1 C)0
D)程序陷入死循环
返回目录
C
● 单项选择题
A 9)以下程序的运行结果为____.
设
计
A)\’ B)\0 C)\n
D)\\
D 基
本
8) 设先有定义:int a=10;则表达式a+=a *=a的值为____.
c语言考试题及答案大一
c语言考试题及答案大一一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项不是C语言中的运算符?A. %B. &&C. ::D. #答案:D3. 在C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. strcpyB. strcatC. strcmpD. strlen答案:A4. 下列哪个选项不是C语言中的控制语句?A. ifB. switchC. forD. while答案:B5. 在C语言中,以下哪个关键字用于定义一个函数?A. functionB. defC. voidD. int答案:C6. C语言中,以下哪个选项是正确的数组声明?A. int arr[5] = {1,2,3};B. int arr[] = {1,2,3};C. int arr[5] = {1,2,3,4,5,6};D. int arr = {1,2,3};答案:B7. 在C语言中,以下哪个关键字用于定义一个指针?A. ptrB. refC. *D. &答案:C8. 下列哪个选项是C语言中正确的注释方式?A. /* This is a comment */B. // This is a commentC. # This is a commentD. //* This is a comment答案:A9. 在C语言中,以下哪个函数用于将一个整数转换为字符串?A. sprintfB. printfC. scanfD. atoi答案:A10. C语言中,以下哪个选项是正确的文件操作函数?A. fopenB. fcloseC. freopenD. All of the above答案:D二、填空题(每题2分,共20分)1. 在C语言中,使用________运算符可以进行取模操作。
大一c语言考试题及答案详解
大一c语言考试题及答案详解一、选择题(每题2分,共20分)1. 下列关于C语言的描述中,不正确的是()。
A. C语言是一种高级语言B. C语言可以直接被计算机执行C. C语言具有结构化的特点D. C语言支持指针答案:B2. C语言中,用于定义一个整型变量的关键字是()。
A. intB. floatC. charD. double答案:A3. 在C语言中,以下哪个选项不是运算符()。
A. %B. &&C. :D. <=答案:C4. 下面哪个函数是C语言标准库函数()。
A. main()B. printf()C. scanf()D. strcpy()5. C语言中,用于定义一个字符型数组的关键字是()。
A. intB. charC. floatD. double答案:B6. 在C语言中,以下哪个选项是正确的字符串定义方式()。
A. char str[] = "Hello";B. char str = "Hello";C. char str[] = {"Hello"};D. char str[] = 'Hello';答案:A7. 下列关于C语言函数的描述中,不正确的是()。
A. 函数可以没有返回值B. 函数可以有多个返回值C. 函数可以嵌套定义D. 函数可以递归调用答案:C8. 在C语言中,以下哪个选项是正确的文件包含指令()。
A. #include <stdio.h>B. #include "stdio.h"C. #include <stdio.h>D. #include "stdio.h"答案:A9. C语言中,用于定义一个浮点型变量的关键字是()。
B. floatC. charD. double答案:B10. 在C语言中,以下哪个选项是正确的条件语句()。
大一C语言期末考试
大一C语言期末考试文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]C语言总复习总体上必须清楚的:1)程序结构是三种:顺序结构,循环结构(三个循环结构),选择结构(if和switch)2)读程序都要从main()入口,然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。
3)计算机的数据在电脑中保存是以二进制的形式.数据存放的位置就是他的地址.4)bit是位是指为0或者1。
byte是指字节,一个字节=八个位.5)一定要记住二进制如何划成十进制。
概念常考到的:1、编译预处理不是C语言的一部分,不再运行时间。
C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。
2、每个C语言程序中main函数是有且只有一个。
3、在函数中不可以再定义函数。
4、算法的是一定要有输出的,他可以没有输入。
5、break可用于循环结构和switch语句。
6、逗号运算符的级别最低。
第一章1)合法的用户标识符考查:合法的要求是由字母,数字,下划线组成。
有其它元素就错了。
并且第一个必须为字母或则是下划线。
第一个为数字就错了。
关键字不可以作为用户标识符号。
maindefinescanfprintf都不是关键字。
迷惑你的地方If是可以做为用户标识符。
因为If中的第一个字母大写了,所以不是关键字。
2)实型数据的合法形式:就是合法的,且数据是×10-1。
考试口诀:e前e后必有数,e后必为整数。
.3)字符数据的合法形式::'1'是字符占一个字节,"1"是字符串占两个字节(含有一个结束符号)。
'0'的ASCII数值表示为48,'a'的ASCII数值是97,'A'的ASCII数值是65。
4)整型一般是两个字节,字符型是一个字节,双精度一般是4个字节:考试时候一般会说,在16位编译系统,或者是32位系统。
碰到这种情况,不要去管,一样做题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
易错点C语言中易犯的错误对初学C语言的人来说,经常会出一些连自己都不知道错在哪里的错误.看着有错的程序,不知该如何改起,一些C编程时常犯的错误,写给各位学员以供参考.******************************** ******************************** ************************1.书写标识符时,忽略了大小写字母的区别.main(){int a=5;printf("%d",A);}编译程序把a和A认为是两个不同的变量名,而显示出错信息.C认为大写字母和小写字母是两个不同的字符.习惯上,符号常量名用大写,变量名用小写表示,以增加可读性.******************************** ******************************** ************************2.忽略了变量的类型,进行了不合法的运算.main(){float a,b;printf("%d",a%b);}%是求余运算,得到a/b的整余数.整型变量a和b可以进行求余运算,而实型变量则不允许进行"求余"运算.******************************** ******************************** ************************3.将字符常量与字符串常量混淆.char c;c="a";在这里就混淆了字符常量与字符串常量,字符常量是由一对单引号括起来的单个字符,字符串常量是一对双引号括起来的字符序列.C规定以"\"作字符串结束标志,它是由系统自动加上的,所以字符串"a"实际上包含两个字符:'a'和'\',而把它赋给一个字符变量是不行的.******************************** ******************************** ************************4.忽略了"="与"=="的区别.在许多高级语言中,用"="符号作为关系运算符"等于".如在BASIC程序中可以写if (a=3) then …但C语言中,"="是赋值运算符,"=="是关系运算符.如:if (a==3) a=b;前者是进行比较,a是否和3相等,后者表示如果a和3相等,把b值赋给a.由于习惯问题,初学者往往会犯这样的错误.******************************** ******************************** ************************5.忘记加分号.分号是C语句中不可缺少的一部分,语句末尾必须有分号.a=1b=2编译时,编译程序在"a=1"后面没发现分号,就把下一行"b=2"也作为上一行语句的一部分,这就会出现语法错误.改错时,有时在被指出有错的一行中未发现错误,就需要看一下上一行是否漏掉了分号.{z=x+y;t=z/100;printf("%f",t);}对于复合语句来说,最后一个语句中最后的分号不能忽略不写******************************** ******************************** ************************6.多加分号.对于一个复合语句,如:{z=x+y; t=z/100;printf("%f",t);};复合语句的花括号后不应再加分号,否则将会画蛇添足.又如:if (a%3==0);I++;本是如果3整除a,则I加1.但由于if (a%3==0)后多加了分号,则if语句到此结束,程序将执行I++语句,不论3是否整除a,I都将自动加1.再如:for (I=0;I<5;I++);{scanf("%d",&x);printf("%d",x);}本意是先后输入5个数,每输入一个数后再将它输出.由于for()后多加了一个分号,使循环体变为空语句,此时只能输入一个数并输出它.****************************************************************************************7.输入变量时忘记加地址运算符"&".int a,b;scanf("%d%d",a,b);这是不合法的.Scanf函数的作用是:按照a,b在内存的地址将a,b的值存进去."&a"指a在内存中的地址.******************************** ******************************** ************************8.输入数据的方式与要求不符.①scanf("%d%d",&a,&b);输入时,不能用逗号作两个数据间的分隔符,如下面输入不合法:3,4输入数据时,在两个数据之间以一个或多个空格间隔,也可用回车键,跳格键tab.②scanf("%d,%d",&a,&b);C规定:如果在"格式控制"字符串中除了格式说明以外还有其它字符,则在输入数据时应输入与这些字符相同的字符.下面输入是合法的:3,4此时不用逗号而用空格或其它字符是不对的.3 4 3:4又如:scanf("a=%d,b=%d",&a,&b); 输入应如以下形式:a=3,b=4****************************************************************************************9.输入字符的格式与要求不一致.在用"%c"格式输入字符时,"空格字符"和"转义字符"都作为有效字符输入.scanf("%c%c%c",&c1,&c2,&c3);如输入a b c字符"a"送给c1,字符" "送给c2,字符"b"送给c3,因为%c只要求读入一个字符,后面不需要用空格作为两个字符的间隔.****************************************************************************************10.输入输出的数据类型与所用格式说明符不一致.例如,a已定义为整型,b定义为实型a=3;b=4.5;printf("%f%d\n",a,b);编译时不给出出错信息,但运行结果将与原意不符.这种错误尤其需要注意.****************************************************************************************11.输入数据时,企图规定精度.scanf("%7.2f",&a);这样做是不合法的,输入数据时不能规定精度.****************************************************************************************12.switch语句中漏写break语句.例如:根据考试成绩的等级打印出百分制数段.switch(grade){ case 'A':printf("85~100\n"); case 'B':printf("70~84\n");case 'C':printf("60~69\n");case 'D':printf("<60\n"); default:printf("error\n");由于漏写了break语句,case只起标号的作用,而不起判断作用.因此,当grade值为A时,printf函数在执行完第一个语句后接着执行第二,三,四,五个printf函数语句.正确写法应在每个分支后再加上"break;".例如case 'C':printf("60~69\n");break; ****************************************************************************************13.忽视了while和do-while语句在细节上的区别.(1)main(){int a=0,I;scanf("%d",&I); while(I<=10){a=a+I;I++;}printf("%d",a);}(2)main(){int a=0,I;scanf("%d",&I);do{a=a+I;I++;}while(I<=10);printf("%d",a);}可以看到,当输入I的值小于或等于10时,二者得到的结果相同.而当I>10时,二者结果就不同了.因为while循环是先判断后执行,而do-while循环是先执行后判断.对于大于10的数while循环一次也不执行循环体,而do-while语句则要执行一次循环体.******************************** ******************************************************** 14.定义数组时误用变量. int n; scanf("%d",&n); int a[n]; 数组名后用方括号括起来的是常量表达式,可以包括常量和符号常 量.即C 不允许对数组的大小作动态定义. **************************************************************************************** 15.在定义数组时,将定义的"元素个数"误认为是可使的最大下 标值. main() {static int a[10]={1,2,3,4,5,6,7,8,9,10}; printf("%d",a[10]); } C 语言规定:定义时用a[10],表示a 数组有10个元素.其下标值由0 开始,所以数组元素a[10]是不存在的. **************************************************************************************** 16.初始化数组时,未使用静态存储. int a[3]={0,1,2}; 这样初始化数组是不对的.C 语言规定只有静态存储(static)数组 和外部存储 (exterm)数组才能初始化.应改为: static int a[3]={0,1,2}; **************************************************************************************** 17.在不应加地址运算符&的位置加了地址运算符. scanf("%s",&str); C 语言编译系统对数组名的处理是:数组名代表该数组的起始地址 ,且scanf 函数中的输入项是字符数组名,不必要再加地址符&.应 改为:scanf("%s",str); **************************************************************************************** 18.同时定义了形参和函数中的局部变量. int max(x,y) int x,y,z; {z=x>y?x:y; return(z); } 形参应该在函数体外定义,而局部变量应该在函数体内定义.应改 为: int max(x,y)int x,y;{int z;z=x>y?x:y;return(z);}试题一一、单项选择题(共30分,每题1分)C1. 下列不正确的转义字符是A.\\B.\‘ C.074 D.\02. 不是C语言提供的合法关键字是A.switchB.cherC.caseD.default3.正确的标识符是()A.?a B.a=2 C.a.3 D.a_34.下列字符中属于键盘符号的是A.\ B.\n C.\t D.\b.下列数据中属于“字符串常量”的A.ABC B.“ABC” C.‘ABC’ D.‘A’6.char型常量在内存中存放的是A.ASCII码B.BCD码C.内码值D.十进制代码值7.设a为5,执行下列语句后,b 的值不为2的是()A.b=a/2B.b=6-(——a) C.b=a%2 D.b=a>3?2:28.在以下一组运算符中,优先级最高的运算符是()A.<= B.= C.% D.& &9.设整型变量i的值为3,则计算表达式i——i后表达式的值是()A.0B.1C. 2D.表达式出错10.设整型变量a,b,c均为2,表达式a+++b+++c++的结果是()A.6B.9C.8D.表达式出错11.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是()A.1B.2C.2.0D.2.512.设a=1,b=2,c=3,d=4,则表达式:a<b?a:c<d?a:d的结果是()A.4B.3C.2D.113.设a为整型变量,不能正确表达数学关系:10<a<15的C语言表达式是()A.10<a<15B.a==11 || a= =12 || a= =13 || a= =14C.a>10&&a<15D.!(a<=10)&&!(a>=15)14.若有以下定义:char a、 intb 、 floatc 、 double d,则表达式a*b+d-c值的类型为()A.floatB.intC.charD.double15.表达式“10!=9”的值是()A.trueB.非零值 C.0 D.116.循环语句 for (x=0,y=0;(y!=123)|| (x<4);x++);的循环执行()A.无限次B.不确定次 C.4次 D.3次17.在C语言中,下列说法中正确的是()A. 不能使用“do while”的循环B.“do while”的循环必须使用break语句退出循环C.“do while”的循环中,当条件为非0时将结束循环D.“do while”的循环中,当条件为0时将结束循环。