第二章基本数据类型和运算
- 格式:pdf
- 大小:137.27 KB
- 文档页数:5
读程序第一章概述[1]分析下列程序段的运行结果。
main( ){ char ch1='\101',ch2='\x 5c ';printf("%c,%c\n",ch1,ch2);}第二章基本数据类型和运算[1]分析下列程序,写出运行结果。
main(){printf("C语言各数据类型的长度为:\n");printf("short %d bytes\n",sizeof(short)); printf("int %d bytes\n",sizeof(int));printf("long %d bytes\n",sizeof(long);printf("char %d bytes\n",sizeof(char));printf("float %d bytes\n",sizeof(float)); printf("double %d bytes\n",sizeof(double)); }第三章顺序、选择和循环结构的程序设计[1]阅读程序,写出运行结果。
main(){ int a=10,b=4,c=3;if (a<b) a=b;if (a<c) a=c;printf("%d,%d,%d",a,b,c);}[2]阅读下列程序,写出程序的输出结果。
main(){ int x=100,a=10,b=20,ok1=5,ok2=0; if (a<b)if (b!=15)if (!ok1)x=1;else if(ok2)x=10;else x=-1;printf("%d\n",x);}[3]阅读下列程序,写出程序运行的输出结果。
main(){ int y=9;for (;y>0;y--)if(y%3==0){printf("%d",--y);continue;}}[4]阅读下列程序:main(){int a;char b;float c;printf("input a b c:");scanf("%d%c%f",&a,&b,&c);printf("a=%d,b=%c,c=%f\n",a,b,c);}程序运行后若输入“1234r1234.567(回车)”,写出程序的输出结果。
《C语言编程基础》电子教案第一章:C语言概述1.1 C语言的历史与发展1.2 C语言的特点1.3 编译器与开发环境1.4 第一个C语言程序第二章:数据类型、运算符和表达式2.1 数据类型2.1.1 基本数据类型2.1.2 构造数据类型2.1.3 指针类型2.1.4 空类型2.2 运算符2.2.1 算术运算符2.2.2 关系运算符2.2.3 逻辑运算符2.2.4 位运算符2.2.5 赋值运算符2.2.6 其他运算符2.3 表达式2.3.1 赋值表达式2.3.2 算术表达式2.3.3 关系表达式2.3.4 逻辑表达式2.3.5 条件表达式第三章:控制语句3.1 顺序结构3.2 选择结构3.2.1 if语句3.2.2 switch语句3.3 循环结构3.3.1 while循环3.3.2 do-while循环3.3.3 for循环3.3.4 循环控制语句第四章:函数4.1 函数的定义与声明4.2 函数的参数与返回值4.3 函数的调用4.4 局部变量与全局变量4.5 静态变量与动态内存分配4.6 递归函数第五章:数组、指针与字符串5.1 数组5.1.1 一维数组5.1.2 二维数组5.1.3 多维数组5.2 指针5.2.1 指针的基本概念5.2.2 指针的运算5.2.3 指针与数组5.2.4 指针与函数5.3 字符串5.3.1 字符串的基本操作5.3.2 字符串数组5.3.3 字符串与指针第六章:结构体、联合体和枚举6.1 结构体的定义和使用6.2 联合体的定义和使用6.3 枚举类型的定义和使用6.4 结构体数组和指针6.5 结构体、联合体和枚举的综合应用第七章:文件操作7.1 文件概述7.2 文件打开与关闭7.3 文件读写操作7.4 文件定位与文件长度7.5 文件的权限与安全性7.6 错误处理与文件操作练习第八章:标准库函数8.1 标准输入输出库函数8.2 字符串处理库函数8.3 数学计算库函数8.4 日期和时间处理库函数8.5 常用库函数的综合应用第九章:预处理指令9.1 宏定义9.2 文件包含9.3 条件编译9.4 预处理指令的综合应用第十章:C语言编程实践10.1 程序设计方法与技巧10.2 常见数据结构和算法10.3 编程规范与风格10.4 项目实践与案例分析10.5 编程竞赛与挑战重点解析第一章:C语言概述重点:C语言的历史、特点、编译器与开发环境。
C程序设计复习要点第一章概述1.C程序的构成与结构特点2.C程序上机调试过程与流程第二章数据类型、运算量与表达式1.数据类型的种类(基本数据类型和构造数据类型)2.常量的数据类型及其表示(表示方法、存储字节数与表数范围)——整、实、字符、字符串和转义字符3.变量的命名、定义方法与赋初值4.各种表达式及其运算规则——优先级、结合性、类型自动转换与强制转换●算术运算符、表达式及其构造(注意“/”和“%”特殊性)●自增、自减运算符及其简单表达式运算●赋值运算符及其表达式(注意复合赋值运算符的运算方法)●逗号运算符及其表达式第三章流程控制1.赋值语句的一般形式、赋值过程及赋值规则(注意左右数据类型的一致或兼容)2.输入和输出函数的格式、功能及用法(只要求常用的格式控制符d, f, c, s),提醒注意:●格式输出中域宽和小数位数的控制●格式输入与输出中普通字符的原样输入和输出问题●熟悉并区别以下函数:putchar()、printf()、puts();getchar()、scanf()、gets()3.关系运算符及其表达式、逻辑运算符及其表达式和条件运算符及其表达式的运算规则(优先级、结合性)4.关系表达式与逻辑表达式的构造(根据已知条件写表达式)5.if语句的三种形式:if …语句、if …else …语句、if 语句的嵌套●if 语句的格式与用法:简单if、嵌套if、并列if●逻辑关系与执行过程●嵌套规则(重点掌握if …else …if …else …if …else)6.switch语句的格式与用法7.*熟练使用if和switch语句阅读和编写较为简单的选择结构程序8.三种循环语句:while() …、do …while()、for()的格式、执行过程及其用法●循环变量初始化、循环条件构造、循环体所要实现的任务和控制变量修改注意循环期间与结束时循环控制变量的取值问题9.结合例题理解和区别break与continue语句的作用及其用法10.本章涉及的主要算法:累加(计数)、累乘、递推、穷举、判素数、求最大公约与最小公倍等11.*熟练使用三种循环语句并结合以上算法阅读和编写较为简单的循环结构及其嵌套程序第四章复杂数据类型1.一维、二维数组的定义、初始化及其引用方法(数据输入、输出、存储与处理)2.字符数组的定义、初始化及其引用(字符串输入、输出、存储与处理)3.常用字符串处理函数:gets()、puts()、strlen()、strcmp()、strcpy()4.数组涉及的主要算法:排序、极值、逆序、回文和字符串的连接、复制、求长度等5.*熟练使用数组并结合以上算法阅读和编写较为简单的程序6.指针的概念:指针、指针变量、指针运算(*、&、++、--、+、-)7.变量、数组和字符串指针的定义、指向与引用(仅限于一维数组)8.了解指针数组与二级指针的概念和定义9.*能够阅读并理解使用指针进行数据处理的相关程序(极值、逆序、回文和字符串的连接、复制、求长度等)10.结构体与共用体的概念、定义与引用(仅限概念)第五章结构化程序设计与应用1.熟悉程序的三种基本结构:顺序、选择和循环2.*通过其中部分例题掌握选择、循环语句的使用以及循环和数组涉及的主要算法第六章函数与编译预处理1.掌握函数的定义、声明和调用方法及参数传递方式2.*结合相关例题掌握一般函数和递归函数的定义与使用3.熟悉局部变量与全局变量的定义及作用范围,了解各种静态与动态变量的定义、作用范围与生存期4.了解内部函数与外部函数的定义及调用规则5.掌握宏定义与宏展开(重点掌握带参数宏的定义与展开)6.了解文件包含的作用及其使用场合第七章文件1.了解文件的概念2.熟悉文件打开、关闭及各种与文件读写有关函数的格式与用法特别提醒:以上带*部分主要涉及程序阅读、程序填空和编写程序,其余部分主要以选择和概念填空题出现3ae bc C语言程序设计参考题型说明:★本题仅反映考试的题型,作为考前复习参考。
第二章C语言的基本数据类型及运算2.1C语言中的标识符可以由哪些字符组成?一个合法的C语言标识符应遵循那些规定?解:略。
2.2C语言有哪些数据类型?各种基本数据类型所占存储空间长度如何?解:略。
2.3若有定义int a=7; float x=2.5, y=4.7; 则表达式x+a%3*(int)(x+y)%2/4的值为多少?解:2.52.4假设所有变量均为整型,则表达式(a=2, b=5, b++, a+b)的值是什么?解:82.5若int x=1, y=2; 则表达式1.0+x/y的值是什么?解:1.02.6找出下列程序中的几处错误并改正。
Main(){ int a=1, b=c=5, t=326845;int d; char ch='A' ;d=b*c;printf("ch=%c, d=%d, t=%ld\n", ch, d, t);}解:错误(1)b=c=5(初始化错误)应该为:b=5,c=5错误(2)t=326845(给基本整型变量t赋值超过最大值32768,会导致执行结果错误)2.7写出下列程序的运行结果。
(1) main(){ int a, b, c, d;a=28; b=8;c=a/b; d=a%b;printf("%d/ %d=%d, %d%%d=%d\n", a, b, c, a, b, d);}(2) main(){ char x='a', y=98;printf("%d\t\b%c", x, y);}(3) main(){ int a=5, b=12, x, y;x=a*=4; y=b- -;printf("%d, %d, %d, %d\n", a, b, x, y);}(4) main(){ int m, n=4;float x=21.7, y=7.0;++n;m=x/y+n;printf("%d, %d\n", m, n);}解:(1)28/8=3, 28%8=4(2)97 b(3)20, 11, 20, 12(4)8, 5第三章C语言程序设计初步3.1什么是输入输出格式说明符?它与转义字符的区别是什么?解:略。
第二章基本数据类型和运算一、单项选择题1.下列数据中属于“字符串常量”的是(A)。A.”a”B.{ABC}C.’abc\0’D.’a’2.下列数据中属于“字符串常量”的是(B)。A.ABCB.“ABC”C.’abc’D.’a’3.在PC机中,’\n’在内存占用的字节数是(A)。A.1B.2C.3D.44.在PC机中,”a\xff”在内存占用的字节数是(C)。A.5B.6C.3D.45.字符串“ABC”在内存占用的字节数是(B)。A.3B.4C.6D.86.字符串”\’ABCD\’”在内存占用的字节数是(C)。A.4B.6C.7D.87.在C语言中,合法的长整型常数是(A)。A.0LB.4962710C.0.054838743D.2.1869e108.在C语言中,合法的短整型常数是(D)。A.0LB.0821C.40000D.0x2a9.下列数据中不属于“字符常量”的是(C)。A.‘\xff’B.‘\160’C.’070’D.07010.char型常量的内存中存放的是(A)。A.ASCII代码值B.BCD代码值C.内码值D.十进制代码值11.若int类型数据字长为4,其最大值为(B)。A.231B.231-1C.232-1D.232
12.常数的书写格式决定了常数的类型和值,03322是(B)。A.16进制int类型常数B.8进制int类型常数C.10进制int类型常数D.10进制longint类型常数13.“e2”是(D)。A.实型常数100B.值为100的整型常数C.非法标识符D.合法标识符14.要为字符型变量a赋初值,下列语句中哪一个是正确的(A)。A.chara=’3’;B.chara=”3”;C.chara=%;D.chara=*;15.要为float类型变量x、y、z赋同一初值3.14,下列说明语句哪一个是正确的(C)。A.floatx,y,z=3.14;B.floatx,y,z=3*3.14;C.floatx=3.14,y=3.14,z=3.14;D.floatx=y=z=3.14;16.语句“floatpi=3.1415926535;”将(D)。A.导致编译错误B.说明pi为初值3.1415926535的单精度实型常数C.导致运行时的溢出错误D.说明pi为初值3.141593的单精度实型常数17.算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为(B)。A.算术运算、赋值运算、关系运算B.算术运算、关系运算、赋值运算C.关系运算、赋值运算、算术运算D.关系运算、算术运算、赋值运算18.关系运算符中优先级最低的运算符是(C)。A.“>=”和“<=”B.“>”和“<”C.“==”和“!=”D.“<=”和“<”19.逻辑运算符中,运算优先级按从高到低依次为(D)。A.&&,!,‖B.‖,&&,!C.&&,‖,!D.!,&&,‖20.对C程序在作逻辑运算时判断操作数真、假的表述,下列哪一个是正确的(A)。A.0为假非0为真B.只有1为真C.-1为假1为真D.0为真非0为假21.表达式x==0&&y!=0‖x!=0&&y==0等效于(A)。A.x*y==0&&x+y!=0B.x*y==0&&(x+y==0)C.x==0‖y==0D.x*y=0‖x+y=022.表达式!x‖a==b等效于(D)。A.!((x‖a)==b)B.!(x‖y)==bC.!(x‖(a==b))D.(!x)‖(a==b)23.设整型变量m,n,a,b,c,d均为0,执行(m=a==b)‖(n=c==d)后,m,n的值是(C)。A.0,0B.0,1C.1,0D.1,124.设整型变量m,n,a,b,c,d均为1,执行(m=a>b)&&(n=c>d)后,m,n的值是(B)。A.0,0B.0,1C.1,0D.1,125.设a为2,执行下列语句后,b的值不为0.5的是(B)。A.b=1.0/aB.b=(float)(1/a)C.b=1/(float)aD.b=1/(a*1.0)26.设a为5,执行下列语句后,b的值不为2的是(C)。A.b=a/2B.b=6-(--a)C.b=a%2D.b=a>3?2:227.执行语句“x=(a=3,b=a--)”后,x,a,b的值依次为(C)。A.3,3,2B.3,2,2C.3,2,3D.2,3,228.intb=0,x=1;执行语句if(x++)b=x+1;后,x,b的值依次为(A)。A.2,3B.2,0C.3,0D.3,229.设有语句inta=3;,则执行了语句a+=a-=a*a;后,变量a的值是(D)。A.3B.0C.9D.-1230.设有语句inta=3;,则执行了语句a+=a-=a*=a;后,变量a的值是(B)。A.3B.0C.9D.-1231.inta=4,b=3,c=-2,d=2;逻辑表达式a>0&&b&&c<0&&d>0的值是(A)。A.1B.0C.-1D.出错32.在以下一组运算符中,优先级最高的运算符是(C)。A.<=B.=C.%D.&&33.设整型变量i值为2,表达式(++i)+(++i)+(++i)的结果是(C)。A.6B.12C.15D.表达式出错34.设整型变量i,j值均为3,执行了j=i++,j++,++i后,i,j的值是(B)。A.3,3B.5,4C.4,5D.6,635.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是(C)。A.1B.2C.2.0D.2.536.sizeof(double)的结果值是(A)。A.8B.4C.2D.出错37.表达式1?(0?3:2):(10?1:0)的值是(B)。A.3B.2C.1D.038.设a=1,b=2,c=3,d=4,则表达式:aA.4B.3C.2D.139.设a为整型变量,不能正确表达数学关系:10A.10C.a>10&&a<15D.!(a<=10)&&!(a>=15)40.inta=0;if(a=1)a+=10;结果的值是(B)。A.0B.11C.10D.出错41.下列表达式中符合C语言语法的赋值表达式是(C)。A.a=7+b+c=a+7B.a=7+b++=a+7C.a=(7+b,b++,a+7)D.a=7+b,c=a+742.设f是实型变量,下列表达式中不是逗号表达式的是(D)。A.f=3.2,1.0B.f>0,f<10C.f=2.0,f>0D.f=(3.2,1.0)---赋值表达式43.下列表达式中,不正确的表达式是(B)。A.a=1,b=1B.y=int(x)C.a=b=5D.i++44.intn;floatf=13.8;执行n=((int)f)%3后,n的值是(A)。A.1B.4C.4.333333D.4.645.用十进制数表示表达式“12|012”的运算结果是(C)。A.1B.0C.14D.1246.设有整型变量a=35,表达式(a&15)&&(a|15)的值是(B)。A.0B.1C.15D.3547.设字符型变量a=3,b=6,计算表达式c=(a^b)<<2后c的二进制值是(D)。A.00011100B.00000111C.00000001D.0001010048.设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中值为0的是(D)。A.’a’&&’b’B.a<=bC.a‖b+c&&b-cD.!(a49.设x,t均为int型变量,则执行以下语句后,t的值为(D)x=10;t=x&&x>10;。A.不定值B.10C.1D.050.设x,y,z,t均为int型变量,则执行以下语句后,t的值为(C)。x=y=z=1;t=++x‖++y&&++z;A.不定值B.2C.1D.051.设a是char型变量,其值字符为‘1’,则把其值变成整数1的表达式是(C)。A.(int)aB.int(a)C.a=a-48D.a/(int)a52.设a是int型变量,其值为3,则把其值变成字符‘3’的表达式是(D)。A.(char)aB.a=3C.a=a-48D.a=a+4853.设ch是char型变量,其值为‘A’,则下面表达式的值是(B)。ch=(ch>=’A’&&ch<=’Z’)?(ch+32):chA.AB.aC.ZD.z54.设有整型变量i,j,k,i值为3,j值为6。计算表达式k=i^j<<3;后,k的值是(B)。A.56B.51C.40D.2755.设有无符号短整型变量i,j,k,i值为013,j值为0x13。计算表达式k=~i|j>>3;后,k的值是(D)。A.06B.0177776C.066D.017776656.设有无符号整型变量a值为331,计算表达式a=(a>>4)&~(~0<<4)后,a的值是(A)。A.4B.15C.015D.01757.下列格式符中,哪一个可以用于以8进制形式输出整数(C)。A.%dB.%8dC.%oD.%ld58.下列格式符中,哪一个可以用于以16进制形式输出整数(B)。A.%16dB.%8xC.%d16D.%d59.a是int类型变量,c是字符变量。下列输入语句中哪一个是错误的(B)。A.scanf(”%d,%c”,&a,&c);B.scanf(”%d%c”,a,c);C.scanf(”%d%c”,&a,&c);D.scanf(”d=%d,c=%c”,&a,&c);60.字符变量ch=’A’,int类型变量k=25,语句printf(”%3d,%d3\n”,ch,k);输出(A)。A.65,253B.65253C.65,25D.2561.设a=1234,b=12,c=34执行printf(“|%3d%3d|\n”,a,b,c);的输出是(A)。A.|12341234|B.|1231234|C.|123412-34|D.|2341234|62.使用scanf(“x=%f,y=%f”,&x,&y);要使x,y均为1.25,正确的输入是(C)。A.1.25,1.25B.1.251.25C.x=1.25,y=1.25D.x=1.25y=1.2563.要使doublex;longa;获得数据,正确的输入语句是(C)。A.scanf(“%d,%f”,&a,&x);B.scanf(“%f,%1d”,&x,&a);C.scanf(“%1d,%1f”,&a.&x);D.scanf(“%1d,%1f”,a,x);64.要使doublex;longa;的数据能正确的输出,输出语句应是(D)。A.printf(“%d,%f”,a,x);B.printf(“%d,%1f”,a,x);C.scanf(“%1d,%1f”,&a,&x);D.printf(“%1d,%1f”,a,x);65.还是inta=255,b=8;则printf(“%x,%o\n”,a,b);的输出的是(B)。A.255,8B.ff,10C.0xff,010D.输出格式错