c语言练习1
C语言练习题1
一、语言基础选择题1. 下面说法中,正确的是 BA)C语言是机器语言B)C语言程序可以由一个或多个函数构成C)C语言程序总是从第一个函数开始执行D)C语言程序不用编译就可以直接运行2.C语言程序的基本单位是 CA) 程序行 B) 语句 C) 函数 D) 字符3.一个C语言程序的上机步骤是 AA) 编辑,编译,连接,执行 B) 编译C) 编辑,连接,执行 D) 连接,编译,执行4. 已知有定义:char ch;则如下正确的赋值为 AA) ch=‘M’; B) ch=’55’; C) ch="M"; D) ch="55";5.在Turbo C环境中,查看程序运行结果的快捷键是 DA) F5 B) Ctrl+F9 C) F8 D) Alt+F56.下列变量名中合法的是 CA) B.C.Tom B) 3a6b C) _b5a8 D) $ABC7. C语言中,要求运算数必须是整型的运算符是 DA) / B)+ + C)!= D)%8. 已知 int j,i=1;则执行j=-i++; i和j的值为 BA)1,-1 B)2,-1 C)1,1 D)2,19.在C语言中,数字035是一个 AA)八进制数 B)十六进制数 C)十进制数 D)非法数10.C语言中用于结构化程序设计的三种基本结构是___A___A)顺序结构、选择结构、循环结构 B)if、switch、breakC)for、while、do-while D)if、for、continue11.如下程序运行后的输出结果是___B___main( ){int x=1,a=0,b=0;switch(x){ case 0:b++;case 1:a++;case 2:a++;b++;}printf("a=%d,b=%d\n",a,b);}A)a=1,b=1 B)a=2,b=1 C)a=1,b=0 D)a=2,b=2 12. 下列说法中,正确的是___C___int i,x;for(i=0,x=0;i<=5&&x!=4;i++);A)循环体一次也不执行 B)是无限循环C)最多执行6次 D)最多执行5次13.设有语句int a=3;则执行了语句a+=a-=a*a;后,变量a的值是___D___ A)3 B)0 C)9 D)-1214.有输入语句:scanf("a=%d,b=%d",&a,&b),为使变量a值为3,b值为7,从键盘输入数据的正确形式是___A___A)a=3,b=7<回车> B)a=3 b=7<回车> C)3 7<回车> D)3,7<回车>15.已知在ASCII代码中,字母A的序号为65,以下程序的输出的结果是___D___#include <stdio.h>main(){char c1='A', c2='Y';printf("%d,%d\n",c1,c2);}A) 因输出格式不合法,输出错误信息 B)65,90C)A,Y D)65,8916.如下程序段int a=14,b=15,x;char c='A';x=(a&&b)&&(c<'B');执行该程序段后,x的值为___D___A)ture B)false C)0 D)117.以下关于break和continue语句的说明正确的是__C____A) break用于switch结构,continue用于循环结构。
C语言练习1
C语言练习1一、单选1、以下标识符中,合法的用户标识符为【】。
A) b–b B) CCP C) hiy D)_iswAbc float INT2、若int类型数据占2个字节,则下列语句的输出结果为【】。
C. int k=-1; printf(“%d,%o”,k,k);D. A) –1,–1 B) –1,32767 C) –1,177777 D) –1,655353、在宏定义 #define PI 3.14159中,用宏名PI代替一个【】A) 单精度数 B) 双精度数 C) 常量 D) 字符串4、设有以下定义【】int a=0;double b=1.25;char c=’A’;#define d 2则下面语句中错误的是A)a++; B)b++ C)c++; D)d++;5、下面的程序【】int a=3,b=4; char str=’c’;printf(“%d,%c”,a, str, b);执行后,输出结果为:A)3,c,4 B)3 4 C)3,c D)程序出错6、表达式 7/4*sqrt(16.0)+8值的数据类型是【】。
A. intB. doubleC. floatD.不确定7、当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是【】A) c=b=a;B) (a=c) ∥(b=c) ;C) (a=c) &&(b=c); C) a=c=b;8、若已定义:int a[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1] 地址的表达式是【】A) p+1 B) a+1 C) a++ D) ++p9、以下说法中正确的是【】A) C语言程序总是从第一个的函数开始执行B) C语言程序中要调用的函数必须在main()函数中定义C) C语言程序总是从main()函数开始执行D) C语言程序中的main()函数必须放在程序的开始部分10、设有以下定义: 【】A. typedef union { long i; int k[5];char c;}DATE;B. struct date { int cat;DATE cow;double dog;}too;C. DATE max;D. 则下列语句的执行结果是E. printf("%d",sizeof(struct date)+sizeof(max));A) 25 B) 30 C) 18 D) 811、以下4个选项中,不能看作一条语句的是【】。
C语言练习题1
C语言练习题1第八章结构体与共用体1练习题一、c语言基础知识1.1选择题1.以下不是c语言的特点的就是(b)。
a.语言简洁紧凑b.能够编制出功能复杂的程序c.c语言可以直接对硬件操作d.c 语言移植性好2.以下字符序列中,不容用做c语言标识符的就是(b)。
a.abc123b.no.1c._123_d._ok3.正确的c语言标识符是(a)。
a._buy_2b.2_buyc.?_buyd.buy?4.恳请挑选出可以用做c语言用户标识符的一组标识符(b)。
a.voidb.a3_b3c.ford.2adefine_123-abcdowordifcasesizeof5.以下符号中,不属于转义字符的就是(b)。
a.\\\\b.\\0xaac.\\td.\\06.不属于c语言关键字的是(d)。
a.intb.breakc.whiled.character7.就是c语言提供更多的合法关键字的就是(b)。
a.floatb.signedc.integerd.char8.以下不能定义为用户标示符的是(d)。
a.一个主程序和若干子程序共同组成b.一个或多个函数共同组成c.若干过程共同组成d.若干子程序共同组成10.c语言程序的基本单位是(c)。
a.程序行b.语句c.函数d.字符20.下列变量定义中合法的是aa.short_a=1-.le-1;b.doubleb=1+5e2.5;c.longdo=0xfdal;d.float2_and=1-e-3;9xn21.与数学式子对应的c语言表达式是(c)。
2x?1a.9*x^n/(2*x-1)b.9*x**n/(2*x-1)c.9*pow(x,n)*(1/(2*x-1))d.9*pow(n,x)/(2*x-1)第八章结构体与共用体222.若存有代数式3ab,则不正确的c语言表达式是(c)。
cda.a/c/d*b*3b.3*a*b/c/dc.3*a*b/c*dd.a*b/d/c*323.已知各变量的类型说明如下:intm=8,n,a,b;unsignedlongw=10;doublex=3.14,y=0.12;则以下符合c语言语法的表达式是(a)。
C语言练习题一及答案
C语言练习题一一、填空题。
(每空1分,共10分)1.语句while(e==0):中的条件e==0等价于_____________;答案:!e2 printf(“%4s”,“beijing”);输出为:_____________;答案:beijing3.C语言中的字符串以字符_____________;答案:答案:\04.C语言可以处理的文件类型是_____________和_____________;答案:文本文件和二进制文件5,int(*P)[5];说明p是:_____________;答案:指向一维整形数组的指针变量6.函数直接或间接地调用自己,被称为函数的_____________;答案:递归7.若有static int x[5],x[4]的地址表示是:___________ 。
答案:&x[4]或x+48.有程序段如下:int x=l:while (x<=lO){x+=3;printf(“%d\n”,x);}则:函数printf()执行次数是____4_____ ,循环结束后X的值是___________ 。
答案:139.若有以下定义和语句,则sizeof(a)的值是_____,答案:12,而sizeof(b)的值是__。
答案:4 struct{int day;char month;int year;}a,*b;10.若有static char c[10] = “China”;执行该语句后c[1]= ___________ 。
答案:h c[5]= ___________ 。
答案:\0c[6]= ___________ 。
答案:\0 strlen(c)= ___________ 。
答案:511.若有Static char c[s]={’a’,’b’,’\0’(零),‘c’,‘d’};printf(“%s\n”,c):则输出内容为:___________ 。
答案:ab12.下面程序把从终端读人的10个整数以二进制方式写到一个名为bi.dat的新文件中。
C语言习题(1)
C语言概述、数据类型运算符表达式、顺序结构一、选择题1.下列叙述中,正确的是。
A.C程序中的注释只能出现在程序的开始位置和语句的后面B. C程序书写格式严谨,要求一行内只能写一个语句C. C程序的书写格式自由,一个语句可以写在多行上D. 用C语言编写的程序只能放在一个程序文件中2.下列选项中,可作为合法标识符的是。
A.1mB. DataC. str+1D. i-1 3.设变量已正确定义并赋值,以下合法的C语言赋值语句是。
A.x=y==5B. x=n%2.5C. x+n=iD. x=5=4+1 4.设有定义:int k=0;以下选项的4个表达式中与其他3个表达式的值不相同的是。
A.k++B. k+=1C. ++kD. k+1 5.若有定义:int a,b;则用语句scanf(“%d%d”,&a,&b);输入a,b的值时,不能作为输入数据分隔符的是。
A.,B. 空格C. 回车D. Tab键6.C语言并不是非常严格的算法语言,在以下关于C语言的不严格的叙述中,错误的是。
A.任何不同数据类型都不可以通用B. 有些不同类型的变量可以在同一个表达式中运算C. 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型D. 同一个运算符号在不同的场合可以有不同的含义7.下列常数中不能作为C语言的常量的是。
A.0Xa6B. 3.4e-3C. 3e5D. 0683 8.下面不是C语句的是。
A.int;B. ;C. a=1,b=5D. {;} 9.设x、y、z为整型变量,若从键盘给x、y、z输入数据,则正确的输入语句是。
A.scanf(“%d%d%d”,&a,&b,&c);B. scanf(“%d%d%d”,a,b,c);C.scanf(“%D%D%D”,&a,&b,&c);D. scanf(“%d%d%d”,&a;&b;&c); 10.若变量已正确定义,现要将a和b中的数据进行交换,下面不正确的是。
c练习题(1)
1.下面是一个加法程序,程序运行时等待拥护从键盘输入两整数,然后求出它们的和并输出之。
观察运行结果(程序输出),上机验证该程序。
#include <stdio.h>void main(){int a,b,c;printf(“Please input a,b;”);scanf(“%d,%d”,&a,&b);c=a+b;printf(“%d+%d=%d\n”,a,b,c);}2.下面的程序用来求三个数的平均值,上机验证该程序。
main(){float a,b,c,average;printf(“Please input a b c:”);scanf(“%f%f%f”,&a,&b,&c);average=(a+b+c)/3;printf(“The average value is :%f\n”,average);}练习题C语言基本语法知识一、选择题(1)以下叙述中错误的是A)用户所定义的标识符允许使用关键字B)用户所定义的标识符应尽量做到“见名知意”C)用户所定义的标识符必须以字母或下划线开头D)用户定义的标识符中,大、小写字母代表不同标识(2)以下叙述中错误的是A)C语句必须以分号结束B)复合语句在语法上被看作一条语句C)空语句出现在任何位置都不会影响程序运行D)赋值表达式末尾加分号就构成赋值语句(3)以下能正确定义且赋初值的语句是A)int n1=n2=10; B)char c=32;C)float f=f+1.1; D)double x=12.3E2.5;(4)设有定义:int k=1,m=2; float f=7;,则以下选项中错误的表达式是A)k=k>=kB)-k++C)k%int(f) D)k>=f>=m(5)有以下程序段int k=0,a=1,b=2,c=3; k=ac ? c:k;执行该程序段后,k的值是A)3 B)2 C)1 D)0(6)以下选项中可作为C语言合法常量的是A)-80.B)-080C)-8e1.0D)-80.0e(7).以下不能定义为用户标识符的是A)MainB)_0C)_intD)sizeof(8)以下选项中,不能作为合法常量的是A)1.234e04 B)1.234e0.4C)1.234e+4 D)1.234e09)有以下程序main(){int m=12,n=34;printf("%d%d",m++,++n); 12 35 m=13 printf("%d%d\n",n++,++m); 35 14}程序运行后的输出结果是A)12353514 B)12353513C)12343514 D)12343513(10)有以下程序main(){int m=3,n=4,x;x=-m++; x= 3 m =4x=x+8/++n; x= 3+8/4= 5printf("%d\n",x);}程序运行后的输出结果是A) 3 B) 5 C) -1 D) -2(11)以下符合C语言语法的实型常量是A) 1.2E0.5B) 3.14.159EC) .5E-3D) E15(12) 若以下选项中的变量已正确定义,则正确的赋值语句是A) x1=26.8%3B) 1+2=x2C) x3=0x12D) x4=1+2=3;(13) 设有以下定义int a=0;double b=1.25;char c=‟A‟;#define d 2则下面语句中错误的是A) a++; B) b++ C) c++; D) d++;实验二整型、浮点型、字符型数据使用1.编程序,输出如下图形:*********************#include <stdio.h>int main(){int i;int j;for(i=1;i<=5;i++){for(j = 1;j<=i;j++){printf("*");}printf("\n");}}2.编写程序,实现下面的输出格式和结果:a= 5,b= 7,a-b=-2,a/b= 71%c1=COMPUTER,c2=COMP ,c3= COMPx=31.19,y= -31.2,z=31.1900s=3.11900e+001,t= -3.12e+001#include <stdio.h>int main(){int a = 5;int b = 7;printf("%d\n",a-b);printf("%2.0f%%\n",(float)a/b*100);char c1[] = "COMPUTER",c2[]="COMP",c3[]="COMP";printf("%s %s %s\n",c1,c2,c3);float x = 31.19,y=-31.2,z=31.1900;printf("%5.2f %4.1f %7.4f",x,y,z);}3.编写程序,输入变量x值,输出变量y的值,并分析输出结果。
C语言习题集(平时练习含答案)1
C语言习题集第一章C语言概述复习要点:1. 程序的构成,main函数和其他函数。
2.语句,注释3.运行C程序的步骤和方法习题:1.C程序是由函数构成的,一个C程序中至少包含一个main函数。
2.函数是C程序的基本单位。
(最小单位是表达式)3.C程序有且只有一个main函数。
4.C程序从main函数开始执行。
5.C程序注释符是由/*和*/组成,且不能嵌套使用。
6.C程序的语句是以; 结束。
7.C程序一条语句可分多行写,需要以为连接符。
(可以直接换行)8.C程序可以用{ 和} 将多条语句括起来,形成复合语句。
9.上机运行一个C程序必须经过源代码输入,编译,连接,运行4个步骤。
10.C程序的源文件扩展名是。
c 。
11.以下叙述中正确的是(C)A)C语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,main必须小写,程序将从此开始执行,在此结束D)main可作为用户标识符,用以命名任意一个函数作为主函数12.以下叙述中错误的是(D)A)C语言源程序经编译后生成后缀为.obj的目标程序B)C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件C)用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中D)C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令13.以下不是语句的是(A)A) a=10 B)a=b+c;c=20;C) ; D){a=b;b++;}14.运行以下程序main(){int a=10; /* 定义一个变量 aa=20; */printf(“%d”,A); 此程序应该改写为:printf(“%d”,a)}输出的结果是 B 。
A) 10 B)2015.牢记VC++6.0的出错提示英文提示中文实际意义missing ; , ( { 等表示缺少;,( {'T' : undeclared identifier T没有定义(T要先定义然后才能使用)'sqrt' undefined; sqrt如果是函数名则表示它的头文件没有包含'T' : redefinition T重复定义(可能是多次定义了T)Cannot open include file 头文件的拼写或路径的不对第二章数据类型,运算符与表达式复习要点:1. C的数据类型(整型,字符型,浮点型)及其定义方法。
C语言习题1
习题1一、选择题1.所有C函数的结构都包括的三部分是( C )。
A.语句、花括号和函数体B.函数名、语句和函数体C.函数名、形式参数和函数体D.形式参数、语句和函数体2.C程序由( C )组成。
A.子程序B.主程序和子程序C.函数D.过程3.下面属于C语言标识符的是( D )。
A.2ab B.@f C.?b D._a124.C语言中主函数的个数是( B )。
A.2个B.1个C.任意个D.10个5.下列关于C语言注释的叙述中错误的是( D )。
A.以“/*”开头并以“*/”结尾的字符串为C语言的注释内容B.注释可出现在程序中的任何位置,用来向用户提示或解释程序的意义C.程序编译时,不对注释作任何处理D.程序编译时,需要对注释进行处理6.下列不是C语言的分隔符的是( C )。
A.逗号B.空格C.制表符D.双引号7.下列关于C语言的关键字的叙述中错误的是( C )。
A.关键字是C语言规定的具有特定意义的字符串,通常也称保留字B.用户定义的标识符不应与关键字相同C.ANSI C标准规定的关键字有64个D.ANSI C标准规定的关键字有32个8.在Visual C++ 6.0环境下,C源程序文件名的默认后缀是( A )。
A..cpp B..exe C..obj D..dsp9.若在当前目录下新建一个名为“LX”的工程,则在当前目录下生成的工作区文件名为( A )。
A.LX.DSW B.LX.OPT C.LX.DSP D.LX.C10.面可能不影响程序正常运行的是( C )。
A.语法错误B.逻辑错误C.警告提示D.算法错误二、填空题1.C程序是由一个或多个函数构成的,一个C程序中至少包含一个主函数。
因此,函数是C程序的基本单位。
2.C程序注释是由\* 和*\ 所界定的文字信息组成的。
- 1 -3.开发一个C程序要经过编辑、编译、连接和运行4个步骤。
4.在C语言中,包含头文件的预处理命令以# 开头。
5.在C语言中,主函数名是mian()。
C语言作业1(基本运算)
C语言
练习题一
1.请将下面的十进制数转换成二进制,八进制和十六进制;
(1)10 (2)32 (3)75 (4)658 (5)88
将下面非十进制数据转换为二进制数
(1)127O (2)31AH (3)1010111B (4) 52O
2.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是
A)x*=x+1 B)x++,2*x C)x*=(1+x) D)2*x,x+=2
13.有以下程序
#include <stdio.h&g0;
C=(A-=A-5);(A=B,B+=4);
Printf(“%d, %d, %d\n”,A,B,C)
8.下列语句中符合C语言语法的赋值语句是______。
A)int n1=n2=10; B)char c=32; C)float f=f+1.1; D)double x=12.3E2.5;
9. 若有定义语句:int a=10;double b=3.14;,则表达式'A'+a+b值的类型是________。
#include <stdio.h>
main()
{
int i,j,m;
i=8;
j=10;
printf("%d,%d,%d",i,j,m);
}
20.写出下面程序的结果;
#include <stdio.h>
main()
{
float i;
int m;
C)通过编译得到的二进制目标程序需要连接才可以运行
c语言期末考试练习题1(含答案)
一、单项选择题(6小题,每小题3分,共18分)1、在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是A、externB、registerC、autoD、static2、下面4个选项中,是合法转义字符的选项是( )。
A、'\"B、'\'C、'\018'D、'\\0''\\' '\017' '\f' '\101''\n' '\''' 'xab' 'x1f'3、下面4个选项中,是正确的八进制数或十六进制数的选项是( )。
A、–10B、0abcC、0010D、0a120x8f –017 –0x11 ––011 0xc 0xf1 –0xa4、以下在任何情况下计算平方数时都不会引起二义性的宏定义是( )A、# define POWER(x) □□x * xB、# define POWER(x) □□(x) * (x)C、# define POWER(x) □□(x * x)D、# define POWER(x) □□((x) * (x))5、以下程序段( )x= –1;do{ x=x*x;} while (!x);A、是死循环B、循环执行二次C、循环执行一次D、有语法错误6、下面程序的运行结果是( )# include <stdio.h>int main( ){ int i,j,x=0;for (i=0;i<2;i++){ x++;for(j=0;j<=3;j++){ if (j%2) continue;x++;}x++;}printf ("x= %d \n",x);return 0;}A、x=4B、x=8C、x=6D、x=12二、填空题(7小题,每小题3分,共22分)1、下面程序段的运行结果是( )。
C语言综合练习1
C语言综合练习一、选择题1、运算符有优先级,在C语言中关于运算符优先级的正确叙述是。
A) 逻辑运算符高于算术运算符,算术运算符高于关系运算符B) 算术运算符高于关系运算符,关系运算符高于逻辑运算符C) 算术运算符高于逻辑运算符,逻辑运算符高于关系运算符D) 关系运算符高于逻辑运算符,逻辑运算符高于算术运算符2、在以下关于C语言的不严格的叙述中,错误的是A)大写字母和小写字母的意义相同B)有些不同类型的变量可以在一个表达式中运算C)在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型D)同一个运算符号在不同的场合可以有不同的含义3、C语言中的简单数据类型包括。
•A)整型、实型、逻辑型B)整型、实型、字符型C)整型、字符型、逻辑型D)整型、实型、逻辑型、字符型4、在C语言中,错误的int类型的常数是。
A) 32768 B) 0 C) 037 D) 0xAF5、下列常数中不能作为C的常量的是。
A) 0xA5 B) 2.5e-2 C) 3e2 D) 05826、在C语言中,十进制的47可等价地写为。
A) 2f B) 02f C) 57 D) 0577、已知:int a=4,b=5,c;则执行表达式“c=a=a>b”后变量a的值为。
A) 0 B) 1 C) 4 D) 58、下列可以正确表示字符型常数的是A) "a" B) ‟\t‟C) "\n" D) 2979、以下错误的转义字符是A) ‟\\‟B) ‟\‟‟C) ‟\81‟D) ‟\0‟10、已知:float x=1,y;则:y=++x*++x的结果是A) y=9 B) y=6 C) y=1 D) 表达式是错误的11、已知:char ch=‟A‟;则下列表达式的值是ch = (ch>=‟A‟&&ch<=‟Z‟) ? (ch+32) : ch;A) A B) a C) Z D) z12、若变量已正确定义并赋值,以下符合c语言语法的表达式是A) a:=b+1 B) a=b=c+2 C) int 18.5%3 D) a=a+7=c+b13、下列可用于c语言用户标识符的一组是A) void define WORD B) a3_B3 _123 CarC) For –abc IFCase D) 2a DO sizeof14、若已定义:int a=25,b=14,c=19;以下三目运算符(?:)所构成语句的执行后a<=25&&b--<=2&&c?printf(“***a=%d,b=%d,c=%d\n”,a,b,c):printf(“###a=%d,b=%d,c=%d\n”,a,b,c);程序的输出结果是:A) ***a=25,b=13,c=19 B) ***a=26,b=14,c=19C) ###a=25,b=13,c=19 D) ###a=26,b=14,c=1915、下列程序段的输出结果是:int a=1234; float b=123.456;double c=12345.54321;printf(“%2d,%2.1f,%2.1f”,a,b,c);A)无输出B) 12,123.5,12345.5C) 1234,123.5,12345.5 D) 1234,123.4,1234.516、有如下程序段:int a=14,b=15,x; char c=‘A’; x=(a&&b)&&(c<‘B’);执行该程序段后,x的值为: DA)true B) false C) 0 D)117、下列数据中,不合法的c语言实型数据的是: CA)0.123 B)123e3 C) 2.1e3.5 D)789.018、设变量a是int型,f是float型,i是double型,则表达式10+‟a‟+i*f值的数据类型为:DA) int B) float C) double D) 不确定19、设以下变量均为int类型,表达式的值不为7的是:CA) (x=y=6,x+y,x+1) B)(x=y=6,x+y,y+1)C) (x=6,x+1,y=6,x+y) D) (y=6, y+1,x=y,x+1)20、若变量a是int类型,并执行了语句:a=…A‟+1.6;则正确的叙述是:DA) a的值是字符C B) a的值是浮点型C)不允许字符型和浮点型相加D) a的值是字符‟A‟的ASCII值加上1二、给出以下程序的运行结果1、main() { int a=0; a+=(a=8); printf(“%d\n”,a);}2、main() { double d=3.2; int x,y; x=1.2;y=(x+3.8)/5.0; printf(“%d\n”,d*y) }3、main() { int a=5,b=4,c=3,d; d=(a>b>c); printf(“%d\n”,d); }4、main() { int a=4,b=5,c=0,d; d=!a&&!b||!c; printf(“%d\n”,d); }}5、main() { int x=3,y=5; printf(“%d”,x=(x--) * (--y)); }6、#define f(x) x*xmain() { int i ; i=f(4+4)/f(2+2); printf(“%d\n”,i); }7、main() {int m=0256,n=256; printf(“%o%o\n”,m,n); }8、main(){int x=10,y=10; x--,++y;printf("%d,%d ",x,y);}三、数据描述如下int a=4,b=5;float x=65.789;char c1='A',c2='\375';则表达式运算结果:(1)a*100+b*10+2(2)c1*(a=x)(3)b/a+(int)(x+a)%c1(4)c1%c2(5)a+=a-=a%=a(6) (a*=b,a*2),a+6四、将下列数学公式用C 语言表达式描述(1) ,(2) 3243,R R ππ(3) )12(578,3),(2y x y x c b a b a --+++++ (4) x x x 12t a n )42c o s (3)5.0(s i n -++++五、执行如下程序,为使变量a=3,b=7,x=8.5, y=71.82, c1=…A‟,c2=…a‟,正确的输入方式:main(){int a,b;float x,y;char c1,c2;scanf("a=%d b=%d",&a,&b);scanf("x=%f y=%f",&x,&y);scanf("c1=%c c2=%c",&c1,&c2);printf("a=%d,b=%d,x=%f,y=%f,c1=%c, c2=%c", &a,&b,&x,&y,&c1,&c2);}六、程序设计(要求画出程序流程图)1、已知a=4.6,b=5,根据公式c=2a+b/5求出c 的值。
第1部分_C语言程序设计练习一
《C语言程序设计》练习一一、单项选择题1.下面转义字符中,表示字符串结束的是()A.\ rB.\ nC.\ 0D.\ f2.在Turbo C2.0中,若定义unsigned int a;则变量a在内存中分配的字节数是()A.1个B.2个C.4个D.8个3.设有int x=2,y,z;执行z=y=x--;后,变量z的值是()A.0B.1C.2D.34.以十六进制形式输出整数的格式说明符是()A.%uB.%ldC.%xD.%o5.下面合法的if语句是()A.if(a=b) c++;B.if(a=<b) c++;C.ifi(a< >b) c++;D.if(a=>b) c++;6.结束while(表达式)循环的条件是()A.当表达式的值为0时B.当表达式的值不为0时C.当表达式的值为1时D.当表达式的值为非1时7.下面列出的位运算符中,表示按位与操作的是()A.~B.&C.^D.|8.设有说明:int x=0x03,y=3;表达式x&~y的值是()A.0B.1C.2D.39. 设有int a=3, b=-4, c=5;表达式(a<b)? a+b:(a-b,b+4,a-=b+4)的值是()A. –1B. 0C. 3D. 710. 若有下列程序段,欲使a=2、b=3,对应正确的数据输入方法是()(其中<CR>表示换行)int a, b;scanf(″a=%d b=%d″,&a, &b);A. 2<CR>B. a=2 b=3<CR>C. a=2, b=3<CR>D. 2,3<CR>3<CR>11. 下列if语句中,有语法错误..的是()A. if(x>y);B. if(x=y) x+y;C. if(x!=y) scanf(″%d″, &x) else scanf(″%d″,&y)D. if(x<y) {x++; y++;}12. 下面程序段执行后的输出结果是()int i=-1;if(i<=0) printf(″* * * * \n″);else printf(″%%%%\n″);1A. ****B.%%%%C. %%%%cD. ****c13. 下面程序段的循环次数是()int k=2;while(k==0) printf(″%d″,k);k--; printf(″\n″);A. 0次B. 1次C. 2次D. 无限次14. 下面各个位运算符的优先级从左到右依次升高的是()A. | ^ & >>B. ^ >> & ~C. << | ^ ~D. ~ | & >>15. 设有说明:int u=1, v=14;表达式u+v>>2的值是()A. 0B. 3C. 5D. 716.设有int a =3, b=-4, c=0;表达式((a>b)?a:b)&&c<0的值是()A.-4B.0C.1D.317.若有下列程序段,欲使a=2、b=3,对应正确的数据输入方法是()(其中<CR>表示换行)int a, b;scanf(″a=%d, b=%d″,&a,&b);A.2<CR>B.a=2 b=3<CR>C.a=2, b=3<CR>D.2,3<CR> 3<CR>18.关于if语句下面叙述正确的是()A.只有当if语句中表达式的值等于1时,才执行if的内嵌语句B.只有当if语句中表达式的值为假时,才执行if的内嵌语句C.只有当if语句中表达式的值等于0时,才执行if的内嵌语句D.只要if语句中表达式的值非0时,就执行if的内嵌语句19.若int x=0; 则while(x==0); 的循环次数是()A.0B.1C.2D.无限次20.下面各个运算符的优先级从左到右依次降低的是()A.& >> | ^B.~ & >>|C.>> & ^ |D.~ >> & ^21.设有说明:int u=1, v=2;表达式:u+v<<2的值是()A.-1B.1C.9D.1222.字符串常数“CHINA”在内存中存储时占的字节数是()A.5个B.6个C.7个D.8个23 23.如果a=1,b=2,c=3,d=4,则表达式a>b?a:c<d?c:d 的值是( )A .1B .2C .3D .424.输出字符串的格式说明符是( )A .%cB .%sC .%uD .%g25.设有说明int x=0,y=0;则执行if(x++)y=1+x;else y=2+x ;后,变量y 的值是( )A .0B .1C .2D .326.以下程序段所表示的数学函数关系是( )y=-1if(x!=0) if(x>0) y=1;else y=0;A .⎪⎩⎪⎨⎧>=<-=)0(1)0(0)0(1x x x y B .⎪⎩⎪⎨⎧>=-<=)0(0)0(1)0(1x x x yC .⎪⎩⎪⎨⎧>=-<=)0(1)0(1)0(0x x x yD .⎪⎩⎪⎨⎧>=<-=)0(0)0(1)0(1x x x y27.执行下面程序段后,输出字符A 的个数是( )for(i=0;i<=5;i+=2)printf(″A ″);A .0个B .3个C .5个D .6个28.设有说明:int x=0x15,y=0x0f ;则x&y 的结果是( )A .0x5B .0x15C .0xf0D .0xf529.如果在程序中要使用系统提供的函数strlen,则需要书写的编译预处理命令是() A .#include<stdio.h> B .#include<math.h>C .#incLude<string.h>D . #incLude<malloc.h>30.整数-2在机器内存中的表示是( )A .1000000000000010B .1111111111111110C .11111111111111101D .111111111111111131.下列运算符中优先级最低的是( )A .>B .!C .%D .= =32.设有int a=3,b=-4,c=5;表达式+ +a-c+b+ +的值是()A.-6 B.-5 C.-4 D.-333.以十进制无符号形式输出整数的格式说明符是()A.%u B.%x C.%o D.%d34.执行while(表达式)循环的条件是()A.当表达式的值为0时B.仅当表达式的值为1时C.当表达式的值非0时D.当表达式的值不为1时35.下列位运算符中,表示按位异或操作的是()A.~ B.│C.^ D.&36.下列各个位运算符的优先级从左到右依次升高的是()A.>>│& ~B.│>> & ~C.│& >> ~D.~│& >> 37.设有说明:int u=1,v=3;则表达式u<<= v的值是()A.0 B.1C.3 D.838.下列转义字符中,表示回车的是()A.\0 B.\n C.\r D.\f39.若定义double d;则d在内存中分配的字节数是()A.1个B.2个C.4个D.8个40.下列表达式中运算结果为3的表达式是()A.(-7)%4 B.7/4+2 C.7/4*4-4 D.8/3+8/3 41.设有int a=3,b=-4,c=5;表达式a++-c+b++的值是()A.-6 B.-5 C.-4 D.-342.在printf语句中,格式说明符u表示()A.以十进制带符号形式输出整数B.以十六进制带符号形式输出整数C.以十进制无符号形式输出整数D.以十六进制无符号形式输出整数43.关于switch中的表达式,正确的说法是()A.它必须是算术表达式B.它必须是关系表达式C.它必须是逻辑表达式D.它可以是任意类型的表达式444.对do语句while(表达式);结构的循环,下列说法正确的是()A.当表达式的值为非零时不执行循环体B.循环体至少被执行一次C.当表达式的值为零时循环体一次也不执行D.循环体仅被执行一次45.只能在循环语句中用于结束本轮循环的语句是()A.break; B.continue; C.goto D.if46.下列是合法C语言常量的是()A. eB. 7E4.0C. E4D. -9.13E-3047.设有int a=3,b=-4,c=5;表达式(a<b)?a:b&&c<0的值是()A. 0B. 1C. 3D. 448.以指数形式输出实型数的格式说明符是()A. %uB. %xC. %fD. %e49.下列各个位运算符的优先级从左到右依次降低的是()A. | & ˆ > >B.ˆ & > > |C. ~> > ˆ |D. ~> > | ˆ50.设有说明:int u=1,v=3,w=5;表达式:v &~~u|w的值是()A. 3B. 5C. 6D. 851.在Turbo C 2.0中,若定义char ch;则变量ch在内存中分配的字节数是()A.1个B.2个C.4个D.8个6<CR>52.下面程序段的输出结果是()main(){int a=2,b=5;printf(″a=%d%%,b=%d%%″,a,b);}A.a=2,b=5B.a=2%,b=5%C.a=%2,b=%5D.a=%d,b=%d53.设有条件表达式(exp)? a++:b--,则下列表达式中能够与该表达式完全等价的表达式是()A.(exp!=0)? a++∶b--B.(exp==0)? a++∶b--C.(exp==1)? a++∶b--D.(exp!=1)? a++:b--54.对于for(表达式l;表达式2;表达式3)语句;控制循环结束的表达式是()A.表达式1B.表达式2C.表达式3D.表达式l和表达式355.设有int x=2,y,z;执行z=y=x——;后变量y的值是()A.0B.1C.2D.356.在下列选项中,没有构成死循环的程序段是()A.int i=100;B.for(;;);while(1){ i=i%100+1;if(i>100)break;}5C.int k=1000;D.int s=36;do{++k;}while(k>10000);while(s);一一s;57.设有说明:int u=l,v=3,w=5;表达式:u<<=(v|w)的值是()A.1B.5C.13D.12858.设有说明:int u=1,v=3,w=2;表达式(v>>1|u<<2)&w的值是()A.0B.1C.3D.559. 下面程序段的输出结果是()main(){ int s, p;s=p=5;p=++s;p++; ++p;printf(″%d\n″,p);}A. 5B. 6C. 7D. 860. 下面程序段的输出结果是()a=100;while(a>120);a=a+1;printf(″%d″,a);A. 100B. 101C. 120D. 12161.下面程序段的输出结果是()main( ){ int s, p;s=p=5;p=--s;p++;++p;printf(″%d\n″,p);}A.5B.6C.7D.862.若执行下面程序时,从键盘输入数据3和4,则程序的输出结果是()main( )6{ int a,b,s;scanf(″%d″, &a,&b);s=a;if(a<b) s=bs=s*s;printf(″%d″,s);}A.9B.12C.16D.2563.下面程序段的输出结果是()for (i=1; i<3;i++){for (j=1;j<3;j++)printf(″%d ″, i+j);printf(″\n″);}A.2 3 3 4B.2 3 4C.2 3D.23 4 3 4 64.下列程序段的输出结果是()void main(void){int y=1,x=5;if(x<0)y=-1;if(x>=0)y=0;printf("%d\n",y);}A.-1 B.0 C.1 D.5 65.执行如下程序段后,x的值是()int x=1,y=-1;if(y<0)x-=y;else x+=y;A.-1 B.0 C.1 D.2 66.下列程序段输出的结果是()for(i=1;i<3;i+ +)for(j=1;j<3;j+ +)7printf("%d",i+j);A.2 3 3 4 B.2 3 4C.2 3 D.23 4 3 467.若有int a=3,b=4,c=5,d=6,x=4;执行下列程序段后x的值是()if(a<b){if(c= =d)x=c;}elsex=d++A.4 B.5 C.6 D.768.下列程序的输出结果是()main( ){ int x=5,y;if(x<0)y=-1;if(x==0)y=0;y=1;p rintf(″%d″,y);}A. -5B. -1C. 0D. 169.下列程序段的输出结果是()i=1;while(i<3){j=1;while(j<=i){ printf(″%d″,i+j);j++;}i++;printf(″\n″);}A. 2 3 3 4B. 2 3 4C. 2 3D.23 4 3 4870.设有下列程序:()#include″stdio.h″main( ){unsigned x=8,y=2;printf(″%d\n″,y|~(x&y));}该程序的运行结果是A. -1B. 0xffC.127D. 6553571.两次运行下面的程序,如果从键盘上分别输入6和4,则输出的结果是()void main(void){int x;scanf("%d",&x);if(x + + >5)printf("%d",x);else printf("%d\n",x——);}A.7和5B.6和3C.7和4D.6和472.设有下面程序:# include"stdio.h"void main(void){unsigned x=1,y=3,z=5;printf("%d\n",z^x&y);}该程序的运行结果是()A.0B.3C.4D.59。
c语言练习 (1)
A、当y<0时整个循环结束
B、y>=0时什么也不输出
C、printf函数永远也不执行
D、最多允许输出100个非负整数 76、以下程序段等价于____ for (k=100; k<=200; k++) { if (k%3==0) continue; printf("%4d", k); } A、for (k=100; (k%3)&&k<=200; k++) printf("%4d", k); B、for (k=100; (k%3)||k<=200; k++) printf("%4d", k); C、for (k=100; k<=200; k++) if (k%3!=0) printf("%4d", k); D、for (k=100; k<=200; k++) { if (k%3) printf("%4d", k); else continue; break; }
C、2 3 4 6 9 12
D、2 3 4
6 9 12
10 15 20
70、以下程序段中是死循环的是____
A、int n=1; B、int n=1;
while (!n)
do { n--;
n++;
}while(n);
C、int n=1;
D、for (n=5; n<1; ) ;
D、for循环的循环体语句中,可以包含多条语句,但必须用花括号 括起来 64、语句for (表达式1; ; 表达式3)等价于____ A、for (表达式1; 0 ; 表达式3) B、for (表达式1; 1 ; 表达式3) C、for (表达式1; 表达式1; 表达式3) D、for (表达式1; 表达式3; 表达式3) 65、若k为整型变量,则以下for循环的执行次数是____ for (k=2; k==0; )
C语言练习题1
1•编写程序,要求用户输入一个三角形的三边边长分别为的面积。
海伦公式:S p(p-a)(p-b)(p -c) #in clude<stdio.h>#in clude<math.h>a +b +c p 2void mai n(){float a,b,c,p,s;printf(” 请输入三边a,b,c:");sca nf("%f %f %f", &a,&b,&c);p=(a+b+c)/2;s=sqrt(p*(p-a)*(p-b)*(p-c));prin tf("%f,%f\n",p,s);}2•三个小朋友,大毛有糖果50粒,二毛有糖果43粒,三毛有糖果13粒。
现在他们三兄弟做游戏,从大毛开始,将自己的糖果三等分,三兄弟每人一份,多余的自己吃掉;然后二毛和三毛也依次这样做,问最后三兄弟各有多少糖果?#in clude<stdio.h> void mai n(){int a=50,b=43,c=13;a=a/3;b=a+b;b=b/3;c=a+b+c;a=a+b;c=c/3;b=b+c;a=a+c;prin tf("%d,%d,%d\n",a,b,c);}3. 编写程序,要求用户输入某年年份,然后判断是否为闰年。
(闰年的条件是:该年的年号能被4整除且不能被100整除,或该年的年号能被400整除,则该年是闰年,否则不是闰年。
) #in clude<stdio.h>void mai n(){int year;printf("请输入年份");sca nf("%d", &year);if(year%4==0&&year%100!=0||year%400==0){printf("闰年\n");else{printf(" 平年\n");}}a,b,c,利用海伦公式求三角形4. 编写程序,随机生成一个100 以内的整数。
C语言练习题1(数据 运算符 输入输出2008-2012二级真题)
C语言练习题(一)一选择题1.以下叙述错误的是:A.一个C程序可以包含多个不同名的函数B.一个C程序只能有一个主函数C.C程序在书写时,有严格的缩进要求,否则不能编译通过D.C程序的主函数必须用main作为函数名2.设有以下语句 char ch1,ch2,;scanf(“%c%c”,&ch1,&ch2);若要为变量ch1和ch2分别输入字符A和B,正确的输入形式应该是A.A和B之间用逗号间隔B.A和B之间不能有任何间隔符C.A和B之间可以用回车间隔D.A和B之间用空格间隔3.以下选项中非法的字符常量是A.‘\102’B.‘\65’C.‘\xff’D.‘\019’4.有以下程序#include <sthio.h>void main(){ int A=0,B=0,C=0; C=(A-=A-5);(A=B,B+=4); Printf(“%d, %d, %d\n”,A,B,C) } 程序运行后输出的结果是A 0,4,5B 4,4,5C 4,4,4D 0,0,05.设变量均已正确定义并且赋值,以下与其他三组输出结果不同的一组语句是A.x++; printf((“%d\n”,x);B.n=++x; printf((“%d\n”,n);C.++x; printf((“%d\n”,x);D.n=x++; printf((“%d\n”,n);6.以下选项中,能表示逻辑值“假”的是A 1B 0.000001C 0D 100.07.以下选项中关于c语言常量的叙述错误的是( )。
A所谓常量,是指在程序运行过程中,其值不能被改变的量B常量分为整型常量、实型常量、字符常量和字符串常量C常量可分为数值型常量和非数值型常量D经常被使用的变量可以定义成常量8.若有定义语句int a=10;double b=3.14;则表达式'A'+a+b值的类型是( )。
A charB intC doubleD float9.若有定义语句 int x=12,y=8,z; 在其后执行语句z=0.9+x/y;则Z的值为( )。
C语言习题(1~4)
习题第一章一.选择题1.C语言的主要特点有哪些(B C D E)(多选)A.简洁、紧凑,使用方便、灵活,易于学习和应用。
B.C语言是结构化程序设计语言。
C.C语言允许直接对位、字节和地址进行操作。
D.数据类型丰富。
E.C语言生成的目标代码质量高。
2.算法具有五个特性,以下选项中不属于算法特性的是(B)。
A.有穷性B.简洁性C.可行性D.确定性3.C语言程序由什么组成(C)。
A.子程序B.主程序和子程序C.函数D.过程4.源程序要正确地运行,必须要有什么函数(C)。
A.printf函数B.自定义的函数C.main函数D.不需要函数5.以下说法中正确的是(C)。
A.C语言程序总是从第一个函数开始执行B.在C语言程序中,要调用的函数必须在main()函数中定义C.C语言程序总是从main()函数开始执行D.C语言程序中的main()函数必须放在程序的开始部分6.一个C程序的执行是从(A)。
A.本程序的main函数开始,到main()函数的结束B.本程序文件的第一个函数开始,到本程序文件的最后一个函数的结束C.本程序文件的main开始,到本程序文件的最后一个函数的结束D.本程序文件的第一个函数开始,到本程序文件的main函数的结束7.下叙述不正确的是(D)。
A.一个C源程序可由一个或多个函数组成B.一个C源程序必须包含一个main函数C.C程序的基本组成单位是函数D.在C程序中,注释说明只能位于一条语句的后面8.C语言是一种面向(D)的程序设计语言。
A.对象B.窗口C.用户D.过程9.在使用Visual C++6.0进行编程时,下面哪种错误是它检查不出来的(B)。
A.编译错误B.逻辑错误C.语法错误D.连接错误10.下面哪个产品不能开发C程序(B)。
A.Turbo C2.0B.DOS2.0C.Visual C++6.0D.Microsoft C6.0二.填空题1.C语言的语句以;结尾。
2.C程序的基本组成单元是函数。
C语言练习题1
一、填空题(20分,每空1分)1.一个完整的C程序有且仅有一个函数。
2.在内存中存储一个字符…a‟占用______个字节,而存储字符串”abcdef”则占用________个字节。
3.表达式4/5的值为________。
4.设int x=9,y=8,z=7,w; w=x>y>z; 则w的值为_________。
5.设x=4.5,a=7,y=3.4, 表达式x+a%3*(int)(x+y)%2/4的值为_____。
6.设a=14, 执行a+=a-=a*=a 后,a=___________。
7.设x=y=z=6, 执行x=(y>z)?x+2:x-2; 后,x=__________。
8.getchar( )函数用于输入, 而gets( )函数则用于输入______________。
9.设有定义语句:char ww[20]=” \t\\wab\n”; 则表达式:strlen(ww) 的值是__________。
10.设有定义语句:char str[7]=”abcdef”, 则数组元素str[2]中的字符是______,数组元素str[6]中的字符是__________。
11.函数中的形参和调用时的实参都是变量时,传递方式为________;都是数组名时,传递方式为_________。
12.设有char *p=”12345”, 则printf(“%s”,p)的输出是;而printf(“%c”,*p)的输出则是_________。
13.设有以下说明,则变量qq在内存中所占的字节数是________,如果将关键字struct 改为union 则变量qq所占的字节数为________。
struct student{ char name[10];int nl;float ave;} qq;14.巳知当前目录下有一个名为file.txt的文本文件,写出将该文件打开(只允许写)的语句:FILE *fP;。
C语言习题-1
C语言习题一、选择填空2-1要调用数学函数时,在#include命令行中应包含_C_。
(2分) A"stdio.h" B."string.h" C."math.h" D."ctype.h"2-2若变量已正确定义并赋值,符合C语言语法的表达式是_B._ (2分) A.a=2++ B.a=3,5 C.a=a+1=3 D.12.3%42-3表达式8>6>3值是(A )。
(2分)A.0B.1C.3D.表达式语法错2-4逻辑运算符两侧运算对象的数据类型(D)。
(2分)A.只能是0 或1B.只能是0 或非0 正数C.只能是整型或字符型的数据D.可以是任何类型的数据2-5以下名字,不能作为C语言标识符的是:C (2分)A.ThisIsQingdaoUniversityB.$$C.monkey~1D._2-6定义变量int a;,则表达式a = 3, 5; 执行过后,a的值和表达式的值分别是:A (2分)A.3 , 5B.5 , 3C.3 , 3D.5 , 52-7如果要求在if后一对括号中的表达式在表示a 不等于0 的时候的值为“真”,则能正确表示这一关系的表达式为(D )。
(2分)A.a<>0B.!aC.a=0D.a2-8能正确表示逻辑关系"a≥10 或a≤0"的C语言表达式是(D )。
(2分)A.a>=10 or a<=0B.a>=0 | a<=10C.a>=10 && a<=0D.a>=10 || a<=02-9下列程序段执行后s值为D。
int i=5, s=0;while(i--)if (i%2) continue;else s+=i;A.15B.10C.9D.6(2 分)2-10以下不正确的赋值或赋初值的方式是( C )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
练习1一、选择题1、一个C程序是由(B)。
A.一个主程序和若干子程序组成B.一个或多个函数组成C.若干过程组成D.若干子程序组成2、一个C程序的执行是从( A )。
A.main函数开始,直到main函数结束B.第一个函数开始,直到最后一个函数结束C.第一个语句开始,直到最后一个语句结束D.main函数开始,直到最后一个函数结束3、C语言语句的结束符是(B)。
A.回车符B.分号C.句号D.逗号4、下面标识符中( D )不是C语言的关键字。
A.char B.goto C.case D.include5、以下说法正确的是(A)A.C程序的注释可以出现在程序的任何位置,它对程序的编译和运行不起任何作用。
B.C程序的注释只能是一行。
C.C程序的注释不能是中文文字信息。
D.C程序的注释中存在的错误会被编译器检查出来。
6、以下说法正确的是(D)A.C程序中的所有标识符都必须小写B.C程序中关键字必须小写,其他标识符不区分大小写C.C程序中所有标识符都不区分大小写D.C程序中关键字必须小写,其他标识符区分大小写。
7、设x、y均为float型变量,则以下不合法的赋值语句是(B)A.++x ; B.y=(x%2)/10 ; C.x*=y+8; D.x=y=0 ;解析:运算符%要求两端的操作数必须为整型,而在答案B中%号两端的操作数为x和2,x为实型,所以是错误的。
8、下列不正确的转义字符是(C)A.' \\ ' B.' \' ' C.' \19 ' D.' \0 '解析:转义字符是由单引号括起来的带反斜线的字符,这些字符具有特殊的含义,反斜线后可以是数字来代表某个字符,而这些数字只包括两种:八进制(1-3位)和十六进制(1-2位)。
十六进制前面要加x(或X),这里的C答案反斜线后是数字,但不是x开头,所以应该是八进制数,但是数值里有9,和八进制数不符,所以是错误的。
9、下列不是C语言常量的是(A)A.e-2 B.074 C."a" D.' \0 '解析:C语言的常量分为整型、实型、字符型和字符串。
整型常量的书写形式分为十进制、八进制和十六进制,十进制是0~9的数值表示;八进制是以0开头,0~7的数值表示,十六进制是以0x(或0X)开头,0~9与a~f(或A~F)表示。
实型常量的书写分为小数形式和指数形式,小数形式指只包含小数点的形式,如:0.056或300.57;指数形式只指用包含e(或E)的书写形式,要求e(或E)的前面必须有数值,后面必须是整数的书写规则。
字符型常量指单引号引起来的单个字符或转义字符。
字符串常量是指双引号引起的多个字符。
这里答案A是实型的指数书写形式,但是这种书写形式要求e前面必须有数值,后面必须是整数,而这里所以是错误的。
10、设int类型的数据长度为2个字节,则unsigned int类型数据的取值范围是(B)A.0~255 B.0~65535 C.-32768~32767 D.-256~25511、若定义了int x; 则将x强制转化成双精度类型应该写成(A)A.(double)x B.x(double)C.double(x)D.(x)double12、在C语言中,要求参加运算的数必须是整数的运算符是( C )。
A./ B.* C.% D.=13、为了计算s=10!(即10的阶乘),则s变量应定义为(D)。
A.int B.unsigned C.long D.以上三种类型均可解析:在TC下,此题答案是C,在VC6.0下此题答案是D,因为两个编译器对int类型数据的空间分配的大小不一样,在TC下是2字节,在VC6.0下是4字节,所以取值范围也就不一样。
14、putchar ( )函数可以向终端输出一个(D)。
A、整型变量表达式值B、实型变量值C、字符串D、字符或字符型变量值15、已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是(D)(✞代表空格,↙代表Enter)int a1,a2; char c1,c2;scanf("%d %c%d %c",&a1,&c1,&a2,&c2);A、10✞A20B↙B、10A20✞B↙C、10✞A20✞B↙D、10A20B↙解析:空格是有效字符,所以会被scanf函数正常读取。
A答案会将10送给a1,空格送给c1,而A字符不属于a2的读取范围,scanf函数非正常结束,a2与后面的c2都没有正常获取数值;B答案会将10送给a1,A送给c1,20送给a2,空格送给c2,然后scanf函数读取正常结束,后面的B字符将会留给下一输入函数读取;C答案与A答案类似;只有D答案正确地将将10送给a1,A送给c1,20送给a2,B送给c2,然后scanf函数读取正常结束。
16、执行下列程序片段时输出结果是(C)。
int x=13,y=5;printf("%d",x%=(y/=2));A、3B、2C、1D、0解析:这是一个表达式的运算,x%=()是一个赋值表达式,赋值表达式的运算方向是从右向左进行。
即先运算表达式y/=2,其运算结果是y=2,再将表达式转换为x%=2,运算此表达式得到最后结果为1 。
17、已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的输入方式是( D )。
(✞代表空格,↙代表Enter)int a1,a2; char c1,c2;scanf("%d%d",&a1,&a2);scanf("%c%c",&c1,&c2);A、1020AB↙B、10✞20↙C、10✞20A✞B↙D、10✞20AB↙AB↙解析:此题与15题类似,这里的回车符也属于有效字符,所以会被scanf函数正常读取。
A答案中的1020后面是字符A,不属于数值,第一个scanf函数读取时将1020看成一个整体送给a1,而后面的A不属于a2获取类型,这个scanf函数非正常结束,a2没有获取到数值;第二个scanf执行,c1获取到字符A,c2获取到字符B。
B答案中的10后面是空格,所以第一个scanf函数现将10送给a1,再将空格后的20送给a2,第一个scanf函数正常结束,第二个函数是读取字符型,这时的缓冲区中首先是回车符,当数字型读取时可以忽略此字符,但是字符型读取却不能忽略,所以scanf函数将回车符送给了c1,将A送给c2,scanf函数正常结束。
C答案中10后面是空格,所以第一个scanf函数现将10送给a1,20后面是字符A,所以将20送给a2,第一个scanf函数正常结束;第二个函数是读取字符型,这时的缓冲区中首先是A,scanf函数将A送给c1,A后面的空格送给c2,第二个scanf函数正常结束。
D 答案中10后面是空格,所以第一个scanf函数现将10送给a1,20后面是字符A,所以将20送给a2,第一个scanf函数正常结束;第二个函数是读取字符型,这时的缓冲区中首先是A,scanf函数将A送给c1,A后面的B送给c2,第二个scanf函数正常结束。
所以D答案是正确的。
18、若运行时输入:12345678↙,则下列程序运行结果为(A)。
#include<stdio.h>void main ( ){int a,b;scanf("%2d%2d%3d",&a,&b);printf("%d\n",a+b);}A、46B、579C、5690D、出错解析:scanf中的2是指读取数值的位数,所以scanf函数读取前两个数字12送给a,接着读取后面两个数字34送给b,最后读取567三个字符,但是后面没有对应的参数所以不送给任何变量,scanf函数执行结束,所以a+b=12+34=46,所以输出为46。
19、已知i,j,k为int型变量,若从键盘输入:1,2,3↙,使i的值为1,j的值为2,k的值为3,以下选项中正确的输入语句是(C)。
(✞代表空格,↙代表Enter)A、scanf("%2d%2d%2d",&i,&j,&k);B、scanf("%d✞%d✞%d",&i,&j,&k);C、scanf("%d,%d,%d",&i,&j,&k);D、scanf("i=%d,j=%d,k=%d",&i,&j,&k);解析:根据键盘输入时数据只是用逗号进行分隔的,所以scanf函数中格式符之间的分隔符也必须要用分号,故答案选C。
20、有输入语句:scanf("a=%d,b=%d,c=%d",&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,则正确的数据输入方式是(D)。
(✞代表空格,↙代表Enter)A、132↙B、1,3,2↙C、a=1✞b=3✞c=2↙D、a=1,b=3,c=2↙解析:scanf函数要求非格式字符必须原样键入,所以根据scanf语句,答案应该是D。
二、填空题1、C语言源程序文件的后缀是__.c__,经过编译后生成目标文件的扩展名是___.obj____,经过连接后生成可执行文件的扩展名是___.exe_____。
2、C程序注释是由___/*___和___*/___所界定的文字信息组成的。
3、源程序的执行要经过__编辑、编译_、____连接_____和___运行___四个步骤。
4、在C语言中(以16位PC机为例),一个char数据在内存中所占字节数为1,其数值范围为-128~+127 ;一个int数据在内存中所占字节数为2,其数值范围为-32768~+32767 ;一个long数据在内存中所占字节数为4,其数值范围为-2147483648~+2147483647 ;一个float 数据在内存中所占字节数为4,其数值范围为0~4294967295。
5、C语言的标识符只能由大小写字母,数字和下划线三种字符组成,而且第一个字符必须为大小写字母或下划线。
6、字符常量使用一对单引号界定单个字符,而字符串常量使用一对双引号来界定若干个字符的序列。
7、在C语言中,不同运算符之间运算次序存在优先级的区别,同一运算符之间运算次序存在结合性的规则。
8、字符串"\the\v\\\034Will\n"的长度是__12__。