c程序设计基础_第1页
c程序设计基础_第2页
c程序设计基础_第3页
c程序设计基础_第4页
c程序设计基础_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目 录单元一1单元二3单元三7单元四12单元五16单元六20单元一1. 一个c程序的执行是从_。A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序的main函数开始,到本程序文件的最后一个函数结束D)本程序文件的第一个函数开始,到本程序main函数结束2. 设计、运行C程序的基本步骤是_。A)编辑-编译-连接-运行 B)编译-连接-运行C)编译-编辑-连接-运行 D)编辑- 连接-编译-运行3. 下列字符串为合法标识符的是_。 A)_1_A B)5_student C)long D)!DF4. 下列合法的变量名为( )。A)345B)?eC) ab D) Sunday5. 下面字符常量正确的是_。 A)“c” B) C) n D)ab6. C语言的基本数据类型不包括_。 A:字符型 B:实型 C:整型D:数组7. 在C语言中,数字027是一个_。A)八进制数B)十六进制数C)十进制数 D)非法数8. 下列语句不正确的是_。A)a+; B)a=10; C)c+=5; D)b=10;9. 已知i、j、k为int型变量,若从键盘输入:1,2,3,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是_。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);10. 欲使a=6.5、b=3.5,如果输入语句是:scanf(%f,%f,&a,&b),应该怎么从键盘输入数据_。A)6.5 3.5 B)3.5: 6.5 C)3.5,6.5 D)6.5,3.511. 下列语句的输出为_。int x=1;printf(%d,%u,%O,x,x,x,);A)1,65535,177777B)1,1,1C)1,32767,17777D)1,32768,17777712. 若x,y为实数类型的变量,要判断x,y相等,最好使用下列关系表达式_。A)x= =y;B)xy= =0;C)fabs(xy) 1e8;D)labs(xy)1e-8;13. 若已定义x和y为double类型,则表达式x=2, y=x+10/4的值是_。A)2B)4C)4.0D)4.514. 若有定义int a=3; 则执行完printf(%d,a);语句后a的值为_。)A)3B)2C)2D)315. 程序设计的步骤一般分为:分析问题、构造模型、设计与描述算法、编写程序、调试程序和_。A)数据设计B)算法分析C)编制程序说明文档D)编译16、阅读程序(1) int x5=1,3,5,7,9;int *p=x;p+; printf(“%d,”,*(x+2); printf(“%dn”,*p);(2)char x=”house”, *p=x;p+; printf(“%d,”,*(x+1); printf(“%dn”,*p);单元二1. 有以下程序: main() int a=111,b=222; printf(“%dn”,a,b);该程序运行后的输出结果是_。A)错误信息 B)111 C)222 D)111,2222. 以下程序的输出结果是_。 main() int a=2,c=5; printf(“a=%d,b=%dn”,a,c); A) a=%2,b=%5 B) a=2,b=5 C) a=%d,b=%d D)a=%d,b=%d 3. 设 a=5, b=6, c=7, d=8, m=2, n=2, 执行(m=ab)&(n=cd) 后m,n的值为_。A) 2,2 B) 2,0 C) 0,2 D)0,04. 语句printf(“%dn”,strlen(“asdnx121”);的输出结果是_。A) 9 B)11 C) 7 D) 85. 有以下程序: main( )int y=1234;printf(“y=%6d”,y);printf(“y=%+06dn”,y);该程序的运行结果是_。A) y= 1234y=001234 B) y= 1234y=+01234 C) y=1234y=+01234 D)y= 1234y=1234 6. 语句:printf(“%d”,!9);的输出结果是_。A) 0 B) 1 C) 有语法错误 ,不能执行 D) -97. 已有定义语句:int x=6,y=4,z=5;执行以下语句后,能正确表示x、y、z值的选项是_。if(xy) z=x;B)if(x=y) z=0;C)if(x!=y) printf(%d,x) else printf(%d,y);D)if(xb)if(cd)x=1 ;else if(ad)x=2 ;else x=3 ;else x=4 ;else x=5 ;A)2 B)3 C)4 D)511. C语言用_表示逻辑真值。A)true B)TC)整型值0 D)非0整型值整数112. 运行完下列程序后,在屏幕上的内容是_。main() int a=0;a+=(a=12);printf(%dn,a);A)0B)6C)12D)2413. 下面程序的输出是_。main()int x=l0,y=3;printf(“%dn”,y=x/y); A)0 B)1 C)3 D)不确定的值14. 58如下程序运行台m的值为_。#include voidmah() int m,n,k;m=(n=4)+(k=l0-7);printf(m=%dn,m);A)4B)3C)7D)1415. 若N为整型变量,则for(N=10;N=0;N-);循环里的循环体被_。A)无限循环B)执行10次C)执行一次D)一次也不执行16、阅读程序(1) struct LH int n;struct LH *m;p4;main() int i;for(i=0;in,p3.m-n);(2) int y=1, x, *p, a =2,4,6,8,10;p=&a1;for(x=0;x3;x+)y + = * (p + x);printf(%dn,y); 单元三1. 设有程序段int k10; while(k0) kk-1;则下面描述中正确的是_。A)while循环执行10次 B)循环体语句一次也不执行C)循环是无限循环 D)循环体语句执行一次2. c语言中whi1e和do-while循环的主要区别是_。A)do-while的循环体至少无条件执行一次B)while的循环控制条件比do-while的循环控制条件严格C)do-while允许从外部转到循环体内D)do-while的循环体不能是复合语句3. 若i为整型变量,则以下循环执行次数是_。for(i=0;i=5;i+) printf(“d”,i);A)5 B)0次 C)1次 D)6次4. 定义如下变量和数组int k, a331,2,3,4,5,6,7,8,9;则下面语句的输出结果是_。for(k0;k0)A)k%2 B)k%2= =1 C)(k%2)!=0 D)!k%2= =0 6. 下列选项中,没有构成死循环的程序段有_。A)int i=100; B)for( ; ; ) while(1) i=i%100+1; if(i=100)break;C)int k=0; D)int s=36; do +k; while(k=0); while(s);-s;7. t为int类型,进入下面的循环之前,t的值为0:while(t=1) .则下列叙述不正确的有_。A)循环控制表达式的值0 B)循环控制表达式的值为1C)循环控制表达式不合法 D)循环有可能是个无限循环8. 若变量已正确定义,以下能正确计算1+2+3+4+5的程序段有_。A)i=1;s=1; B)i=0;s=0;Do dos=s+i;i+; i+; s=s+i;while(i5); while(i5);C)i=1;s=0; D)i=0;s=0;Do do s=s+i;i+; s=s+i; i+;while(i6); while(i=5);9. 以下关于C语言中循环的描述正确的有 _。A)在while和do-while循环体内应包含使循环趋于结束的语句 B)do-while的循环体不能是复合语句C)do-while的循环体至少无条件执行一次D)在for循环中可以使用break语句跳出循环体E)for循环只能用于循环次数已经确定的情况10. 下列程序的运行结果是_。main() int y=10;do y- - ; while(- -y);printf(“%dn”,y- -);A)-1 B)1 C)8 D)011. 有如下程序void main() int x=23;do printf(%d,x);while(!x);该程序的执行结果是_。A)321 B)23 C)不输出任何内容D)陷入死循环12. 以下程序的输出结果为_。#includemain() int i;for(i=0;i50)printf(%d,i);else if(i40)printf(%d,j);eles if(i30)printf(%d,k);else printf(Error);A)53B)48C)32D)Error14. 有如下程序,该程序的输出结果是_。main( ) int x=1,a=0,b=0;switch(x)case 0;b+;case 1:a+case 2:a+;b+A)a=2,b=1 B)a=l,b=lC)a=l,b=0D)a=2,b=215. 下面c 程序运行后变量x的值是_。 # include “stdio.h” void main( ) int a,b,c,x; a=b=c=0;x=35; if (!a) x-; else if(b) ; if( c) x=3; else x=4; printf(“%dn”,x);A)34 B)4 C)35 D)316、阅读程序(1) main()int a=5,b=-1,c;c=adds(a,b);printf(“%d”,c);c=adds(a,b);printf(“%dn”,c); int adds(int x,int y)static int m=0,n=3;n*=+m;m=n%x+y+;return(m); (2) int j,m=0,n=0,k=0; j=10; m=-j; n=m+; k=j+; printf(%d,%d,%d,%d,j,m,n,k);17、 程序填空题(1)下面代码是调用f函数,显示结构体成员的数据。struct STU char name10;int num;void f( )printf(“%s %d”,p-name,p-num; void main()struct STU a=“YangSan”,2041;f( )(2) 以下程序的功能是:程序实现交换两个变量的值。void swap(int *a,*b) ;tmp=*a; *a=*b; *b=tmp;void main()int a=5,b=10;swap( , );printf(“%4d%4d”, a,b ) ;单元四1. 假如定义int a10=2,4,则数组元素a7的值是_。A)0 B)4 C)2D)空2. 假如int k;则执行完for(k=0;k=9;k+);后,k的值是_。A)9 B)10 C)11 D)都不正确3. 若有以下定义:char s10=a,b,c,0,0,2,x32,0;执行语句printf(“%d”,strlen(s);的结果是_。A)3 B)4 C)8 D)104. 设有数组定义:char array =“abcdef”;则数组array所占的空间为_。A)4个字节 B)5个字节 C)6个字节 D)7个字节5. 阅读下面程序,该程序段的功能是_。#include main() int c =23,1,56,234,7,0,34,i,j,t; for(i=1;i=0&tcj) cj+1=cj;j- - ; cj+1=t; for(i=0;i7;i+)printf(“%d ”,ci ); putchar(n);A)对数组元素的升序排列 B)对数组元素的降序排列C)对数组元素的倒序排列 D)对数组元素的随机排列6. 下列程序的输出结果是_。main() int n33,i,j; for(i=0;i3;i+) for(j=0;j3;j+)nij=i+j;for(i=0;i2;i+) for(j=0;j2;j+)ni+1j+1+= nij;printf(“%d n”,nij);A)14 B)0 C)6 D)值不确定7. 不能把字符串:Hello!赋给数组b的语句是_。A)char b10=H,e,l,l,o,!; B)char b10; b=Hello!;C)char b10; strcpy(b,Hello!); D)char b10=Hello!;8. 下列程序中函数sort的功能是对a数组中的数据进行由大到小的排序:void sort(int a ,int n) int i,j,t; for(i=0;in-1;i+) for(j=i+1;jn;j+) if(aiaj)t=ai;ai=aj;aj=t;main() int aa10=1,2,3,4,5,6,7,8,9,10 ,i; sort(&aa3,5); for(i=0;i10;i+)printf(“%d,”,aai); printf(“n”); 该程序运行后的输出结果是_。A)1,2,3,4,5,6,7,8,9,10, B)10,9,8,7,6,5,4,3,2,1,C)1,2,3,8,7,6,5,4,9,10, D)1,2,10,9,8,7,6,5,4,3,9. 以下程序的输出结果是_。char str15=”hello!”;printf(“%dn”,strlen(str);A)15 B)14 C)7 D)610. 下列程序的运行结果是_。main() char arr24; strcpy(arr,“you”);strcpy(arr1,“me”); printf(“%sn” ,arr); A)you me B)you C)me D)arr11. 函数strcat(strl,str2)的功能是_。A)将字符串strl连接到字符串str2之后。B)将字符串str2连接到字符串strl之后。C)将str2复制到字符串strl中。D)将strl复制到字符串str2中。12. sizeof(a+10)的值为_类型。A)int B)floatC)doubleD)char13. 设有字符数组a,则正确的输入语句是_。A)gets(a);B)scanf(%c,a);C)scanf(%s,a);D)gets(a);14. 执行下面的程序段后,B的值为_。int x=35;char z=A;int B;B=(x&15)&(z0)b=1;else b=0;该程序所表示的数学函数关系是_。A) B) C) D) 16、 阅读程序(1) main()int k=3,m=5,n=7;int *pk=&k,*pm=&m,*p;*(p=&n)=*pk*(*pm);printf(%dn,n);(2) main() char str 10=“China”,“Beijing”,*p=str;printf(“%sn”,p+10);单元五1. 下面程序段的输出结果是_。char a=”welcome”,b=”well”;strcpy(a,b);printf(“%s”,a);A)wellome B)well om C)well D)well we2. 定义如下变量和数组:int i; int x33=1,2,3,4,5,6,7,8,9;则语句for(i=0;i3;i+) printf(%d,xi2-i); 的输出结果是_。A)1 5 9 B)1 4 7 C)3 5 7 D)3 6 3. 下列叙述正确的有_。A)函数可以嵌套定义,但不能嵌套调用B)函数可以嵌套调用,也可以嵌套定义C)函数不可以嵌套定义,但可以递归调用D)函数可以嵌套调用,但不能嵌套定义4. 下列函数调用语句中含有_个参数。func(f1,f2),(f2,f3,f4),f5)A)3 B)4 C)5 D)65. 下列程序的运行结果是_。# include int f(int a) switch (a) case 0:return 0; case 1:case 2:return 1; return(f(a-2)+f(a-3);main() int b;b=f(10);printf(“b=%dn”,b);A) 12 B)10 C)9 D)86. 有以下程序:fun(int n) if(n= =1| n= =2)return 2; return s=n-fun(n-2);main()printf(“%dn”,fun(7);该程序运行后的输出结果是_。A) 1 B)2 C)3 D)47. 下列程序的运行结果是_。main() int a=3,y; y=fn(a,a+); printf(“%d”,y);int fn(x,c) int b;if(xc)b=1;else if(x= =c)b=0;else b=-1 ;return(b);A)3 B)-1 C)1 D)08. 下列程序的输出结果是_。 int f() static int i=0;int s=1;s+=i;i+;return s;main() int i , a=0; for(i=0;i5;i+)a+=f(); printf(“%dn”,a);A)20 B)24 C)25 D)159. 有以下程序:main() char str 10=“China”,“Beijing”,*p=str; printf(“%sn”,p+10);该程序运行后的输出结果是_。A)China B)Beijing C)ng D)ing10. 下列描述中不正确的是_。A)字符型数组中可能存放字符串。B)可以对字符型数组进行整体输入、输出。C)可以对整型数组进行整体输入、输出。D)不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。11. 在C函数中,局部变量的隐含存储类型是_。A)autoB)staticC)registerD)extern12. C语言中,以下叙述中错误的是_。A)同一程序中,全局变量和局部变量可以同名B)局部变量的作用域被限定在其所定义的局部范围中C)同一程序中,全局变量和局部变量不能同名D)全局变量的作用域从定义处开始到本源程序文件结束13. 在 c语言中,函数调用时如果相应的形参和实参都是简单变量,则主调函数和被调函数之间传递数据的方式是_。A)单向地址值传递B)双向地址值传递C)单向数值传递D)双向数值传递14. C语言中,一个函数调用语句为fun(el,e2,e3),(e4,e5),e6);,其实参个数为_。A)3个B)4个C)5个D)6个15. C语言中,以下叙述错误的是_。A)函数被调用时,系统才为形参分配内存B)实参和对应形参的数据类型必须一致C)实参可以是变量、常量或表达式D)形参可以是变量、常量或表达式16、 阅读程序(1)a=10; a+=(a1)?a:1; printf(“%d”,a); (2)for(a=1,b=1;a=20) break;if(b%3=1)b+=3; continue;b-=5; 单元六1. 设有定义语句: int x6=2,4,6,8,5,7,*p=x,i;要求依次输出x数组6个元素中的值,下列选项中不能完成操作的语句是_。A)for(i=0;i6;i+)printf(“%2d”,*(x+i);B)for(i=0;i6;i+)printf(“%2d”,*(p+i);C)for(i=0;i6;i+)printf(“%2d”,*p+);D)for(i=0;i6;i+)printf(“%2d”,(*p)+);2. 若有定义:char *st=“how are you!”;下面程序段正确的有_。A)char a11,*p;strcpy(p=a+1,&st4);B)char a11;strcpy(+a,st);C)char a11;strcpy(a,st);D)char a ,*p;strcpy(p=&a1,st+2);3. 若有以下说明:int a59;则下列选项中对数组元素aij的引用错误的有_。A)aij B)*(a+i)(j) C)*(*(a+i)+j) D)*(ai+j)4. 设有如下定义: char *aa2=abcd,ABCD; 则以下说法中不正确的是_。A)aa数组成元素的值分别是abcd和ABCDB)aa是指针变量,它指向含有两个数组元素的字符型一维数组C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址D)aa数组的两个元素中各自存放了字符a和A的地址5. 程序中对fun函数有如下说明:void *fun();此说明的含义是_。A) fun函数无返回值B) fun函数的返回值可以是任意的数据类型C) fun函数的返回值是无值型的指针类型D) 指针fun指向一个函数,该函数无返回值6. 设有以下程序:int fun(char *s) int n=0; while(*s) n+;s+ ; return n ;main()char y =“th

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论