c语言(2)
c语言试题及答案 (2)
C语言部分一、选择题(每小题2分,共10分)(下在各小题,分别有一个或多个正确答案,请将所有正确答案的编号,填写在该小题题干后的括号内。
错选或漏选均不得分)。
1、若定义:int a[2][3]{0,2,4,6,8,10};以下描述正确的有( A,C,D,E )A、*(a+1)为元素6的地址这里a+1=a[1]的地址;*(a+1)的值是6,故A正确。
B、*(a[1]+1)的值为2为8,故B不正确C、**(a+1)+2的值为8这里a+1是一个指针,指向的是a[1]. *(a+1)为a[1],a[1]指向的是a[1][0]. **(a+1)为6,加2得8,故C正确;D、a[0]与a相同因二者都是指针,指针的地址都是指向数组中的第一个元素的地址,故D正确。
E、a[1][2]的值为10它是指第二行的第三个元素,为10,正确2、对函数的正确使用方法描述( A,C,D )。
A、用数组做函数参数时,必须在主调函数和被调函数中分别定义数组B、实参数组元素和形参数组元素类型可以不一致C、形参数组长度可以不指定D、形参数组长度可以大于实参数组长度E、数组名做参数属于值传递3、对静态变量的正确描述( A,B,D,E )A、静态局部变量在静态存储区内分配单元()B、静态外部变量可以赋初值,也可以不赋初值C、静态外部变量的作用与外部变量相同D、静态局部变量在函数调用结束时,仍保存其值,不会随着消失。
E、静态局部变量只赋一次初值4、下列描述正确的是( A ,C)。
A、由main 函数及其参数argc和* argv[]可以实现命令行方式B、使用fclose关闭文件时,先释放文件指针,再写缓冲区数据到文件中//先写缓冲区数据到文件中,再释放文件指针C、字符数组并不要求它的最后一个字符是‘\0’//是的,以字符指针指向的字符串才要求,因为只有这样,才能知道字符串的长度,而在字符数组中,不用\0,一样可以知道到哪里是字符数组的结尾。
C语言复习题 (2)
C语言复习题一、选择题:1.以下不是C语言的特点的是( B )A.C语言简洁、紧凑 B.能够编制出功能复杂的程序C. C语言可以直接对硬件进行操作 D.C语言移植性好2. 以下不正确的C语言标识符是( D )。
A.ABC B.abc C.a_bc D.ab.c3.一个c程序的执行是从( A ).A.main( )函数开始,直到main( )函数结束B.第一个函数开始,直到最后一个函数结束C.第一个语句开始,直到最后一个语句结束D.main( )函数开始,直到最后一个函数结束4.以下不正确的语句(设有int p,q)是( D )。
A.P*=3; B.p/=q; C.p十=3; D.p&&=q5.下列四组选项中,均不是C语言关键字的选项是( A ).A.define B.getc C.include D.whileif char sanf gotype printf case pow6.下面四个选项中,均是合法整形常量的选项是( A ).A.160B.-0xcdfC.-01D.-0x48a-0xffff 01a 986,012 2e5011 0xe 0668 0x7. 下面四个选项中,均是不合法浮点数的选项是( B ).A.160.B.123C.-.18D.-e30.12 2e4.2 123e4 0.234e3 .e5 0.0 1e38. 若有代数式3ae/bc,则不正确的C语言表达式是( C )A.a/b/c*e*3B.3*a*e/b/cC.3*a*e/b*cD.a*e/c/b*39. 若以下变量均是整形,且num=sum=7;则计算表达式sUM=num++,sUM++,++num后sum 的值为(A ).A.7B.8C.9D.1010.若有定义:int a=7; float x=205 ,y=4.7; 则表达式x+a%3*(int)(x+y)%2/4的值是( A )。
A.2.500000B.2.750000C.3.500000D.0.00000011. s izeof(float)是( B )。
C语言第七讲 函数(2)
21
一、变量的存储空间分配概念
变量定义位置 变量的作用域 空间 (变量的使用范围)
变量的存储类别变量的生存期 时间
26
局部变量
二、变量的作用域——
局部变量(local variable)与全局变量(global variable)
例
void swap( ) { int t,x,y; t=x;x=y;y=t; } main() { int x=3,y=5; printf("x=%d,y=%d\n",x,y); swap( ); printf("x=%d,y=%d\n",x,y); }
斐波那契数列的递归方法实现。计算并输出斐波 那契数列的前7个数据。
1 当n =0, 1时
fib(n) =
fib(n-1)+ fib(n-2) 当n > 1时
int fib(int n) { if(n==0||n==1) return 1; else return fib(n-1)+fib(n-2); }
10
void main() { int n; for(n=11;n<=99;n++) if( absoluteprime(n) ) printf("%d\t",n); } /*判断一个数是否为绝对素数*/ int absoluteprime (int n) /*函数定义*/ { if(prime(n)==0) return 0; else if(prime(invert(n))==1) return 1; else return 0; }
C语言复习题 (2)
有以下程序#include <stdio.h>void main(){ int a=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a<b);printf("%d,%d\n",k,m);}程序运行后的输出结果是__C___。
A、0,0B、0,1C、1,0D、1,1 若变量c为char类型,能正确判断出c为小写字母的表达式是__D_____。
A. 'a'<=c<='z'B. (c>='a')||(c<='z')C. ('a'<=c)and('z'>=c)D. (c>='a')&&(c<='z')以下符合C语言语法的实型常量是__C____。
A、1.2E0.5B、3.14159EC、5E-3D、E15 若变量已正确定义,有以下程序段i=0;doprintf("%d, ",i);while(i++);printf("%d\n",i);其输出结果是____B__。
A. 0,0B. 0,1C. 1,1D. 程序进入无限循环若有以下程序段,int c1=1 ,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是____A__。
A、0B、0.5C、1D、2 以下选项中合法的字符常量是__B____。
A、"B"B、'\010'C、68D、D 有以下程序main(){ char a,b,c,d;scanf("%c,%c,%d,%d",&a,&b,&c,&d);printf("%c,%c,%c,%c\n",a,b,c,d);}若运行时从键盘上输入:6,5,65,66↙。
C语言程序设计(李圣良)章 (2)
}
第2单元 顺序和选择结构程序设计
图2-6 例2-6程序运行结果 注意,长整型的数据输出使用“%ld”或“%Ld”,在 Visual C++ 6.0系统中,“%d”、“%ld”控制结果一样,但 在Turbo C中则要严格区分。 (4) %mld:按照指定宽度输出长整型数据。
第2单元 顺序和选择结构程序设计
第2单元 顺序和选择结构程序设计
以上介绍了常用的几种格式符,归纳如表 2-1 所示。
第2单元 顺序和选择结构程序设计
2.1.2 输出语句printf函数 对于一个有意义的程序来说,应该有一个或多个输出,也
就是至少要有一个输出,将程序的结果进行输出。所谓输出, 是指从计算机向外部输出设备(显示器、打印机、磁盘等)输出 数据。一般默认的标准输出设备是显示器。
C语言本身并不提供专门的输入输出语句,C语言中的输入 输出操作是调用专门的输入输出函数来完成的。输入输出函数 的有关信息存放在文件“stdio.h”中,“stdio.h”是标准输 入输出库的头文件,其中包含了所有的标准输入输出函数的有 关信息。因此,在使用这些函数前,必须有“# include <stdio.h>”编译预处理命令,否则系统会提示出错信息 “error C2065:'printf':undeclared identifier”。
{ 语句 1; 语句 2; … 语句 n;
} 例如: { t=x;
x=y; y=t; }
第2单元 顺序和选择结构程序设计
4. 控制语句 控制语句是C语言程序中用来控制程序流程的语句。在C语 言中可具体划分为9种程序流程控制语句。 条件判断语句:if,switch。 循环语句:do…while,while,for。 转向语句:break,continue,goto,return。 以上9种控制语句具体的应用将在后续单元中进行详细讲 解。
机器人程序设计(C语言)(第2版)章节练习题及参考答案
第一章一种新的C语言学习方式1.一台能够工作的计算机包括?CPU (Central Processing Unit,中央处理单元,进行运算和控制,包括运算器和控制器等)、存储器(如RAM、ROM等)、输入设备、输出设备(包括串行/并行接口、USB等)。
其中,RAM (RandomAccess Memory,随机存储器)主要用于存储数据,ROM (RcadOnlyMemory, 只读存储器)主要用于存储程序。
2.单片机工作时需要什么?需要稳定的电源、晶振、外部存储器和编程调试接口,就像计算机工作时需要电源、晶振、硬盘或其他大容量外部存储器和操作系统一样。
微控制器是将单片机独立工作所需的电源适配器、晶振、外部存储器和串口转换电路等封装到一个模块上,这样就能直接与计算机连接并进行编程开发,不需任何其他芯片和电路。
3. AT89S52是一种什么样的单片机?是一种高性能、低功耗的8位单片机,内含8 KBISPdn-System Programmable系统在线编程)可反复擦写IOOO次的Flash只读程存器,采用ATMEL公司的高密度非易失性存储技术制造,兼容标准MCS51指令系统及其引脚结构。
在实际工程应用中,功能强大的AT89S52 已成为许多高性价比嵌入式控制应用系统的解决方案。
4. Progisp是一款什么样的软件?是一款免费下载的ISP软件,不需要专门的安装即可使用,非常方便。
使用该软件,读者可以将C语言程序生成的可执行文件下载到机器人单片机上。
使用时需要1根USBA转B 信号线。
5.简述串口调试工具的特点。
串口调试工具就是串行通信接口调试软件,集数据发送、数据接收、数据监控、数据分析等功能于一身,具有小巧精致、操作简捷、功能强大的特点,可以在串口通信监控、设备通信测试工作中有效提高效率。
6. pr i ntf ()函数称为?称为格式输出函数,其功能是按用户指定的格式,把指定的数据输出显示。
Print ()函数是C语言提供的标准输出函数,定义在C语言的标准函数库中,要使用它,必须包括定义标准函数库的头文件stdio. h o第二章最简单的C程序设计——机器人做算数1. C语言用什么整型变量?C语言用关键字imt定义整型变量。
重庆市职业高中计算机专业c语言试题 (2)
一、填空题1.C语言以_____________作为语句的结束字符。
2.如变量a,b,c都是整数,则代数式3cba++的C语言表达式为。
3.C语言支持模块化程序设计方法,C程序中的模块是。
4.表达式21/6*6的运算结果是。
5.定义符号常量TITLE为字符串“JAVA”的命令是。
6.要使用库函数,必须使用命令把存放人该库函数声明的文件包含到相应的源程序文件中。
7.C语言中的函数通常由和组成。
8.存放字符串″beijing″所需空间为字节。
9.表达式3*20/4%10的计算结果为。
10.已知int x=10;执行x+=x-=x-x;后,x的值为。
11.标识符break不能作为用户标识符,是因为break是。
12.存储字符串"\0"需要占用字节的存储单元。
13.有int x=5;x=-5;则x的值为。
14.定义x,y为双精度型变量的语句是。
15.C程序的基本单位是函数,一个C程序至少包含一个函数。
16.定义符号常量NUM为10的C语言表达式是。
17.在内存中存储“A”要占用个字节18.是构成C语言的基本单位。
19.设x的值为12,y的值为2;则表达式x%=(y+=3)运算后x的值为。
20.C语言中,把“战争与和平”定义为符号常量BOOK的表达式为。
21.当表达式中的运算符优先级相同时根据来确定运算的先后次序22.有定义int m=5;则表达式m+=m- =m%m的值为。
23.与数学表达式ab yx53+有相同功能的C语表达式为。
24.C语言中,函数由函数头和函数体组成。
25.有int x=6;则表达式x+=x/=x%=4执行后,x的值为。
26.组成c源程序的各个函数是相互独立的,各个函数的位置是任意的,但程序的执行总是从主函数开始。
27.有运算符:++,&&,*,<= ,其中优先级最高的是&& 。
28.有定义:int m;float x; 则表达式25-x*’x’+m/5的类型是 DOUBLE 。
C语言基础练习题(含答案)(2)
int k;
scanf(”%d”, &k);
switch(k)
{ case 1: printf(”%d\n”, k++);
case 2: printf(”%d\n”, k++);
case 3: printf(”%d\n”, k++);
case 4: printf(”%d\n”, k++);
D.switch (grade)
{ case ’C’ :printf(”<60\n”);
break;
case ’B’ :printf(”60——84\n”);
break;
default: printf(”grade is error!\n”);
C.!(x%2) D.x%2
12.已知 x=45, y=’a’, z=0; 则表达式(x>=z && y<’z’ || !y)的值是()。
A.0 B.语法错
C.1 D.“假”
第二章 选择结构
2.1 选择题
1. 已有定义:int x=3, y=4, z=5; 则表达式!(x+y)+z-1 && y+z/2的值是()。
A.6 B.0 C.2 D.1
2. 设a=5,b=6,c=7,d=8,m=2,n=2, 则执行(m=a>b) && (n=c>d)后n的值为()。
#include ”stdio.h”
main()
{ int a=1;
if (a++>1) printf(”%d\n”, a);
《C语言程序设计》复习题(2)-填空题
{ unsigned short x=65536; int y;
printf(“%d\n”, y=x);
} 50. 若有 int x=11; 则表达式 1/3*x++的值为 0 。
51. 执行语句 printf(“%d” , (a=2)&&(b=-2) ); 后的 输出是 1 。
52. 执行下列程序段后, 变量 i 的值是 16 。 int i=10 ; switch (i) { case 9: i+=0; case 10: i+=1; case 11: i+=2; default: i+=3; }
值为 -2 。 27. C语言中 标号 标识符无值、无类型且不需要声
明便可直接使用。 28. 若已声明: int x=1 , z=1 , y=1 , k ;则执行表达式
k=x++||++y&&++z后,变量k,x,y,z的值是 1,2,1,1 。
最小数是: 1000000000000000
29. 若用八进制常量表示C中的int型常1量0 (0160bits0)0
float x=25.0;
fwrite(&x,sizeof(float),1,fp);
48. 若有定义: int b=17; float a=4.5, c=6.5;
则表达式 a+(int)(b/3*(int)(a+c)/2)%4的值为 49. 下列程序执行后的输出结果是 0 。
7.5 。
main( )
是 for 。
35. 若一个函数不需要形式参数 , 则在定义函数时, 应使形式参数表为空或放置一个 void 。
c语言实验报告 (2)
C语言实验报告说明1,所有程序均用VC6。
0编译运行,文件名命名为姓名+日期,因为实验存在补做,所以并不是按照日期先后排列的。
2,为了使截图清晰,手动将运行窗口由“黑底白字"改为了“白底黑字”.实验2 数据类型、运算符和表达式一、实验目的:(1)掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量、以及对它们赋值的方法。
(2)学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(――)运算符的使用。
(3)掌握C语言的输入和输出函数的使用(4)进一步熟悉C程序的编辑、编译、连接和运行的过程.三、程序调试与问题解决:(1)输人并运行下面的程序#include<stdio.h>void main(){char c1,c2;c1='a’;c2=’b';printf(”%c %c\n”,c1,c2);}错误!运行此程序.错误!在上面printf语句的下面再增加一个printf语句。
printf(”%d%d\n",c1,c2);再运行,并分析结果。
输出结果如图,编译成功,无错误.错误!将第3行改为int c1,c2;再运行,并分析结果。
错误!再将第4、5行改为c1=a;c2=b;再运行,并分析结果。
a,b没有定义,编译报错。
错误!再将第4、5行改为c1=‘’a‘’;c2=‘’b‘’;再运行,并分析结果。
○6再将第4、5行改为c1=300;c2=400;再运行,并分析结果.以字符型输出时,输出的将是300,400对应的字符.(2)输人并运行教材第3章习题3. 6给出的程序#include〈stdio.h〉main (){char c1=’a’,c2=’b’,c3=’c',c4=’\101’,c5=’\116';printf("a%c b%c\tc%c\tabc\n",c1,c2,c3);printf(”\t\b%c %c\n”,c4,c5);}#include<stdio.h>void main(){int a,b;unsigned c,d;long e,f;a=100;b=-100;e=50000;f=32767;c=a;d=b;printf("%d,%d\n",a,b);printf(”%u,%u\n",a,b);printf("%u,%u\n",c,d);c=a=e; d=b=f;printf(”%d,%d\n",a,b);printf("%u,%u\n”,c,d);}请对照程序和运行结果分析:①将一个负整数斌给一个无符号的变t,会得到什么结果.画出它们在内存中的表示形式。
C语言复习题(2)答案
{ 4; } A.1--2--3--4 --3--2…… B.1--2--3--4--3--2-4…… C.1--2--4--3--2--4…… D.1--2--4--3---2---1--4…… 21.对下以下系统函数,以下说法错误的是( B)。 A.time()函数的头文件是:time.h B.stdlib.h 头文件中,有 printf(),scanf()函数 C.函数分为两大类,一类是系统函数,一类是用户自定义函数
B.18 C.45 D.9 24. 有以下程序 void 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)。 A.011122 B.012 C.012020 D.120 25..在 C 语言中,假设所有变量均为整型,则下列代码执行后 c 的值 是( D )。
D.! 28. 在 C 语言中,10%2 的值为(C)。 A.5 B.2 C.0 D.-1 29.在 C 语言中,下面( B )转义序列表示换行。 A.\a B.\n C.\r D.\f
30. 在 C 语言中,定义带参数的方法时,参数可以为一个或多个,多 个参数之间使用(B )符号进行分隔。 A.;(分号) B.,(逗号) C.空格符 D.-(连字符) 31.C 语言中,scanf()函数可以使用( C)格式说明符接受单精度浮 点型变量的值。 A.%c B.%d C.%f D.%s
C.必须在程序的最后 D.可以在任意位置 3..表达式 a+=a-=a=9 的值是(D)。 A.9 B.-9 C.18 D.0 4. 设有定义:int a=10;则表达式 a+=a*=a 的值是( C )。 A.10 B.100 C.200
C语言上机内容(2)
一.选择题
二.程序题
1. 从键盘输入x,计算,并把结果输出到屏幕上;
如输入3.2,输出结果为0.324813
2.从键盘输入一个实数,输出这个实数的个位数和第一位小数的乘积,如输入42.834,则输出16
3. 从键盘输入x的值,计算fun(x),并将结果输出到屏幕上
4. 程序改错题:修改如下程序,使之完成功能:输出200以内除以3余数为2的所有自然数之和的平方根。
(只能对红色画线的部分修改,其他地方不能改动);
#include <stdio.h>
#include <math.h>
void main()
{
double s=0.0,y;
int i;
for(i=1;i<200;i++)
s+=i;
printf("y=%f\n",y);
}
5.程序填空,在横线上填入适当的语句,输出如下星型图案,其中行数n从键盘输入如下图,当n=5时
#include<stdio.h>
main()
{
;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
;
printf(" ");
for (k=1;k<=7;k++)
printf("*");
printf("\n");
}
}
6.编程输出100-200之间的所有能被3和5同时整除的整数,并统计个数。
C语言试题及答案解析(二)
C语言试题及答案解析(二)班级姓名学号____________一、选择题(20分)1.1966年,Bohra和Jacopini提出的三种基本程序设计结构是:________A.if、while和for; B. switch、do-while和for;C.while、do-while和for;D.顺序结构、分支结构和循环结构。
2.算法的特征不包括:______。
A.有穷性 B.可行性 C.确定性 D.有1个或者多个输入。
3.C语言源程序的基本组成单位是______。
A.函数 B. 语句 C. 声明和语句 D. 文件4.下列标识符中,只有______是合法的。
A.if B. 3ab C. Int D. A-45.下列常量中,只有______是合法的。
A.3e-0.3 B. ‘abc’ C. 02a1 D. ‘\377’6.下列说法中正确的是:______。
A.C语言中的for语句的三个表达式都可以省略,而且分号也可以省略。
B.宏替换比函数调用的执行速度慢。
C.实质上,C语言中的指针就是一个变量的地址。
D.C语言中的任何函数都可以由程序员命名。
7.C语言中,运算对象必须是整型的运算符是_______。
A./ B. % C. + D. -8.以下叙述中错误的是_______。
A.C语句必须以分号结束B.复合语句在语法上被看作一条语句C.空语句出现在任何位置都不会影响程序运行D.赋值表达式末尾加分号就构成赋值语句9.以下叙述中正确的是_______。
A.调用printf函数时,必须要有输出项B.使用putchar函数时,必须在之前包含头文件stdio.hC.在C语言中,整数可以以十二进制、八进制或十六进制的形式输出D.调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码10.以下关于函数的叙述中正确的是_______。
A.每个函数都可以被其它函数调用(包括main函数)B.每个函数都可以被单独编译C.每个函数都可以单独运行D.在一个函数内部可以定义另一个函数11.有以下程序段typedef struct NODE{int num;struct NODE *next;} OLD;以下叙述中正确的是_______。
C语言题集(二)答案
C语⾔题集(⼆)答案第3章顺序结构1.B解析:在C语⾔中,当⼀次输⼊多个数据的时候,数据之间要⽤间隔符,合法的间隔符可以是空格、制表符和回车符。
逗号不是合法的间隔符。
2.B解析:本题中a的值为6,b的值为8,最后s的值为8,s*=s等价于s=s*s。
3.C解析:①printf函数的浮点数缺省输出格式:在printf函数的输出中,若⽆输出宽度限制,每种数据都有⼀个缺省的输出宽度,⼀般浮点数的⼩数位数则是6位,不管输出格式是%f或%lf皆如此。
4.②printf函数的浮点数宽度限制输出:以%mf或%mlf格式输出浮点时,如果指定的宽度⼤于实际数据宽度,按指定宽度输出,且多余数补以空格;如果指定的宽度⼩于实际数据宽度,浮点数的整数部分将以实际数据(位数)输出。
⼩数部分按指定数输出,且对数据做四舍五⼊处理。
5.③printf的整数限宽输出:没有宽度制的整数原数输出。
在宽度限制于数的实际位数时,宽度说明⽆效,按数的实际位数输出。
6.D解析:在C语⾔所有的运算符中,逗号运算符的优先级最低。
C语中区分⼤⼩,所以APH和aph是两个不同的变量。
赋值表达式a=b表⽰将b的值付给a,⽽b本⾝的值保持不变;通过键盘可以向计算机输⼊允许的任何类型的数据。
选项D)中当从键盘输⼊数据时,对于整型变量可以输⼊整型数值和字符,对于实型变量可以输⼊实型数和整型数值等。
7.C解析:本题中,程序先执⾏语句 x=;,根据赋值运算的类型转换规则,先将double型的常量转换为int型,即取整为1,然后将1赋值给变量x。
接下来执⾏语句y=(x+)/;根据运算符的优先级,先计算⼩括号内,再计算除法,最后执⾏赋值运算。
⼩括号内的运算过程:先将整型变量x的值1转换为double型,然后与进⾏加法运算,得到中间结果。
接着进⾏除法运算,其结果⼩于,这⾥没有必要计算出精确值,因为接着进⾏赋值运算,赋值号左边的变量y的类型为整型,于是对这个⼩于的中间结果进⾏取整,结果为0,于是变量y的值为0,d*y的值也为0。
C语言中int型的取值范围 (2)
C语言中int型的取值范围 (2)在C语言中,int型数据的取值范围被规定为-2^15到2^15-1,而不是-2^31到2^31-1,这是因为在早期的计算机中,int型数据通常只占用16位的内存空间,即2个字节。
由于最高位是符号位,所以剩下的15位用来表示数值。
在计算机中,int型数据是一种常用的数据类型,通常用于存储整数类型的数据。
在C语言中,int型数据的取值范围是由该数据类型所占用的内存空间大小所决定的。
一般而言,int型数据在32位操作系统下占用4个字节(32位),在64位操作系统下占用8个字节(64位)。
然而,在32位操作系统下,int型数据的取值范围却是-2^15到2^15-1,这是为什么呢?首先,我们需要了解计算机是如何存储整数类型的数据的。
在计算机中,所有的数据都是以二进制的形式存储的。
对于int型数据而言,它所占用的内存空间大小为4个字节,即32位。
那么,它能够表示的二进制数的数量就是2的32次方,即4294967296。
然而,由于int型数据需要同时表示正数和负数,所以它所能表示的正数范围和负数范围都是从0开始的。
所以,我们需要将这4294967296个二进制数分成两部分,一部分表示正数,一部分表示负数。
对于32位的int型数据而言,最高位是符号位,0表示正数,1表示负数。
因此,我们需要将最高位留给符号位,剩下的31位用来表示数值。
这样,我们所能表示的正数范围就是从0到2的31次方-1,即0到2147483647;所能表示的负数范围就是从-2的31次方到-1,即-2147483648到-1。
然而,在C语言中,int型数据的取值范围被规定为-2^15到2^15-1,而不是-2^31到2^31-1,这是因为在早期的计算机中,int 型数据通常只占用16位的内存空间,即2个字节。
由于最高位是符号位,所以剩下的15位用来表示数值。
这样,我们所能表示的正数范围就是从0到2的15次方-1,即0到32767;所能表示的负数范围就是从-2的15次方到-1,即-32768到-1。
C语言程序设计第三章 (2)
举例 int a=10; short b=100 int short b=100; unsigned int short b=100; long d=212365; int long d=212365; unsigned int long d=212365;
练习题
练习
• char c; 等价 • c=65; 是否等价于c= 'A' • printf(“%d %c”,c,c);输入的结果是多少呢?
65 A
注意:
• • • • • int a; char b; a=65; b=‘A’; 不等价,所占内存空间不同。 问变量a 的值和变量b的值是否等价。
练习题
price ?abc int name float name age 8ab year a%d 以上哪些是正确的标识符,哪些不是?
price name age year a b 都是 正确的标识符 ?abc int float 8ab a%d 不能是 标识符
练习题
下列选项中,不能用作标识符的是( )
设有定义:float a=2,b=4,h=3;,以下C语言表达式与代数
A)(a+b)*h/2
ab 式_______________ h 2
计算结果不相符的是( ) B)(1/2)*(a+b)*h
B
C)(a+b)*h*1/2 D)h/2*(a+b)
2014-3-16
自加、自减运算符P53 自加运算(i++, ++i) 相同点:++i 和 i++的作用都等同于i=i+1 不同点:++i是先给i=i+1,然后再引用i的值。 i++是先引用i的值,然后i=i+1 自减运算(i- -, - -i) 相同点:- -i 和 i- -的作用都等同于i=i-1 不同点:- -i是先给i=i-1,然后再引用i的值。 i--是先引用i的值,然后i=i-1
C语言程序设计(第2版)-- 课后题答案
《C语言程序设计能力教程(第二版)》课后作业及实训题参考答案第1章进入C语言程序世界二、1. I love China!printf("we are students.\n")2. 6项目实训题参考答案1.编写一个C程序,输出以下信息:* * * * * * * * * * * * * * * * * * * *I am a student!* * * * * * * * * * * * * * * * * * * *main(){ printf("********************\n");printf(" I am a student!\n ");printf("********************\n");}2.已知立方体的长、宽、高分别是10cm、20cm、15cm,编写程序,求立方体体积。
解:main(){int a,b,c,v;a=10;b=20;c=15;v=a*b*c;printf("v=%d",v);}本程序运行结果为:v=3000第2章编制C程序的基础知识一选择题C B A B A C C二操作题,2,-8,23.000000,2.500000,-8.0000002. ABC DEFGHwhy is 21+35 equal 523.3 14 32 31 24. aa bb cc abcA N项目实训题1.定义一个符号常量M为5和一个变量n值为2,把它们的乘积输出。
#define M 5main(){ int n,c;n=2; c=M*n;printf("%d\n",c); }2.编程求下面算术表达式的值。
(1)x+a%3*(int)(x+y)%2/4,设x=2.5,a=7,y=4.7;(2)(float)(a+b)/2+(int)x%(int)y,设a=2,b=3,x=3.5,y=2.5。
c语言程序设计教程(第2版)课后题及模拟题参考答案
c语⾔程序设计教程(第2版)课后题及模拟题参考答案c语⾔程序设计教程(第2版)课后题及模拟题参考答案习题1 (4)1-1 填空题 (4)1-2 思考题 (4)1-3 编程题 (5)习题2 (6)2-1 单选题 (6)2-2 思考题 (6)习题3 (7)3-1 选择题 (7)3-2 填空题 (7)3-3 编程题 (8)习题4 (11)4-1单选题 (11)4-2填空题 (11)4-3 编程题 (11)习题5 (16)5-1单选题 (16)5-2填空题 (16)5-3 编程题 (16)习题6 (22)6-1单选题 (22)6-2填空题 (22)习题7 (25)7-1单选题 (25)7-2填空题 (25)7-3 编程题 (25)习题8 (26)8-1单选题 (26)8-2填空题 (26)8-3 编程题 (26)习题9 (30)9-1单选题 (30)9-2填空题 (30)9-3 编程题 (30)习题10 (38)10-1单选题 (38)10-2填空题 (38)10-3 编程题 (38)习题11 (41)11-1单选题 (41)11-2填空题 (41)习题12 (42)12-1单选题 (42)12-2 填空题 (42)实验1 熟悉Visual C++6.0可视化集成开发环境 (43)实验2 顺序结构程序设计 (43)实验3 选择结构程序设计 (43)实验4 循环结构程序设计 (44)实验5 函数 (47)实验6 数组 (54)实验7 指针 (58)实验8 结构体和共⽤体 (61)实验9 ⽂件 (63)实验10 综合编程 (64)模拟试卷(⼀)参考答案 (65)模拟试卷(⼆)参考答案 (67)习题11-1 填空题1. 函数2. 主函数main(),主函数main()3. 主函数main()4. 函数⾸部,函数体5. {, }6. /*, */7. 顺序结构,选择结构,循环结构8. .c, .obj, .exe1-2 思考题1. 结构化程序设计是指:为使程序具有⼀个合理的结构以保证程序正确性⽽规定的⼀套如何进⾏程序设计的原则。
C语言作业 (2)
28 组成最大数成绩: 10 / 折扣:任意输入一个自然数,输出该自然数的各位数字组成的最大数。
例如,输入1593 ,则输出为9531 。
输入:自然数n输出:各位数字组成的最大数测试输入期待的输出时间限制内存限制额外进程1秒64M 0测试用例11.1593 1.9531#include<>#include<>int main(){char a[10000];int x[10]={0};scanf("%s",a);int n=strlen(a);for(int i=0;i<n;i++){x[a[i]-'0']++;}for(int i=9;i>=0;i--)for(int j=0;j<x[i];j++){printf("%d",i);}printf("\n");}29 北理工的恶龙成绩: 10 / 折扣:背景:最近,北理工出现了一只恶龙,它长着很多头,而且还会吐火,它将会把北理工烧成废墟,于是,校长下令召集全校所有勇士杀死这只恶龙。
要杀死这只龙,必须把它所有的头都砍掉,每个勇士只能砍一个龙头,龙的每个头大小都不一样,一个勇士只有在身高不小于龙头的直径的情况下才能砍下它。
而且勇士们要求,砍下一个龙头必须得到和自己身高厘米数一样的学分。
校长想花最少的学分数杀死恶龙,于是找到你寻求帮助。
输入:第一行龙头数n , 勇士人数m(1<=n, m<=100 )接下来n 行,每行包含一个整数,表示龙头的直径接下来m 行,每行包含一个整数,表示勇士的身高l输出:如果勇士们能完成任务,输出校长需要花的最小费用;否则输出“ bit is doomed! ”测试输入期待的输出时间限制内存限制额外进程测试用例11.232. 53. 44.75.86. 41.111秒64M 0测试用例21.212. 53. 54.101.bitisdoomed!1秒64M 0#include<>int main(){int dragon,hero;scanf("%d%d",&dragon,&hero);int dragonhead[100]={0};int herohight[100]={0};1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.......*......根据上面的地图,可以计算出应该提供给游戏者的数字如下所示:*10022101*101110每个数字表示了该方格周围到底有几个地雷,当然,一个方格周围最多的时候只会有八个。
C语言干货(2):main函数当中的void你真的理解吗
C语⾔⼲货(2):main函数当中的void你真的理解吗刚开始接触C语⾔的时候,会遇到很多语法、运算符、函数等等问题,可能对于刚刚上⼿的朋友来说不太能够理解。
所以今天通过编写代码,来分析⼀下每⾏代码的作⽤,帮助⼤家理解。
⾸先,我们先来写⼀段简单的代码。
代码要求也很简单:创建⼀个整形变量,并且给其赋值,最后显⽰这个变量的值。
#include <stdio.h>int main (void){ int demo; demo = 21; printf('Is '); printf('Lucy\n'); printf('I am %d years old\n',demo); return 0; }看了这段代码之后,如果认为屏幕上能够打印东西,说明我们的理解是对的。
所以运⾏⼀下程序,来看⼀看结果。
运⾏结果运⾏之后可以看到程序输出了两⾏结果:Is LucyI am 21 years old虽然程序没有问题,但是不理解的朋友可能会有以下⼏点问题:1:\n 和 %d 是什么意思2:printf 打印了三个,为什么 Is 和 Lucy 合并到⼀起了3:main 括号当中的 void 是⼲嘛⽤的先不要着急,我们先来了解⼀下每⾏代码的作⽤。
#include <stdio.h>告诉编译器,把 stdio.h 这个头⽂件包含到当前程序当中。
头⽂件中包含了我们的代码所要⽀持的⽂件。
int main (void)函数名main()是⼀个函数名,int表⽰main()函数返回⼀个整数,void表⽰main不带任何参数。
int demo;声明⼀个变量demo,该变量是⼀个整形变量。
demo = 21;给demo赋值,把值21赋值给demo,这样demo就等于是21。
printf('Is '); printf('Lucy\n');调⽤ printf()函数第⼀个printf()函数在我们的计算机屏幕上显⽰ Is ,(is后⾯我打了⼀个空格)光标停留在同⼀⾏。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3. 注意: TC 在将字符按整数形式输出时,将字符按带符号数处理。
如: 下面的程序
main ()
{char c1,c2,c3='\376';
c1=97;c2=98;
printf("%c %c \n",c1,c2);
2. 字符变量的定义: char 变量名;
如: char a; /* 定义a为字符变量.*/
3. 字符变量所占的存储空间: 1个字节。
三、字符型数据在内存中的存储形式及使用方法
1. 存储形式: 将该字符的 ASCII码存放到内存单元中;
2. 输出形式:
以字符形式输出:将内存中的ASCII码转换成字符,然后输出;
2. 各种类型的数据在转换时,一次性完成向最高级别的转换,而不需要一级级逐步完成。
3. 数据的这种转换是由系统自动完成,而不需要用户完成1。
二、运算结果的类型
不同类型的数据混合运算时,结果的数据类型是优先级最高的类型,但要注意运算结果并不是输出形式。请看下面的例子:
main ()
(4) 结合性: 右结合性。
(5) 注意:
* 当表达式只有一个变量时,表达式的括号可以省略.
* 使用强制类型运算符时,表达式中各变量的类型并未发生变化,只是得到一个中间变量。
* 凡系统能自动进行的数据类型转换,则不需要进行强制类型转换。
三、算术表达式 ห้องสมุดไป่ตู้
用算术运算符将函数、运算对象(操作数)连起来,符合 C 语言规则的式子称为算
三、复合赋值运算符
1. 复合赋值运算符: 双目运算符+赋值运算符;
2. 复合赋值运算表达式: 变量 双目运算符=表达式;
3. 功能: 先将变量对赋值运算符后面的表达式进行一次双目运算符所指定的运算然后再将运算结果赋给变量;
4. 说明: 赋值运算的表达式可以是一个赋值表达式。
例如: a+=32 与 a=a+32 是等价的,即用a对32进行一次加法运算,再将运算结果赋给变量a。
形式 单引号 双引号
变量 有变量 无变量
在内存中的存储 按ASCII码存储,占一个字节 按ASCII码存储,占若干个字节
§3.6 变量赋初值
一、赋值运算符
C语言的赋值运算符号是 = ,但要注意这不是等号。
二、赋初值的方法
C 规定,在定义变量时,可以给变量赋初值,方法如下:
再如: a=b=5 表示先将5赋给变量b,然后再将b=5的值(即b的值)赋给变量a。
§3.10 逗号运算符和逗号表达式
一、逗号运算符: , (多目运算符)
二、逗号表达式: 用逗号运算符将二个或二个以上表达式连结起来的式子,叫逗号表达式。
如: x+3,y
x+3,y+4,z+5
三、逗号表达式的求解过程
第二讲 第三章 数据类型、运算符和表达式
内容:
§3.5 字符型数据
§3.6 变量赋初值
§3.7 各类数据间的混合运算
§3.8 算术运算符和算术表达式
§3.9 赋值运算符和赋值表达式
§3.10 逗号运算符和逗号表达式
§3.5 字符型数据
一、字符常量
1. 字符常量: 用单引号括起来的一个字符.如: 'A', 'e'等;
(4) 注意: * 自加(减)运算符号在变量前(前置)和在变量后运算(后置)时使用方法是不同的,前置自增(减)运算符是先自增(减)再使用,后置自增(减)运算符是使用之后再自增(减)。
3. 强制类型转换符
(1) 强制类型转换符: (类型名)
(2) 使用方法: (类型名) (表达式)
(3) 功能:将表达式的值转换成规定的类型。
int → float 将整型数据转换成实型数据(补足小数位数)后再赋值;
float → int 将实型数据的小数去掉后再赋值;
int → long 将整型数据放入长整型变量的低16位,再进行符号扩展(不变);
char → int 将字符型数据放入整型变量的低8位,再进行符号扩展(不变);
char → long 将字符型数据放入长整型变量的低8位,再进行符号扩展;
1. 定义变量时为一个变量赋初值: 如: int a=8;long b=62895;等;
2. 定义变量时同时为多个变量赋初值: 如: int a=3,b=4,c=5;。
3. 注意:
(1) int a=3;b=4;c=5; 与int a=3,b=4,c=5;不同,前者是三个语句,后者是一个语句。
(2) 基本算术运算的优先等级
括号─→ *,/,% ─→ +,-
(3) 基本算术运算符的结合性
基本算术运算符的结合性是左结合性,即如果一个运算对象两侧的运算符号的优先等级相同时,则按照自左向右的原则,先与左边的运算符号结合(先执行左边的运算),然后再与右边的运算符号结合(后执行右边的运算)
6. 条件运算符
7. 逗号运算符
8. 指针运算符
9. 求字节运算符
10. 强制类型转换运算符
11. 分量运算符
12. 下标运算符
13. 其它
二、算术运算符和算术表达式
1. 基本算术运算符
(1) 基本算术运算符
+(加号) -(减号) *(乘号) /(除号) %(求余运算符号)
{int c1=7;
double c2=98.003213247;
float c3;
c3=c1+c2;
pritnf("%.9f %.9f\n",c3,c1+c2);
printf("%.7f %.7f\n",c3,c1+c2);
}
运行结果为:
105.003211975 105.003213247
105.32120 105.32132
§3.8 算术运算符和算术表达式
一、TC 的运算符
与其它语言相比,TC 的运算符最丰富,除控制语句和输入输出以外,几乎所有的基本操作都作为运算符处理,有以下几类运算符:
1. 算术运算符
2. 关系运算符
3. 逻辑运算符
4. 位运算符
5. 赋值运算符
(2) 对几个变量赋同一初值时,要使用 int a=3,b=3,c=3;而不能写成 int a,b,c=3;也有能写成 int a=b=c=3;
§3.7 各种类型数据间的混合运算
一、各种类型数据的运算级别
说明: 1. 上图中纵向箭头表示数据类型级别的高低,横向箭头表示必须进行的转换,即char、short、float型数据都不能直接参与运算。
printf("%d %d \n",c1,c2);
printf("%x %x \n",c1,c2);
printf("%o %o \n",c1,c2);
printf("%d \n",c3);
}
运行结果:
a b
97 98
61 62
141 142
-2
四、字符串常量
如: a-b*c/d
① 执行b*c的运算;
② 用b*c的结果与d进行 / 运算;
③ 进行 - 运算;
2.自增自减运算符
(1) 运算符号: ++(自增运算符) --(自减运算符)
(2) 功能: 使变量的值增 1 或减 1。
(3) 结合性:自增(减)运算符的结合性是右结合性。
(4) 优先级:单目运算符,优先级高于算术运算符,低于括号类运算符。
术表达式。
§3.9 赋值运算和赋值表达式
一、赋值运算
1. 赋值运算符: =
2. 赋值表达式: 变量=表达式
3. 功能: 计算表达式的值并将计算结果赋给指定的变量。
4. 赋值表达式的值:进行赋值操作后变量的值就是赋值表达式的值。
二、赋值运算的注意事项
赋值运算符两侧的变量和表达式的数据类型不一致但都是数值型数据时,系统能进行自动转换,转换规律如下:
1. 字符串常量: 一对双引号括起来的字符序列,叫字符串。
2. 字符串常量的长度: 字符串常量的长度等于字符的个数加 1,因字符串常量在内存中存储时,末尾加有一结束标志,以字符常量 '\0'作为结束标志。
3. 注意: 字符串常量不能赋给字符变量。
4. 字符串常量与字符常量的区别:
字 符 字 符 串
注意:
(1) 求余运算符号要求两个运算对象均为整型数据。
(2) 两个整数进行除法运算结果仍为整数,如: 5/3 结果为1。
(3) 在整数除法运算中,若除数或被除数中有一个为负数,采用"向零取整法",如: -5/3结果为 -1; -20/3 结果为 -6.
(4) 参加除法运算的两个数中有一个为实数,则结果是 double 型。
2. 转义字符: 以\开头的字符,这些字符的意义不是其本身,而是转成为新的意义其具体含义见教材P48 表3.3。
如: '\n' 表示回车换行,即使光标位于下一行的开头;
'\t' 表示横向跳格,即使光标跳到下一个输出区。
二、字符变量
1. 字符变量: 可以存放一个字符并能改变其值的变量;
按顺序依次计算各个表达式之值,整个逗号表达式的值为最后一个表达式之值,逗号运算符又叫顺序求值运算符。