




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
c语言中浮点数的默认类型是double,因为double的精度高,22. 表达式18/4*sqrt(4.0)/8值的数据类型为:A) int B)float C)double D)不确定31. 已有如下定义和输入语句 ,若要求a1,a2,c1,c2值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是int a1,a2; char c1,c2;scanf(%d%c%d%c,&a1,&c1,&a2,&c2);A)10A 20B (空格有没有都行,10和A之间不能有空格,否则c1为空格) B)10 A 20 BC)10A20 D)10A20 B。32. 已有定义int x; f1oat y;且执行scanf(%3d%f,&x,&y);语句,若从第一列开始输入数据 12345 678(回车),则x 的值为A)12345 B)123 C) 45 D) 34533. 已有定义int x; f1oat y;且执行scanf(%3d%f,&x,&y);语句,若从第一列开始输入数据 12345 678(回车),则y 的值为:A)无定值B)45.0000 C) 678.000000 D) 123.00000*p5表示2维数组P5(*p)5表示P指向包含5个元素的一维数组,整体也是个二维数组sizeof 是整个变量的大小 strlen 是字符串的大小sizeof 计算的是数据在内存中存放的长度strlen 计算的是字符串的长度,单位是“字符”,只能对字符串运算,而且它是函数(不是运算符)b=c;c=a(顺序)与b=c=a(倒序)不同设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i 个元素的地址为( )。AP+i*2 B. P+(i-1)*2 C. P+(i-1) D. P+iB短整型二个字节。i个元素的地址为选项B。元素地址都要用P+(元素第几个-1)*sizeof(类型)表达式strcmp(“box”, “boss”) 的值是一个_A_。A、 正数 B、 负数 C、 0 D、 不确定的数第一个与第二个对比从不同的字符开始对比,大的是正数,小的是负数1. 写出下列程序段的输出结果。 float x1, x2; x1=3/2; x2=x1/2; printf(%d, %.1f, (int)x1, x2) ;1,0.52. 写出下列程序段的输出结果。 #define A 10 #define B (AA+2)-2 printf(%d, B*2);-3(应为1012为非零即=1,1-2*2=-3)3. 写出下列程序段的输出结果。printf(“%d, %d”, NULL, EOF);0,-14. 写出下列程序段的输出结果。 char str=hellotworldn; printf(%d, %cn, sizeof(str), *(str+10);13,d输入12345#后,写出下列程序的输出结果。void main() char c for(c=getchar(); getchar()!=#; c=getchar() putchar(c);由于输入12345#,一开始c=1进去但getchar()=2判断是否为#若不是则输出1,之后c=getchar()是读取3进来,又开始循环读取4(判定是否为#),以此类推。136.以下程序的输出结果是_2,4,6#2,5,9#_。 #include int z; void p(int *x, int y) +*x; y-; z=*x+y+z; printf(%d, %d, %d#, *x, y, z);void main() int x=1, y=5, z=9; p(&x, y); printf(%d, %d, %d#, x, y, z); 1. prog.c是带命令行参数的程序。运行prog filename时,将文本文件filename中的内容原样输出;运行prog -u filename时,将文本文件filename中的所有字母以大写方式输出(其余字符原样输出);运行prog -d filename时,只将文本文件filename中的数字输出。# include # include void main(int argc, char * argv)FILE *fp;char * filename, ch; int tag=0;if (argc 3) printf(“Argument errorn”); return; if (argc = 3) if (strcmp(argv1, “-u”) = 0) tag=1;else if (strcmp(argv1, “-d”) = 0) tag=2;else printf(“Option errorn”); return;_ filename = argv2_; else filename = argv1;if (_(fp=fopen(filename,“r”)=NULL_) printf(“Cannot open filen”); return;while (_!feof(fp)_ ) ch = fgetc(fp);if ( tag = 0 ) putchar(ch);else if ( tag = 1 ) _ putchar(toupper(ch);_; else if ( _tag=2_) putchar(ch);fclose(fp);1. 在 C 程序中,用_表示逻辑值“真”。A、1 B、非 0 的数 C、非 1 的数 D、 大于 0 的数B2. 若变量已正确定义,表达式_的值不是2。A、2&3 B、1pk B、*p.pk C、*p-pk D、*x.pkB5. 下列程序段的输出是_。#define f(a, b, x) a*x+bprintf(%d, %dn, f(3,2,1), f(6, 5, f(3, 2, 1);5,25记住不要算好放入 要(6*3*1+2+5)6. 下列程序段的输出是_。char *a2=one, two, *p=a; printf(%s, *(p+)+1);printf(%cn, *p-1); ne,s1. 执行语句 printf( _, 2); 将得到出错信息。A%dB%oC%xD%fD7. 下列程序在运行时可能会出错,原因是_。# include void main( ) char *s; gets(s); puts(s);指针s没有赋值2. C语言源程序文件经过编译连接之后生成一个后缀为_的文件。A”.c”B“.obj”C“.exe”D“.bas”C源文件是.C经编译后.OBJ经连接生成.EXE文件3. 若变量已正确定义并赋值,表达式_不符合C语言语法。A4&3B+aCa=b=5Dint(3.14)D应该(int)3.148. 下列程序段的输出结果是_。 char *st =abcd,efgh,ijkl,mnop;printf(%s, *(st+1)+1);st可以看成00,st+1是st1的首地址,*(st+1)+1是st11故得fgh就是x=3时y=+X+(+X)这样逐步自增的表达式则最后统一取值(就是先自增2次在加起来)y=10若是直接的表达式+X+(+X)则输出的是9即y=+X+(+X) printf(“%d”,y) 10Printf(“%d”, +X+(+X)9 两者不一样由于printf里面刷新值比较快是一项一项刷新的故是5+4a=x+(x+)+(+x);以分号为计算单位,所以在计算时b的值为+b,4,所以为12,x+是在计算结束后做的一般出现这种运算,有几个+x的先赋值+几在把所有加起来,若x的话将赋值放到计算结束后做例:Y=(+x)+(+x)+x+=15Y=(x+)+(+x)+x+=12y=(X+)+X+ 这个正好相反,先加起来,再自增2次就得y=64. 不正确的赋值或赋初值的方式是_。Achar str10; str=string;Bchar str =string;Cchar *p=string;Dchar *p; p=string;AStr是str数组的首地址不能被赋值(如不能被+,-等操作),*p中可以赋值(地址)都可以操作。5. 对于变量定义 int p5, *a5;,表达式_是正确的。Ap=aBp0=a C*(a+1)=p Da0=2p是指向数组p5首地址的指针,它是一个指向int型变量的指针。*a5可以理解为:*(a5),即这个数组是由5个指向int型变量的指针组成的。例如:a0,a1.这几个都是指针。所以p和a0,a1.a4,它们都是指向int型变量的指针。赋值时,只能将指针赋值给指针,或者地址赋值给指针。A,B,D赋值类型两边不一致;只有C是将int型变量地址赋值给int型变量地址C9. 表达式 (101)&4的值是_。010. 下列程序的输出结果是_。 # include char * f(char *str) return str=fun; void main( ) char *str=one; printf(%s, %cn, f(str)+1, *f(str)+1);Un,g1. 下列程序的输出结果是_。 #include void main( ) long number, wt, x; x=number=10230; wt=1; while(x!=0) wt=wt*10; x=x/10;wt=wt/10; while(number!=0) printf(%d#, number/wt); number=number%wt; wt=wt/10; #1#0#2#3#11. 下列程序的输出结果是_0,3_。 #include void p(int *x,int *y) int *p; p=x; x=y; y=p;地址的交换没有对其内容发生改变!void main() int x=0, y=3; p(&y, &x);printf(%d, %d, x, y);所以xy值不变6. 运算符_ 不能做为单目运算符。A/B&C*D+7. 对于变量定义:int *p10, p 是一个_。A指针B数组C函数D数组元素A5输入How are you?后,下列程序的输出结果是_。(函数strcmp(s, t)的功能:若s和t相等,返回0;若s大于t,返回一个正数;若s小于t,返回一个负数)#include #include void main( ) int i; char s80, ss80; scanf(%s, s); strcpy(ss,s); for(i=1; i 0) strcpy(ss,s); printf(%sn, ss); 先读取How are you?,ss被赋值为How are you?,再进入循环,第一次s读到how与ss比较小所以不执行str(ss,s),在s读到are,a比H小也一样,第三次Y比H大就进入赋值ss被赋值为you?回车6下列程序的功能是_将a.c文件的内容拷贝到b.txt文件中去_。#include # include void main() FILE *fpa, *fpb; if(fpa=fopen(t.c,r) = NULL) printf(can not open file a.txt !n); exit(0); if(fpb=fopen(b.txt,w) = NULL) printf(can not open file b.txt!n); exit(0); while(!feof(fpa) fputc(fgetc(fpa), fpb);fclose(fpa);fclose(fpb);1读入1 个正实数eps,计算并输出11/31/51/7,直到最后一项的绝对值小于eps。#include #include void main( ) int temp, flag; double eps, item, sum; scanf(%le, &eps); sum = 0; item = flag = temp = 1; while(fabs(item)=eps) sum = sum + item; temp = temp+2 ; flag =flag*(-1) ; item = 1.0 *flag/temp; printf(%fn, sum);3a是一个33的矩阵,输入a的元素,如果a是下三角矩阵, 输出YES, 否则, 输出NO。(下三角矩阵,即主对角线以上的元素都为0, 主对角线为从矩阵的左上角至右下角的连线)#include stdio.hvoid main( ) int a33, flag, i, k; for (i=0;i3;i+) for (k=0;k3;k+) scanf(%d,&aik); flag=1; for (i=0;i3;i+) for ( k=i+1 ; k3;k+) if( aik!=0 ) flag=0 ; break; if(flag) printf(YESn); else printf(NOn); 5编写一个函数delchar(s, c),该函数将字符串s中出现的所有c字符删除。void delchar(char s ,char c) int j=0, k=0; while(sj != 0) if(sj != c) sk = sj; k+; j+ ; Sk=0 ;4定义函数f(number),它的功能是返回number的逆序数。例如f(-123)的返回值是-321。long f(long number) int flag, digit; long res = 0; flag = number0 ? -1 : 1; if(number 0:= -1 0:= -1007int strlen(const char* src); /返回字符串长度008char* strchr(const char* src, int ch); /字符ch在字符串第一次出现的位置,返回出现字符ch位置开始到字符串结束位置的指针等等。6. 执行下列程序:#define FB(a,b) (a*b+1)int k=3;k=FB(FB(k,k+1),k)-7;后变量k的值是_。A7B24C27D33A(k*k+1+1*k+1)-7=14-7=73写出下列程序段的输出结果是_。int m;char ss10=”12345”,*s=ss;for(m=10;m!=0;m-);printf(“%d”,m);while(*s+)putchar(*+s); 035,仔细看;号。1. 下列程序的输出结果是_。# include void sort(int b,int n,int x) int k; for(k=n-1;k=0;k-) if(bkx) bk+1=bk; else break; bk+1=x;void main()int I,j; static int a5=8,5,7,2,6; int b8; b0=a0; for(i=1;i5;i+)sort(b,i,ai); for(j=0;j=i;j+)printf(“%d “,bj); pintf(“n”);8 58 7 58 7 5 28 7 6 5 22在C盘一级目录TC(c:tc)下创建文本文件k2.txt。用键盘键入一个字符串,以 作为结束标记,并写入该文件,然后重新从中取出字符并显示在屏幕上。# include # include void main() _ FILE *fp;_;If(fp=fopen(“_c:tck2.txt_”,”w”)=NULL) printf(“Cant open filen”); exit(0);while(_(ch=getchar()!=_) fputc(ch,fp);fclose(fp);If(_(fp=fopen(“c:tck2.txt”,”r”)=NULL _) printf(“Cant open filen”); exit(0);while(!feof(fp)ch=fgetc(fp);printf(”%c”_,ch_);fclose(fp);3. 下列程序用于实现从键盘上输入一个正整数,左移三位,并将移位后的数以二进制数输出。# include void main() int m,n.i=0,j; int bb16; scanf(“%d”,&n); m=_(8)_; while(m0)bbi=m%2; _(9)_;i+;printf(“%binary number is:”);for (_(10)_) printf(“%d”,bbi);13、sizeof (double)的结果值是( )。A. 8 B. 4 C. 2 D. 出错A12、若已定义 x 和 y为double 类型,则表达式 x=1,y=x+3/2 的值是()。A. 1 B. 2 C. 2.0 D. 2.5C16、设 f是实型变量,下列表达式中不是逗号表达式的是()。A. f= 3.2, 1.0 B. f0, f0 D. f=(3.2, 1.0) D是赋值表达式5. 已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=A+6-3后,c2中的值为 .A) D B) 68 C) 不确定的值 D) CA6.以下叙述正确的是 .A) 在C程序中,每行只能写一条语句 B) 若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C) 在C程序中,%是只能用于整数运算的运算符D) 在C程序中,无论是整数还是实数,都能被准确无误地表示A.显然不对B.10被看成实型,而不是整型D.实数不能准确表示,分单精度和双精度,因内存位数有限,只能用2的幂去逼近。C.正确11. 下列四组选项中,均不是C语言关键字的选项是 .A) define IF typeB) getc char printfC) include case scanfD) while go powC语言的关键字分为以下几类: (1)描述类型定义:typedef,void (2)描述存储类型:auto,extern,static,register (3)描述数据类型:char,float,double,int, long,shourt,struct, union, unsigned,const,enum,signed,bolatile (4)描述语句: break,continue,switch,case,default,if,else, do,for, while,goto,sizeof,return故A17、 表达式18/4*sqrt(4.0)/8值的数据类型是( C )。A. int B. float C. double D. 不确定c语言中浮点数的默认类型是double,因为double的精度高,18/4*sqrt(4.0)/8这个运算中有浮点型数据即sqrt(4.0),系统会自动把其他类型的数据想double转换。如果:float b=6.5;int a=2;那么a+b的类型就是float,因为这个表达式中最高的类型就是float,那么int 就会向float转换。总结就是要是表达式中都要向类型高的转化。1、C 语言中的逻辑值“真”是用非零 表示的,逻辑值“假”是用 0 表示的。如果用逻辑表达式来赋值则可看成1来赋值二、 程序改错题1正确的程序为# include stdio.hmain( ) char c ; getchar(c); getchar 写的形式不对,应该c=getchar(); putchar(007) ; /*鸣笛*/ putchar( ); putchar(c);(3) 以下 4 个数组定义中,( )是错误的。A. int a7; B. #define N 5 long bN; C. char c5; D. int n,dn;D(9) 设有定义:char s12 = string; 则printf(%dn , sizeof(s); 的输出是( )。 A. 6 B. 7 C. 11 D. 12D(11) 合法的数组定义是( )。A. int a3 =0,1,2,3,4,5; B. int a 3 =0,1,2,3,4;C. int a23=0,1,2,3,4,5,6; D. int a23=0,1,2,3,4,5,;D如果省略一维数组的值来定义则必须分行定义如int a3=“0,1,2”,”3”,”4”或0,1,2,3,4才可以,所以B不正确若int m3=1,2,3,4,5,6;也可以,可以直接数出有2行(12) 下列语句中,正确的是 ( )。A. char a3 =abc, 1; B. char a 3 =abc, 1;C. char a3 =a, 1; D. char a 3 = a, 1;D(19) 若有以下说明和语句,则输出结果是( )。 (strlen(s)为求字符串s的长度的函数) char sp=tv0willn; printf(%d,strlen(sp); A. 14 B. 3 C. 9 D. 字符串中有非法字符B因为0为结束符,一旦触发就不用看后面的字符了如果有0123则看做一个字符不看做结束(3)#include #include void main( ) char a1080, c80; int i, j, k; for(i=0; i10; i+) gets(ai); for(i=0; i9; i+) k=i ; for(j=i+1; j10; j+) if(strcmp (a j, ak)0) k=j; if(k!=i ) strcpy(c,ai) ; strcpy(ai, ak); strcpy(ak,c); / 字符串交换 for(i=0; i10; i+) puts (ai);从键盘输入若干字符串,并将它们按大到小顺序排好再输出 第1题:C语言中数据的存储结构是指数据的逻辑结构在内存中的表示 : ( 对) 第2题:在标准C语言中,函数的参数可任意类型的数据包括结构体和共用体。 (对) 第3题:C语言中既有逻辑类型也有集合类型 ( 错) 第4题:在标准C中,“=”是判断两个数是否相等。(错 )第5题:在标准C语言中,指针函数参数传递是单向传递,且传递的是变量的地址( 对 ) 第6题:函数的形参都属于全局变量 ( 错 ) 第7题:EOF能够被识别为常量 ( 对 ) 第8题:对于定义int *p赋初值;则初值是赋给P变量的。(对 ) 第9题:在标准C中,没有逻辑型数据,故不能使用逻辑表达式。(错 ) 第10题:C语言可以不用编译就能被计算机识别执行 ( 错 ) 第4题:下面提供的一组函数中,用于按“数据块”的方式进行输入和输出的是 A、fread(),fwrite() C、fgets(),fputs() B、fsca nf(),fprintf() D、fgetc(),fputc() A第9题:C语言结构体类型变量在程序执行期间 A、所有成员一直驻留在内存中 B、只有一个成员驻留在内存在 C、部分成员驻留在内存中 D、没有成员驻留在内存中A 第2题:阅读程序,当输入为:1 2 3 4 5 6 7 8 9 0时,写出程序的运行结果。 #include stdio.h void main( ) int I, a10, *p=a; for(I=0;I10;I+) scanf(“%d”, p+); for(-p; p=a; p- ) printf(“%3d”, *p); A)、1 2 3 4 5 6 7 8 9 0 B)、9 8 7 6 5 4 3 2 1 0 C)、9, 8, 7, 6, 5, 4, 3, 2, 1, 0D)、0 9 8 7 6 5 4 3 2 1 D第5题:阅读下面程序,写出运算结果。 #include stdio.h void fun1(int n,int a 3) for(int I=0;In;I+) for(int j=0;jn;j+) aIj=aIj/aII; void main() int a33=6,4,2,8,6,4,9,6,3; fun1(3,a); for(int I=0;I3;I+) for(int j=0;j3;j+) printf(%3d ,aIj); printf(n); A)、 1 4 2 B)、1 4 2 1 1 4 1 1 1 3 2 1 3 2 1C)、6 4 2 D)、6 4 2 9 6 3 9 6 3A设X、Y、T都为int变量,则执行语句:X=Y=3;T=+X|+Y后,Y的值是多少?逻辑或 前面的+x是真的 后面就不执行了故为31. 假定以下表达式中所有变量均已定义为int类型并已赋值,请问其中哪个表达式没有语法错误? A. x = 3.14%2; 两边都应该是整数B. y = 2a+b; 2a没有这种写法只有2*aC. m = abname=Tom; p-name0=T; * p-name=TomB. *0=B; (*p).name0=B .,-的优先级比*高C. (*p)-name0=C; p-name0=T;D. *(*p).name=D; D10.执行以下语句后,int n = strcmp(ABC, AB);则以下关于n值的为C的AIISC码 67A的AIISC码为65 ,a的AIISC码974. 执行以下代码后,变量x的值=_0_。 int a=3, b=4, c=3, x;x = a != (b = c);(b=c)=3;(a!=3)=0;x=05. 执行以下代码后,将输出_。char t=BUGWET;int a=5,1,2,3,4,0,2,4,5, i=0, go;do putchar( tgo=ai+ ); while(go);同上理得 TUGWEB5. 若定义unsigned long int a;且变量a已赋值,试写出判断a的二进制最高位即最左边那位与1相等的表达式(要求不调用任何函数)_(a32)=1_。7. 执行以下代码后,将输出_。long int a5=10, 20, 30, 40, 50;long int *p = a+1;long int *q = &a3;printf(q-p=%d, q-p);q-p为地址的差则答为a+4-(a+2)=28. 执行以下代码后,变量max的值=_。int x=3, y=2, z=1, max;if(x=y & x=z) max = x;if(y=x & y=z) max = y;else max = z;19. 执行以下代码后,将输出_。char a5=ABCD, 1234, BOMB;printf(%s,%c, *a+1, *a2+1);a= 0行的首地址 和 a=a的首地址a0一样*a=a0的0列的首地址 *a=a0;*a+1=a01的地址a+1=a1;*a2=*(a+2)=a20=B故答案为BCD,C3. 以下程序的输出结果是_。#include int g=96;void gf(void) g+;int df(void) int g=10; g+; return g;int * sf(void) static int g=20; g+; return &g;void main() int a, b, c, *p; gf(); gf(); a=g; b=df(); b=df(); p=sf(); *p=32765; p=sf(); c=*p; printf(a=%d, b=%d, c=%d, a, b, c);98,11,32766 由于最后赋值后进入sf()使得地址加1故得327664. 假定运行以下程序时输入3+4*5-3/2=则程序的输出结果是_。#include int calc(void) int x; char p; scanf(%d %c, &x, &p); if(p = =) return x; switch(p) case +: return x + calc(); case -: return x - calc(); case *: return x * calc(); case /: return x / calc(); void main() printf(%d, calc(); 读取x的值3+4*5-3/2由于这个是从最里层到最外层故要从右往左算起得19(类似于递归)5. 以下程序的输出结果是_。注意:本题输出结果中的空格请用 标出,一个空格用一个 代替。#include #define N 4void main() static int aN+1N+1=1; int i, j; for(i=1; i=N; i+) for(j=1; j=i; j+)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 尚硅谷大数据课件
- 物业被蛇咬应急预案演练(3篇)
- 2025年欧盟绿色饲料添加剂进口与销售合作协议
- 2025年中小企业贷款担保合同纠纷处理与预防措施协议
- 2025年度高效生态循环牛场租赁与环保监测执行合同
- 2025年度冷链物流代理合同规范范本
- 2025年智慧社区安防设备供应与安装服务合同
- 2025智能医疗废物处理系统设备维护及运营管理合同
- 2025年度社区餐饮配送服务合作协议样本
- 2025年度智能科技领域并购项目保密合同
- 公安基础知识培训课件
- 2025年期货高管考试题库及答案
- 2025年江苏省南京市中考英语试卷
- 2025年政法委网格员考试题库
- 2025年新版期权知识考试题库带答案
- 无锡市公安局梁溪分局招聘警务辅助人员57人笔试模拟试题参考答案详解
- 2025年度养老护理员考试技师培训考试题(含答案)
- 2025年航空职业技能鉴定考试-候机楼服务技能考试历年参考题库含答案解析(5卷100道集合-单选题)
- 云智算中心项目建设方案
- 2025小学生“学宪法、讲宪法”网络知识竞赛题库及答案
- 脊柱内镜手术机器人系统设计与精准位置控制研究
评论
0/150
提交评论