C语言2
c语言二级考试题及答案
c语言二级考试题及答案### C语言二级考试题及答案#### 单项选择题1. 题目:以下哪个选项是C语言中合法的变量名?- A. 2variable- B. variable-name- C. $variable- D. variable_name答案:B2. 题目:C语言中,以下哪个选项是正确的字符串字面量? - A. "Hello, World!"- B. 'Hello, World!'- C. "Hello World"- D. 'Hello World'答案:A3. 题目:在C语言中,以下哪个选项是正确的整型常量? - A. 0x1A- B. 1.2E3- C. 0123- D. 0b1010答案:A#### 填空题1. 题目:在C语言中,以下代码段的输出结果是____。
```cint a = 5;printf("%d", a++);```答案:52. 题目:以下代码段中,变量`b`的值是____。
```cint a = 10, b;b = a % 3;```答案:13. 题目:以下代码段中,变量`c`的值是____。
```cfloat a = 2.5, b = 4.5;int c = a + b;```答案:7#### 编程题1. 题目:编写一个C语言程序,计算并输出以下数列的前10项之和:1, 1/2, 1/3, 1/4, ...```c#include <stdio.h>int main() {double sum = 0.0;for (int i = 1; i <= 10; i++) {sum += 1.0 / i;}printf("Sum of the first 10 terms: %f\n", sum); return 0;}```2. 题目:编写一个C语言程序,实现两个整数的交换。
第2章 基本c语言-2
单分支if语句:
if(表达式) 语句;
双分支if语句:
if(表达式) 语句1; else 语句2;
利用goto语句改变程序执行方向的句式如下:
goto 标号;
与goto语句配合使用的标号语句的句式如下:
标号: 语句;
#include<stdio.h> #include<stdlib.h> #include<time.h> int main(void) {
2.5.1 自动类型转换
double ← float ↑ long ↑ unsigned ↑ int←char,short
高
低
格式:(类型说明符)表达式 功能:把表达式的结果强制转换为类型说明符所
表示的类型。
例如:
(int)a
将a的结果强制转换为整型量。
(int)(x+y) 将x+y的结果强制转换为整型量。 (float)a+b 将a的内容强制转换为浮点数,再与b相加。
time()函数将从1970年1月1日00.00.00到当前时
间所经过的秒数存储到实参指向的变量。
#include<stdio.h> #include<stdlib.h> int main(void) { int x,y; x=rand(); y=rand(); printf("x=%d,y=%d",x,y ); return 0; }
printf("circle's radius is:%d,area is:%f\n",radius,area);
类型 d,i
说明 带符号十进制整数
类型 c
教案C语言2
郑州信息科技职业学院教案授课题目:C语言的运算符和表达式、数据类型的转换第二讲:C语言的运算符和表达式、数据类型的转换授课时数:3教学目的与教学要求:1、掌握C语言的各种运算;2、掌握C语言中运算过程中不同的数据类型的转换。
主要内容:1、算术运算符和算术表达式;2、关系运算和逻辑运算;3、自增、自减运算;4、赋值运算;5、其他运算;6、表达式和表达式语句;7、自动类型转换和赋值转换;8、强制类型转换。
重点和难点:1、自增、自减运算;2、自动类型转换和赋值转换;3、强制类型转换。
教学方法和手段教具多媒体演示和板书相结合授课内容:第三章3、1运算符与表达式C的运算符有以下几类:本章主要介绍算术运算符(包括自增自减运算符)、赋值运算符、逗号运算符,其它运算符在以后相关章节中结合有关内容陆续进行介绍。
3、1、1 算术运算符和算术表达式1、算术运算符+(加法运算符。
如3+5)-(减法运算符或负值运算符。
如5-2,-3)*(乘法运算符。
如3*5)/(除法运算符。
如5/3,5.0/3)%(模运算符或求余运算符,%要求两侧均为整型数据。
如7%4的值为3)。
除了负值运算符-单目运算符外,其它都是双目运算符。
说明:(1)两个整数相除的结果为整数,如5/3的结果为1,舍去小数部分。
(2)如果参加+,-,*,/运算的两个数有一个为实数,则结果为double型,因为所有实数都按double 型进行计算。
(3)求余运算符%,要求两个操作数均为整型,结果为两数相除所得的余数。
求余也称为求模。
一般情况,余数的符号与被除数符号相同。
例如:-8%5=-3;8%-5=32、算术表达式算术表达式:用算术运算符和括号将运算对象(也称操作数)连接起来的、符合C语法规则的式子,称为算术表达式。
运算对象可以是常量、变量、函数等。
例如,下面是一个合法的C算术表达式。
a*b/c-1.5+’a’。
注意:C语言算术表达式的书写形式与数学表达式的书写形式有一定的区别:(1)C语言算术表达式的乘号(*)不能省略。
c语言2进制数表示方法
c语言2进制数表示方法进制的表示方法在C语言种,一个数字默认就是十进制的,表示一个十进制数字不需要任何特殊的格式。
但是,表示一个二进制、八进制或者十六进制数字就不一样了,为了和十进制数字区分开来,必须采用某种特殊的写法,具体来说,就是在数字前面加上特定的字符,也就是加前缀。
1).二进制二进制由 0 和 1 两个数字组成,使用时必须以0b或0B(不区分大小写)开头,例如:int a = ob110 int b = -0 b int c = OB int a = 110 int b = OB510注意:并不是所有的编译器都支持二进制数字,只有一部分编译器支持,并且跟编译器的版本有关系2).八进制八进制由 0~7 八个数字组成,使用时必须以0开头(注意是数字0,不是字母 o)int a = 023 ; int b = - 0521 ; int c = ; int m= 256 ; int n = 03 A2 ;3).十六进制十六进制由数字 0~9、字母 A~F 或 a~f(不区分大小写)组成,使用时必须以0x或0X(不区分大小写)开头int a = 0X2A ; int b = -0XA0 ; int c = 0xffff ; int m = 5 A ; int n = 0 X3H ;4).十进制十进制由 0~9 十个数字组成,没有任何前缀,和我们平时的书写格式一样进制的输出格式控制符说明 %c 输出一个单一的字符 %hd、%d、%ld 以十进制、有符号的形式输出 short、int、long 类型的整数 %hu、%u、%lu 以十进制、无符号的形式输出 short、int、long 类型的整数 %ho、%o、%lo 以八进制、不带前缀、无符号的形式输出 short、int、long 类型的整数 %#ho、%#o、%#lo 以八进制、带前缀、无符号的形式输出short、int、long 类型的整数%hx、%x、%lx、%hX、%X、%lX 以十六进制、不带前缀、无符号的形式输出short、int、long 类型的整数。
C语言基础知识2
说明:① int a,h,area; 变量定义,必须先定义再使用。 ② scanf():格式化输入函数。 ③ printf():格式化输出函数。
2.2.2 常量、变量和数据类型
int a,h,area; area=1.0/2*a*h;
数据
常量:在程序运行过程中,其值不能被改变 变量:在程序运行过程中,其值可以被改变
y = 4*(x-30)/5+18;
printf("x=%f,y=%.2f\n",x,y); return 0;
}
函数体构成:IPO结构
2.3.2 关系运算:比较运算
名称 大于 大于或等于 小于 小于或等于 等于 不等于
运算符
>
>=
<
<=
==
!=
优先级
高
低
结合方向
从左向右
2.3.2 关系运算:比较运算
将赋值运算符右侧表达式的值赋给左侧的变量
2.2.4-1 格式化输出函数printf
数据输出:格式化输出函数 printf 系统库函数:stdio.h系统文件中声明 #include <stdio.h> Hello World! 示例:
farh=100,celsius=37 printf("Hello World! \n"); printf("fahr = %d, celsius = %d\n", fahr, celsius);
2.3.1 程序解析
问题分析与算法设计
这是一个二分段函数的计算问题,属于简单的分 支结构问题。算法用自然语言描述如下: 第一步:输入用电量 => x
第二步:计算电费y:
c语言 2输入输出
二、基本输入输出语句(一)选择题1.逻辑运算符两侧运算对象三数据类型A.只能是0和1 B.只能是0或非0正数C.只能是整型或字符型数据 D.可以是任何类型的数据2.设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为A. 1 B. 2 C. 3 D. 43.以下程序的运行结果是main(){ int a,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(“%d,%d”,a,b);}A. 6,1 B. 2,1 C. 6,0 D. 2,04.若运行时给变量x输入12,则以下程序的运行结果是main(){ int x,y;scanf(“%d”,&x);y=x>12 ? x+10 : x-12;printf(“%d\n”,y);}A. 4 B. 3 C.2 D. 15.指出下面不正确的赋值语句是A.a++ B.a==C.a+=b;D.a=1,b=26.在C语言中,错误的语句是。
A.a=b=c;B.;C.breakD.b=3*5,a*=4;7.以下所列语句中,合法的语句是。
A.a=1,b=2B.++a;C.a=a+1=5;D.y=int(a);8.若x,y均为int型数据,z为double型数据,则以下的scanf函数调用语句中不合法的是A.scanf(“%d%lx,%le”,&x,&y,&z); B.scanf(“%2d*%d%lf”,&x,&y,&z);C.scanf(“%x%*d%o”,&x,&y); D.scanf(“%x%o,%6.2f”,&x,&y,&z);9. 若x, y均为int型变量且有值,要输出x, y的值,正确的输出函数调是A. printf("%d%d",&x,&y);B. printf("%f%f",x,y);C. printf("%f%d",x,y);D. printf("%d%d",x,y);10. x为int型变量,且值为2345,不正确的输出函数调用是A. printf("%d",x);B. printf("%3d",x);C. printf("%c",x) ;D. printf("%s",x);11. 若m为float型变量,则执行以下语句后的输出为m=1234.123;printf(“%-8.3f\n”,m);printf(“%10.3f\n”,m);A.1234.123B. 1234.1231234.123 1234.123C.1234.123D. 1234.123001234.123 001234.12312.putchar函数可以向终端输出一个A. 整型变量表达式B.实型变量值C. 字符串D. 字符或字符型变量值13.printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。
C语言2级基础知识
计算机二级C第一章基本概念 (2)第二章C程序设计的初步知识 (4)2-1 第一节简单C语言的构成和格式 (4)2-4 第二节标识符的组成和分类 (4)2-5 第三节整型数据和实型数据 (5)第四节算术表达式和赋值表达式 (9)2-16 第五节自加自减运算 (11)2-17 第六节课后习题和典型例题讲解 (12)第三章顺序结构 (13)3-1 第一节输出函数 (13)3-6 第二节输入函数 (14)3-10 第三节程序举例 (15)3-11 第四节课后习题和典型例题详解 (16)第四章选择结构 (16)4-1 第一节关系运算符和关系表达式 (16)4-3 第二节逻辑运算符和逻辑表达式 (17)4-6 第三节选择语句的使用 (18)4-10 第四节goto语句及课后习题讲解 (22)5-1 第五章循环结构 (24)第一节while语句和do-while语句的组成 (24)5-6 第二节for语句和累加累乘算法 (26)5-11 第三节循环嵌套的实例讲解 (29)5-31 第四节break语句和continue语句的使用方法 (37)5-32 第五节课后习题和典型例题的讲解 (38)6-1 第六章字符型数据 (40)第一节字符型常量和字符型变量 (40)6-5 第二节输入输出函数 (42)6-8 第三节程序举例 (43)6-11 第四节课后习题讲解和典型例题分析 (43)7-1 第七章函数 (44)第一节函数的定义和返回值 (44)7-5 第二节函数的调用和说明 (47)7-7 第三节调用函数和被调用函数之间数据的传递 (47)7-9 第四节函数程序举例 (48)7-16 第五节课后习题讲解 (52)备注:该内容为视频内容笔记。
视频内容出处为:全国计算机等级考试二级(C语言)视频教程- 视频中心·网易学院网络地址为:/special/000915SN/cyuyan.html第一章基本概念1-1计算机语言高级语言远离硬件 VB、VF、C、C++、Java低级语言贴近硬件汇编、T-Basic基本概念1.机器语言:对于计算机本身来说,它只是接受和处理由0和1代码构成的二进制指令或数据,由于这种形式的指令是面向机器的,因此也称为“机器语言”。
全国二级c语言教程
C语言的应用领域
操作系统
C语言是开发操作系统的首选语言,如 UNIX、Linux等都是用C语言编写的。
嵌入式系统
C语言在嵌入式系统开发中占据重要地位, 如微控制器编程、驱动程序开发等。
游戏开发
网络编程
许多经典的游戏都是用C语言编写的,如《 超级马里奥》、《俄罗斯方块》等。
C语言在网络编程方面也有广泛应用,如 TCP/IP协议栈的实现、网络服务器的开发 等。
全国二级C语言教程
contents
目录
• C语言概述 • C语言基础 • 数组与指针 • 结构体与共用体 • 文件操作 • C语言高级特性
01 C语言概述
C语言的历史与发展
起源
C语言最初是由丹尼斯·里奇(Dennis Ritchie)在1972年为开发UNIX操作 系统而设计的一种高级编程语言。
常用于底层编程、硬件操作、加密解密等领域。
类型转换与类型别名
类型转换
将一种数据类型转换为另一种数据类型,包括隐式转 换和显式转换两种方式。
类型别名
使用`typedef`关键字为数据类型定义别名,方便代码 阅读和维护。
类型转换的注意事项
在类型转换时需要注意数据溢出、精度丢失等问题。
可变参数列表与函数指针
结构体数组与指针
结构体数组
结构体数组是指元素类型为结构体的 数组。定义结构体数组后,可以像使 用普通数组一样使用结构体数组,包 括赋值、取值、遍历等。
结构体指针
指向结构体的指针称为结构体指针。通过 结构体指针可以访问结构体的成员,需要 使用`->`运算符。结构体指针在函数参数 传递、动态内存分配等方面有广泛应用。
函数定义
函数是一段完成特定功能的代码块,通 过函数名进行调用。
计算机等级考试二级C语言第2讲 程序控制结构
}
return 0; }
对吗?
(3)if…else if语句 在C++程序还经常使用如下结构: if(表达式1)语句1
else if(表达式 2)语句 2 else if(表达式3)语句 3
… else if(表达式n)语句 n
else语句n+1 这种嵌套的if语句构成的序列是编写多路判定的最一般的方法。
printf("%d\n",d); } 程序运行后的输出结果是 A) 2 B) 3 C) 43 D) 44
当a=1,b=3,c=5,d=5时,执行下面一段程序后,x的值为 if(a<b)
if(c<d) x=1; else
if(a<c) if(b<d) x=2; else x=3;
else x=6; else x=7; A.1 B.2 C.3 D.6
大纲内容
四、选择结构程序设计 1.用 if 语句实现选择结构。 2.用 switch语句实现多分支选择结构。 3.选择结构的嵌套。 五、循环结构程序设计 1.for 循环结构。 2.while 和 do-while循环结构。 3.continue语句和 break语句。 4. 循环的嵌套。
1. 用 if 语句实现选择结构
printf(“%d\n”,k);
A.-1
B.0
C.9
D.28 D.10
有以下程序 main() { int k=5,n=0;
while(k>0) { switch(k)
{ default : break; case 1 : n+=k; case 2 : case 3 : n+=k;
} k--; } printf("%d\n",n); } 程序运行后的输出结果是 A)0 B)4 C)6 D)7
C语言 第2章 类型、运算符与表达式(2.4~2.7)
数据类型、运算符和表达式
主要内容
2.1 预备知识 2.2 常量和变量的概念 2.3 各种数据类型的常量及变量 2.4 变量赋初值 2.5 不同类型数据之间的混合运算 2.6 常用运算符和表达式 2.7 输入函数与输出函数
2
2.4.1 变量和内存的概念
变量: 程序运行过程中其值可以改变的量。 系统为程序中的每一个变量开辟存储单元。 变量名: 字母开头,后跟字母、数字和下划线组成。 C语言中的关键字不能作为变量名。
37
2.7.1
格式输出函数printf
printf函数一般格式: printf(格式控制,输出表列) 格式控制是由双引号括起来的字符串,包含三种信息: 1、格式说明:由“%”和格式字符组成,如%d,%f等。 它的作用是将输出的数据按照指定的格式输出。 2、普通字符:需要原样输出的字符。 3、转义字符:用于控制输出。 输出表列是一些要输出的数据。
27
2.5 数据的混合运算
1、自动转换
• 运算转换
• 赋值转换 2、强制类型转换
28
1、自动转换—运算转换
在进行运算时,不同类型的数据要先自动转换成 同一类型,然后进行运算。转换的规则按图所示。
double← float
long unsigned 转换由编译系统自动完成。 转换按数据长度增加的方向进行, 即按“向高看齐”的原则提升“ 较低”类型,以保证不降低精度。
33
2、强制类型转换
注意:对一个变量进行强制转换后,得到一个新的 类型的数据,但原来变量的类型不变。 例:x原为实型变量且值为2.6,在执行 i = (int)x 后得到一个整数 2,并把它赋给整型变量 i, 但 x 仍为实型,值为2.6。
C语言第2章基本数据类型与表达式
2.1.3 关键字
关键字(又称保留字)是一种语言中规定具有特定含义的标识符。 C语言可使用以下32个关键字:
auto
double int struct
break
else long switch
case
enum
char
extern
const
float short
continue default
for signed goto sizeof
例: main() { int x,y,z,w; /*定义x,y,z,w为整型变量*/ unsigned int k; /*定义k为无符号整型变量*/ x=10; y=-20; k=30; z=x+k;w=y+k; /*不同类型的整型变量x、y、k可运算*/ printf(″x+k=%d,y+k=%d\n″,z,w); } 程序运行结果为: x+k=40,y+k=10
3. 字符常量
C语言的字符常量是用单撇号括起来的一个字符。如 ′x′,′+′,′\n′,′\101′都是合法的字符常量。 字符数据在内存中是以ASCII码存储,它的存储形式与整数的存储 形式类似。因此可以通用。例如: #include <stdio.h> main() { char c1,c2; c1=97; c2=98; printf(″%c ,%c\n″c1,c2); printf(″%d, %d\n″c1,c2); } 在程序中我们将整数97和98分别赋给c1和c2,它的作用相当于以 下两个赋值语句: c1=′a′; c2=′b′; 运行时输出结果如下: a,b
4. 字符串常量
• C语言没有专门的字符串类型变量,但有字符串 常量。字符串常量是由一对双撇号括起来的字符 序列。 如:″changsha″, ″central south university″,″+++ \\?ab″都是合法的字符串常量。 • 不要将字符常量与字符串常量混淆。如: ′a′是字符常量, ″a″是字符串常量
C语言2
C:如果函数值的类型与返回值类型不一致,以函数值类型为准
D:如果形参与实参类型不一致,以实参类型为准
答案:C
第5题 (1.0分) 题号:561 难度:中 第1章
以下叙述中正确的是 ()。
A:C程序中注释部分可以出现在程序中任意合适的地方
}
A:0
B:5
C:1
D:不确定值
答案:A
第11题 (1.0分) 题号:491 难度:中 第1章
下列程序段的输出结果为()。
float k=0.8567;
printf("%06.1f%%",k*100);
A:0085.6%%
B:0085.7%
答案:D
第23题 (1.0分) 题号:544 难度:中 第1章
char *s1="hello",*s2;s2=s1;则()。
A:s2指向不确定的内存单元
B:不能访问"hello"
C:puts(s1);与puts(s2);结果相同
D:s1不能再指向其它单元
D:&
答案:A
第8题 (1.0分) 题号:148 难度:中 第1章
C语言中要求对变量作强制定义的主要理由是()。
A:便于移植
B:便于写文件
C:便于编辑预处理程序的处理
D:便于确定类型和分配空间
答案:D
第9题 (1.0分) 题号:92 难度:中 第1章
A:static int a[2][3]={1,2,3,4,5,6};
B:static int a[2][3]={{1},{4,5}};
C语言第2章 数据类型及运算符
C/C++程序设计第2 章数据类型及表达式计算机学院C/C++程序设计课程组C/C++程序设计第2章主要内容本章主要介绍:基本数据类型和存储类型的说明方法,以及基本运算符的运算规则和表达式的构成方法,为后续章节的学习奠定一个基础。
C/C++程序设计2.1 C 语言的数据类型使用高级语言编写程序,主要工作有两项:一是描述数据,二是描述数据加工的方法。
数据类型图 2.1C 语言的数据类型基本类型整型实型字符型带符号长整型(简称长整型)带符号整型无符号整型无符号整型无符号短整型无符号长整型单精度型双精度型空类型构造类型指针类型枚举类型数组类型结构体类型共用体类型C/C++程序设计2.2 常量常量是程序运行过程中其值不发生变化的数据。
2.2.1 整型常量表2.1 整型数据的表示方式2.2.2 实型常量3.14、.9999、-3.14159、834.、–0.666 、6.89E-52.2.3 字符常量’x’,’a’,’A’,’b’,’$’,’#’ ,printf("\tab\rcd\n\’ef\\g");2.2.4 符号常量#define 符号常量字符串#define PI 3.14159C/C++程序设计【例2.1】求一个圆柱体体积,用符号常量代替π。
#include <stdio.h>#define PI 3.14159 /*定义PI为符号常量*/void main(){float r,h,v;scanf("%f,%f",&r,&h);v=PI*r*r*h; /* PI相当于3.14159,参与运算*/printf("Volume=%f",v);}运行时输入:3,2↙运行结果为: Volume=56.548618C/C++程序设计2.2.5 字符串常量"\tab\rcd\n\’ef\\g“"I am a student" 、"x"、""注意:’\0’和’0’不同,’\0’是编码为0的字符,而’0’则是数字0,其编码为48。
c语言程序设计第2版习题答案
c语言程序设计第2版习题答案1. 基础语法练习题- 题目:编写一个程序,计算并输出1到10的和。
- 答案:使用一个循环结构,累加1到10的数值。
```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 10; ++i) {sum += i;}printf("The sum from 1 to 10 is: %d\n", sum);return 0;}```2. 数组和字符串练习题- 题目:编写一个程序,找出一个字符串中出现次数最多的字符,并输出它。
- 答案:使用数组来统计每个字符的出现次数,然后找出最大值。
```c#include <stdio.h>#include <string.h>int main() {char str[] = "example string";int maxCount = 0;char maxChar = str[0];int charCount[256] = {0};for (int i = 0; str[i] != '\0'; ++i) {charCount[(int)str[i]]++;if (charCount[(int)str[i]] > maxCount) { maxCount = charCount[(int)str[i]];maxChar = str[i];}}printf("The most frequent character is: %c\n", maxChar);return 0;}```3. 函数和指针练习题- 题目:编写一个函数,交换两个整数的值。
- 答案:使用指针来实现参数的传递。
```c#include <stdio.h>void swap(int *x, int *y) {int temp = *x;*x = *y;*y = temp;}int main() {int a = 5, b = 10;printf("Before swap: a = %d, b = %d\n", a, b);swap(&a, &b);printf("After swap: a = %d, b = %d\n", a, b);return 0;}```4. 结构体和文件操作练习题- 题目:定义一个结构体,包含学生姓名、学号和成绩,编写程序,将学生信息存储到文件中。
C语言教程第2章数据类型、运算符与表达式
常量只能在定义时赋值,然后不能再改变 其值 常数、 const常量、宏常量和枚举常量, 都可以用来表示一个永远不会改变的数
前者不建议直接使用,而用后三者代替
C语言大学实用教程
2.5 变 量
变量是在程序执行过程中可以改变、可以赋 值的量。
在程序中每一个变量都有一个名子即变量名, 程序对该变量访问(存入、读取)都是通过变 量名进行的。
运行结果: 1234567936.000000
1234567890.000000
}
C语言大学实用教程
2.6 常用运算符及表达式
算术运算符
+,-,*,/,%
加、减、乘、除、求余运算 四则混合运算中,先算乘除,后算加减, 按从左向右的顺序计算,左结合
#include <math.h>
常用的标准数学函数
C语言大学实用教程
#include <stdio.h> /*函数功能:计算两个整数相加之和 入口参数:整型数据a和b 返回值: 整型数a和b之和 */ int Add(int a, int b) { return (a + b); }
2.1 一个简单的C程序例子
/*主函数*/ ) { int x, y, sum = 0;
022、-037 010和10大小不一样 因为八进制并不常用,所以此种表示法比较少见
以“0x”或者“0X”开始的整型常数是十六进 制
A~F和a~f用来表示十进制的10~15
十六进制的形式比较常用,尤其在进行位一级的 控制的时候 0x12、-0x1F, -0x1f
C语言大学实用教程
2.4 常量
字符常量
C语言第2章PPT教学课件
如:x=x+y;
可以缩写成:: 变量 运算符=表达式;
x=x*(y+z);
如:int a=’A’;
int b=3.14159;
可写成x+=y; 可写成x*=y+z;
⑵ 10种复合赋值运算符: +=(加赋值)、-=(减赋值)、*=(乘赋值)、/=(除赋值)、%=(求余赋值)、 &=(按位与赋值)、|=(按位或赋值)、^=(按位异或赋值)、<<=(左移位赋值)、>>=(右移位赋值)
2.4.4 赋值运算符与赋值表达式
调试时若不删除原程序的文件夹, 则会出现出错对话框。
[复习] 1 作业讲评:(成绩单) 11、16、24、34号遇到问题,自己解决。26号问题是:printf(“保留两位小数:%g\n”,d);(中文分号) 下载第一次作业
文件名中有“-”号(P3),以后一律使用小写字母;文件不全(不用IE,改用flashget),可以再次上传到“补交”文件夹;
2020/12/11
3
六、逗号运算符和逗号表达式 1.逗号运算符的使用格式 表达式1,表达式2,…,表达式n 2.逗号表达式的运算规则 其结果与最后一个表达式的值相同,可以是任何类型 优先级最低,左结合性(即从左到右) 如:若有int a=2;float b=5.2; 则2*a,2*b的结果是10.4
用真值表验证
⑴写出判断整型变量i,j 不同时为0(i,j不同时为0时表达式值为1,同时为0时表达式值为0)的表达式。
⑵对于整型变量i和j ,表达式(i=j=5,i=j!=5+(1>=3<=5)的值是什么?
该表达式的值为1
c语言2级考试
1、在C语言中,以下哪个关键字用于定义一个宏?A. #defineB. #ifdefC. #includeD. #else(答案)A2、以下哪个运算符在C语言中表示逻辑“与”?A. &B. &&C. |D. ||(答案)B3、在C语言中,数组的索引从哪个数字开始?A. 0B. 1C. -1D. 依编译器而定(答案)A4、以下哪个是C语言中的基本数据类型?A. StringB. BooleanC. FloatD. Integer(注:C标准库中无直接的Boolean类型,但可通过int或_Bool表示;此处为简化考虑常见教学用法)(答案)C(注:严格来说C语言标准中无直接的String和Boolean类型,但考虑到教学实际,通常将int视为可表示Boolean,float/double视为可表示浮点数的基本类型;此题若严格则无正确答案,按常见教学理解选C)5、在C语言中,使用哪个关键字可以定义一个结构体?A. classB. structC. unionD. enum(答案)B6、以下哪个循环结构在C语言中不是基于条件的?A. forB. whileC. do-whileD. foreach(注:C语言无直接的foreach循环,此为陷阱选项)(答案)D7、在C语言中,指针变量的值是什么?A. 内存单元的内容B. 内存单元的地址C. 一个整型值D. 一个字符型值(答案)B8、以下哪个函数在C语言中用于动态分配内存?A. malloc()B. free()C. calloc()D. realloc()(注:此题有多个函数可用于动态内存分配,但要求选出一个最基础的)(答案)A(注:虽然calloc()和realloc()也用于动态内存分配,但malloc()是最基础和常用的)9、在C语言中,以下哪个关键字用于表示函数的返回类型?A. voidB. returnC. int(注:此为具体类型,非关键字,但作为常见返回类型列出以混淆)D. func(答案)A(注:此题有歧义,因为int等也是返回类型,但要求的是关键字;若严格则无正确答案,按题意寻找最接近的关键字选A,表示无返回值的情况)10、在C语言中,以下哪个头文件包含了标准输入输出函数的声明?A. <stdio.h>B. <stdlib.h>C. <string.h>D. <math.h>(答案)A。
C语言第2章算法
第2章程序的灵魂——算法本章重点:1、初步掌握如何设计一个算法2、掌握结构化的程序设计方法——传统的流程图和N-S流程图。
程序=算法(叙述:对操作的描述)+数据结构(叙述:数据类型及组织形式)+程序设计方法+语言工具和环境。
C程序的设计:包括分析问题,写出算法,用C语句(叙述:包括定义语句,控制语句,函数调用,表达式语句,空语句,复合语句)写出程序(设计程序),上机运行。
算法是程序设计的关键。
2.1算法的概念算法:为解决一个问题而采取的方法和步骤。
简单地说就是:解决问题需要做什么并且怎么做。
2.2 简单算法举例高级语言程序设计均是结构化的设计方法。
结构化的设计方法:使用结构清晰,便于阅读的程序结构;体现为自顶向下,逐步细化。
先理解:i=i+1同理:如i=2,p=1, p=p×i通过以下五个例子逐步熟悉算法的设计方法:P14~18例2.1求5!例2.2假设一个班有50个学生,将成绩为80分以上的学生学号及成绩打印出来。
例2.3判断2000~2500年中的哪些年是闰年,并输出结果。
见P17图的分析例2.4求1-1/2+1/3-1/4+...+1/99-1/100例2.5判断≥3的正整数是否为素数。
2.3 算法的特性1、有穷性。
若有循环,则需要有使程序结束的条件;避免死循环。
2、确定性。
算法中每一步骤都应当是确定无误的,不能模棱两可,否则产生歧义性。
3、有0或多个输入。
即程序中可以没有输入语句。
4、有一个或多个输出。
即至少要有一个输出。
5、有效性。
如设计的算法中避免用零做除数。
2.4 怎样表示一个算法本节主要介绍三种方法:自然语言,传统流程图,结构化流程图:N-S流程图。
一、用自然语言:表述要清楚、确定。
2.2节例子就是用它表示的。
缺点:需根据上下文理解正确含义,若断章取义则会失去本身含义。
二、用流程图●美国国家标准化协会ANSI规定常用的流程图符号:P20图2.3●第二节中的例子用流程图表示的结果:P20~23●传统流程图的缺点:复杂问题流程线多,容易绕糊涂,象走迷宫。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言模拟试题及答案(二)一、单项选择题1.不是C语言基本数据类型的是( )。
A) 指针类型 B) 整型 C) 无符号长整型 D) 单精度型2.正确的字符串常量是( )。
A) "abcd" B) {abcd} C) {"abcd"} D) abcd3.在C语言中,只能用于整型数据操作的运算符是( )。
A) ! B) < C) / D) %4.下列有关函数的说法中错误的是( )。
A) C语言中的函数只具有static和extern两种类型B) C语言中允许函数的递归调用C) 调用函数时,C语言要求实参与形参的个数,类型完全一致D) C语言函数的缺省数据类型是空类型(void型)5.若有以下说明和语句,请选出那个是对a数组元素的正确引用( )。
int a[4][5],(*p)[5];p=a;A) p+1 B) *(p+3) C) *(p+1)+3 D)*(*p+2)6.下面各语句行中,能正确进行赋字符串操作的语句行是( )。
A) char st[4][5]={"ABCDE"}; B) chars[5]={ˊAˊ,ˊBˊ,ˊCˊ,ˊDˊ,ˊEˊ};C) char *s;s=" ABCDE"; D) char *s; scanf("%s",s);7.以下程序,如从键盘上输入-1,则程序的输出是( )。
#include<stdio.h>main(){ int x,y;printf("Enter an integer(x):");scanf("%d",&x);if(x++<0) y=-1;else if(x==0) y=0;else y=1;printf("%d",y);}A) -1 B) 0 C) 1 D) 不确定的值8.下面程序的输出结果是( )。
#include<stdio.h>main(){ int x=1,y=0,a=0,b=0;switch(x){ case 1:switch(y){ case 0:a++;break;case 1:b++;break;}case 2:a++;b++;break;}printf("a=%d,b=%d\n",a,b);}A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D)a=2,b=29.下面有关for语句的说法中,正确的是( )。
A) 任何情况下,for语句中的三个表达式一个都不能少B) for语句中的循环体至少会被执行一次C) for语句只能用于循环次数已经确定的情况下D) for语句中的循环体可以是复合语句10.下面程序的输出结果是( )。
#include<stdio.h>main(){ int n[2],i,j,k;for(i=0;i<2;i++) n[i]=0;k=2;for(i=0;i<k;i++)for(j=0;j<k;j++) n[j]=n[i]+1;printf("%d\n",n[k]);}A) 不确定的值 B) 3 C) 2 D) 1二、填充题1.能够构成数组的各个元素必须具有相同的_______。
2.能正确表示0<=x<=10的关系表达式是_______。
3.表达式!2+1>2&&15%5+2的值是_______。
4.下面字符串的长度为_______。
char *s="\xab\107\\A\""5.有以下运算符:+,&,<,!,优先级最高的是_______。
6.若有以下定义char ch[10];则数组ch元素下标的上限为_______,下限为_______。
7.C语言的数组名是一个_______常量,不能对它进行加减和赋值等运算。
8.有以下函数调用语句,请问函数fun1到底有_______个参数。
fun1(x,(y,z),10,fun2((x-1,y-1)))9.函数调用时,若形参和实参均为数组,则其传递方式是_______。
10.设有char a,b;若要通过a&b运算屏蔽掉a中的其它位,只保留第2位与第8位(右起为第1位),则b的二进制数据应该为_______。
三、判断题1.( )一个int型与一个double型数据进行混合运算时,其结果是double 型。
2.( )语句int pt中的*pt是指针变量名。
3.( )putchar()函数可以输出一个字符串。
4.( )主函数和其它函数可以相互调用。
5.( )C程序的执行总是从第一个定义的函数开始。
6.( )puts和gets函数只能输入或输出一个字符串。
7.( )for(;;)语句相当于while(1)语句。
8.( )C程序中各函数之间既允许直接递归调用也允许间接递归调用。
9.( )函数必须有返回值,否则不能使用函数。
10.( )静态外部变量既可以在文本文件中引用,也可以在其它文件引用。
四、程序分析题1.运行以下程序片段,输出的结果是:#include<stdio.h>main(){ int a=1,b=2;printf("%d,",func(a,b));printf("%d",func(a,b));}func(int x,y){ static int a=0,b=1;a=b*2;b=a+x+y;return(b);}2.下面程序的输出结果是:#define MAX 5int a[MAX],k;main(){ fun1();fun3();fun2();fun3();printf("\n");}fun1(){ for(k=0;k<MAX;k++) a[k]=k+k;}fun2(){ int a[MAX],k;for(k=0;k<5;k++) a[k]=k;}fun3(){ int k;for(k=0;k<MAX;k++) printf("%d",*(a+k));}3.请写出以下程序的输出结果:#iclude<stdio.h>main(){ int a[]={1,2,3,4},i;int x=0;for(i=0;i<4;i++){ sub(a,x);printf("%d",x);}printf("\n");}sub(s,x)int *s,x;{ static int t=3;x=s[t];t--;return(x);}4.请写出以下程序的输出结果:#include<stdio.h>fun(s,n1,n2)int *s,n1,n2;{ int i,j,t;i=n1;j=n2;while(i<j){ t=*(s+i);*(s+i)=*(s+j);*(s+j)=t;i++;j--;}}main(){ int a[10]={1,2,3,4,5,6,7,8,9,0},i,*p=a;fun(p,0,3);fun(p,4,9);fun(p,0,9);for(i=0;i<10;i++) printf("%d",*(a+i));printf("\n");}五、程序填空题1.函数judge的功能是判断方阵a是否关于主对角线对称,若对称则返回1,否则返回0.函数参数的意义是:n为矩阵的阶数,a为存储矩阵元素数据的数组名.请在程序中下划线处填上合适内容。
judge(int n,a[][]);{ int i,j;for(i=0;i<n;++i)for(j=0;j<n;++j)if _______return 0;return 1;}2.以下程序的功能是:从键盘上输入10个数值,存储在数组a中,调用函数findmax求数组中的最大值,输出最大值。
请在下划线处填上合适的语句,完成函数功能。
#include<stdio.h>main(){ int a[10],i,j;for(i=0;i<10;++i)scanf("%d",&a[i]);findmax(a,10, &j);printf("%d",a[j]);}findmax(s,t,k)int *s,t,*k;{ int p;for(p=0,*k=p;p<t;p++)if (s[p]>s[*k]) ____;}3.现有一等差数列,已知第一项a=1,公差b=4,下面程序的功能是求满足前n 项之和小于100的最大n,请填空完成该程序。
#include<stdio.h>main(){ int a=1,b=4,sum=1,n=1;while(_____){ a=a+b;sum=sum+a;n++;}printf("%d",n);}4.以下程序由终端键盘输入一个文件名,然后把从终端输入的字符依次存放到该文件中,用#作为结束输入的标志,请填空。
#include<stdio.h>main(){ FILE *fp;char ch,fname[10];printf("Input the name of file\n");gets(fname);if((fp=______)==NULL){ printf("Cannot open\n");exit(0);}printf("Enter data\n");while ((ch=getchar( ))!=ˊ#ˊ)fputc(ch,fp);fclose(fp);}《C程序设计》参考答案一、单项选择题1.A2.A3.D4.D5.B6.C7.A8.A9.B 10.A二、填充题1.数据类型2.x>=0&&x<=103.24.55.&6.9 07.指针 8.49.地址传送方式 10.10000010三、判断题1.√2.×3.×4.×5.×6.√7.√8.√9.×10.√四、程序分析题1.5,132.024*******3.0 0 0 04.5,6,7,8,9,0,1,2,3,4五、程序填充题1.a[i][j]==a[j][i]2.*k=p3.sum<1004.fopen(fname,"wb")。