




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档一、 C语言基本知识和基本语句 (一)选择题1设a,b和c都是int型变量,且a=3,b=4,c=5则下面的表达式中,值为零的表达式是( )。A) a&b B) a=bC) a | b+c&b-c D) ! (a= A & ch =y)& (y=z ) B) (x=y) AND (y=z ) C) (x=y=z) D) (x=y) & (y=z )7 以下说法中正确的是( )。 A)C语言程序总是从第一个定义的函数开始执行 B) 在C语言程序中,要调用的函数必须在main()函数中定义 C) C语言程序总是从main()函数开始执行 D) C语言程序中的main()函数必须放在程序的开始部分8 设int x=10,y=3,z;则语句printf (“%dn”,z=(x%y,x/y);的输出结果是( )。 A) 1 B) 0 C) 4 D) 39C语言表达式10 != 9 的值是( )。 A)true B) 非零值 C) 0 D) 110合法的C语言字符常量是( )。 A)t B) “A” C) 65 D) A11若int类型数据占两个字节,则下列语句的输出为( )。 int k = -1 ; printf (“%d,%un ”,k,k); A)- 1,- 1 B) 1,32767 C) 1,32768 D) 1,6553512组成C语言程序的是( )。A)子程序 B) 过程 C) 函数 D) 主程序和子程序13以下的选项中,正确的赋值语句是( )。 A)i+; B)a=1,b=2; C) a=b=5 D) y=int(x);14. 以下不符合C语言语法的语句是( )。 A)i+; B)i=j=5; C)k=2*4,k*4; D) y=float(i)15. 下列程序的输出结果是( )。 main() int a=9; a+=a-=a+a; printf(“%dn”,a); A) 18 B) 9 C) 18 D) 916. 下列语句的输出结果是( )。 printf(“%dn”,(int)(2.5+3.0)/3); A)有语法错误不能通过编译 B) 2 C) 1 D) 017下列程序的输出是( )。 main() int a = 7,b=5; printf(“%dn”,b=b/a); A)有语法错误不能通过编译 B) 2 C) 1 D) 018请阅读程序( )。 main() int a;float b,c; scanf(“%2d%3f%4f”,&a,&b,&c); printf(“na=%d,b=%f,c=%fn”,a,b,c); 若运行时从键盘上输入9876543210(CR表示回车),则上面程序的输出结果是( )。A)a=98,b=765,c=4321 B) a=10,b=432,c=8765C) a=98,b=765.000000,c=4321.000000 D) a=98,b=765.0,c=4321.019以下程序的输出结果是( )。 main() int a=-1,b=4,k; k=(+a0)&! (b - -b?“* * * a=%d”:“# # # b=%d”,b); A)没有正确的输出格式控制 B) * * * a=2C) # # # b=3 D) * * * a= 2# # # # b=35以下程序段的输出结果为( )。 int a=1;b=2,c=2,t=0; while(ay) z=x;x=y;y=z; A) x=10,y=20,z=30 B) x=20,y=30,z=30 C) x=20,y=30,z=10 D) x=20,y=30,z=207以下程序的运行结果是( )。 main( ) int m=5; if (m+5) printf (“%dn”,m); else printf (“%dn”,m-); A)4 B) 5 C) 6 D) 78. 以下不正确的语句是( )。A) if (xy); B) if (x=y)&(x!=0) x+=y; C) if (x!=y) scanf(“%d”,&x);else scanf(“%d”,&y); D) if (xy) x+;y+;9. 若w、x、y、z、m均为int型变量,则执行下面语句后的m 值是( )。 w=1;x=2;y=3;z=4; m=(wx)?w:x;m=(my)?m:y;m=(mz)?m:z; A)1 B) 2 C) 3 D) 410.下面有关for循环的正确描述是( )。A) for 循环只能用于循环次数已经确定的情况B) for 循环是先执行循环体语句,后判断表达式 C) 在for 循环中,不能用break语句跳出循环体D) for 循环的循环体中,可包含多条语句,但必须用花括号括起来11.若i为整数变量,则以下循环执行的次数是( )。 for(i=2;i=0;) printf(“%d”,i-); A)无限次 B) 0次 C) 1次 D) 2次12.执行语句for(i=1;i+ 4;);后变量i的值是( )。 A) 3 B) 4 C) 5 D) 不定13以下正确的说法是( )。A) continue 语句的作用是结束整个循环的执行B) 只能在循环体内和switch语句体内使用break语句 C) 在循环体内使用break语句或continue语句的作用相同D) 在多层循环嵌套中退出时,只能使用goto语句14. 以下程序的功能是判断输入的年份是否是闰年。请在 填入正确内容 main ( ) int y,f; scanf (“%d”,&y); if (y%400 = = 0) f=1; else if ( ) f=1; else ; if (f) printf(“%d is ”,y); else printf(“%d is not ”,y); printf (“a leap year n”); 15有四个数a,b,c,d 要求按从大到小的顺序输出请在 内填入正确内容 main( ) int a,b,c,d,t; scanf(“%d %d %d %d”,&a,&b,&c,&d); if (ab) t=a;a=b;b=t; if ( ) t=a;a=d;d=t;if (ac) t=a;a=c;c=t;if ( ) t=b;b=c;c=t;if (bd) t=b;b=d;d=t;if (camax) amax = x; if ( ) amin = x; scanf (“%f”,&x);printf (“namax = %fnamin = %fn”,amax,amin);17以下程序的功能是计算1-3+5-7+-99+101的值,请填空。 main ( ) int i,t =1,s = 0; for (i= 1; i =101;i+=2) ; s = s+t; ; printf (“%dn”,s); 或:main ( ) int i,t =1,s = 0; for (i= 1; i =101;i+=2) s = s+t*i; ; printf (“%dn”,s); 18若用0至9之间不同的三个数构成一个三位数,下面程序统计出共有多少种方法。请填空。 main ( ) int i,j,k,count = 0; for (i =1; i =9; i+) for (j =0; j=9; j+) if ( ) continue; else for (k =0; k =9; k +) if ( ) count +; printf(“%d”,count); 19下面的程序功能是打印100以内个位数为6,且能被3整除的所有数。请填空。 main ( ) int i,j; for ( i = 0 ; ; i+) j = i*10 + 6; if ( ) continue; printf (“%d”,j);三、C语言数组练习(一)选择题1以下对C语言字符数组的描述错误的是( )。 A) 字符数组可以存放字符串B) 字符数组中的字符串可以整体输入、输出C) 可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值字符串D) 不可以用关系运算符对字符数组中的字符串进行比较2不能把字符串Hell0!赋给数组b的语句是( )。 A) char b10 = H,e,l,l,o,!;B) char b10 ; b=”Hello!”;C) char b10 = H,e,l,l,o,!,0;D) char b10 = “Hello!”;3合法数组定义是( )。A) int a =”string” ; B) int a5 = 0,1,2,3,4,5;C) char a=”string”; D) char a = 0,1,2,3,4,5;4以下能对二维数组a进行正确初始化的语句是( )。 A) int a2 = 1,0,1,5,2,3;B) int a 3 = 1,2,3,4,5,6;C) int a24 = 1,2,3,4,5,6;D) int a 3 = 1,0,1 ,1,1;5若有说明int a34 =0;则下面正确的叙述是( )。 A) 只有元素a00可得到初值0B) 此说明语句不正确C) 数组a中各元素都可得到初值,但其不一定为0D) 数组a中各元素都可得到初值06在C语言中,引用数组元素时,其数组下标的数据类型允许是( )。A) 整型常量 B) 整型表达式C) 整型常量和整型表达式 D) 任何类型的表达式7以下对一维整型数组a的正确说明是( )。A) int a (10); B) int n=10,an;C) int n; D) #define SIZE 10 scanf (“%d”,&n); int aSIZE; int an;8若有说明int a10;则对a数组元素的正确引用是( )。A) a 10 B) a 3.5 C) a (5) D) a10-109以下对二维数组a的正确说明是( )。A) int a3 ; B) float a (3,4);C) double a 14; D) float a (3) (4);10若有说明int a 34; 则对a数组元素的正确引用是( )。A) a24 B) a1,3 C) a1+10 D) a(2)(1) 11若有说明int a 34; 则对a数组元素的非法引用是( )。A) a02*1 B) a13 C) a4-20 D) a0412对int a10=6,7,8,9,10;说明语句的正确理解是( )。A) 将5个初值依次赋给a1至a5,其余元素赋0值; B) 将5个初值依次赋给a0至a4,其余元素赋0值;C) 将5个初值依次赋给a6至a10,其余元素赋0值;D) 因为数组长度与初值的个数不相同,所以此语句不正确;13定义如下变量和数组int k; int a33=1,2,3,4,5,6,7,8,9; 则执行for ( k=0;ks2) B) if (strcmp (s1,s2) C) if (strcmp (s2,s1)0) D) if (strcmp (s1,s2)0)16下面程序段的功能是将字符串s中所有的字符c删除。请选择填空。 #include main() char s80; int i,j; gets(s); for(i=j=0;si!=0;i+) if (si!=c) ; sj=0; puts(s); A) sj+=si B) s+j=si C) sj=si ;j+ D) sj=si17有两个字符型数组a,b,则以下正确的输入格式是( )。A) gets (a,b); B) scanf (“%s%s”,a,b); C) scanf (“%s%s”,&a,&b); D) gets(“a”),gets(“b”);18对两个数组a和b进行如下初始化, char a =A,B,C,D,E,F; char b =”ABCDEF”; 则以下叙述正确的是( )。 A) a与b数组完全相同 B) a与b数组长度相同C) a与b中都存放字符串 D)b数组比a数组长度长(二)填空题1 下面程序的功能是将字符串a下标值为偶数的元素由小到大排序,其它元素不变。请填空。 #include main ( ) char a = “labchmfye”,t; int i,j; for( i=0; i7; i+=2) for (j = i+2;j9; ) if ( ) t = ai; ai = aj;aj = t; j+; puts(a);printf(“n”);2下面程序以每行4个数据的形式输出a数组,请填空。 #define N 20 main() int aN,i; for (i=0;iN;i+) scanf(“%d”, ); for(i=0;iN;i+) if( ) printf(“%3d”,ai); printf(“n”); 3下面程序是分别求出矩阵a的两条对角线上的元素之和。请填空。 main() int a33=1,3,6,7,9,11,14,15,17,sum1=0,sum2=0,i,j; for (i=0;i3;i+) for(j=0;j3;j+) if(i=j) sum1=sum1+aij; for(i=0;i3;i+) for( ; ;j-) if (i+j) =2) sum2=sum2+aij;printf(“sum1=%d,sum2=%dn”,sum1,sum2); 4下面程序功能是检查一个二维数组是否对称(即对所有i j 都有aij=aji)。请填空。main() int a44=1,2,3,4,2,2,5,6,3,5,3,7,4,6,7,4;int i,j,found=0;for(j=0;j4;j+) for ( ;i4;i+) if(aji)! =aij ;break; if (found) printf(“no”);else printf(“yes”); 5 下面的程序段将输出computer,请填空。char c = “Its a computer”;for ( i=0; ; i+) ; printf(“%c”,cj);6下面的程序功能是在三个字符串中找出最小的。请填空。 #include #include main() char s20,str320; int i; for(i=0;i3;i+) gets(stri); strcpy(s, ); if(strcmp(str2,s)0) strcpy(s,str2); printf(“%sn”, ); 7若有定义int a 34 = 1,2,0,4,6,8,10;则初始化后,a12 得到的初值是 ,a21 得到的初值是 。8设数组a中的元素均为正整数,以下程序是求a中偶数的个数和偶数的平均值。请填空。main() int a10=1,2,3,4,5,6,7,8,9,10; int k,s,i; float ave;for ( k=s=i=0;i10;i+ ) if (ai%2!=0) ; s+= ; k+; if (k!=0) ave=(float)s/k;printf(“%d,%fn”,k,ave); 9 下面程序段的运行结果是( )。char x =”the teacher”; i=0;while (x+i!=0) if (xi-1=t) printf(“%c”,xi);10下面程序段是输出两个字符串中对应字符相等的字符。请填空。char x =”programming”;char y =”Fortran”;int i = 0;while (xi!=0&yi!=0) if (xi= =yi) printf(“%c”, ); else i+;四、C语言函数与编译预处理练习(一)选择题 1. 有以下函数调用语句,其实参数的个数是( )。fun(a+b,(x,y),fun(n+k,d,(a,b); A)3 B) 4 C) 5 D) 62. C语言规定,程序中各函数之间( )。A)既允许直接递归调用又允许间接递归调用 B)不允许直接递归调用也不允许间接递归调用C)允许直接递归调用但不允许间接递归调用D)不允许直接递归调用但允许间接递归调用3. C语言中,函数的隐含存储类别是( )。A) auto B)static C) extern D) 无存储类别4在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是( )。A) extern B) register C) auto D) static5. C语言规定,简单变量做实参时,它和对应的形参之间的数据传递方式是( )。A)地址传递 B) 单向值传递 C)由实参传递给形参,再由形参传回给实参 D) 由用户指定传递方式6C语言允许函数类型缺省定义,此时该函数返回值隐含的类型是( )。A) float型 B) int型 C) long型 D) double型7. C语言规定,函数返回值的类型是由( )。A)return语句中的表达式类型所决定B)调用该函数时的主调函数类型所决定C)调用该函数时系统临时决定 D)在定义该函数时所指定的函数类型所决定8以下符合C语言规定的正确描述是( )。A)函数的定义可以嵌套,但函数的调用不可以嵌套B)函数的定义不可以嵌套,但函数的调用可以嵌套 C)函数的定义和函数的调用均不可以嵌套 D)函数的定义和函数的调用均可以嵌套9如用数组名作为函数调用的实参,传递给形参的是( )。A)数组的首地址 B) 数组第一个元素的值 C)数组中全部元素的值 D) 数组元素的个数10以下不正确的说法是( )。 A)在不同函数中可以使用相同名的变量 B)形式参数是局部变量 C)在函数内部定义的变量只在本函数范围内有效 D)在函数内的复合语句中定义的变量在本函数范围内有效11C语言函数进行值传递时的正确说法是( )。A)实参和与其对应的形参各占用独立的存储单元B) 实参和与其对应的形参占用一个存储单元C) 只有当实参和与其对应的形参同名时才占用存储单元D) 形参是虚拟的,不占用存储单元12以下程序是选出能被3整除且至少有一位是5的两位数,打印出所有这样的数及其个数。请选择填空。 sub(int k,int n) int a1,a2; a2= ;a1=k- ; if (k%3= =0&a2= =5)|(k%3= =0&a1= =5) printf (“%d,”,k);n+; return n; else return-1; main( ) int n=0,k,m; for(k=10;k=99;k+) m=sub(k,n); if (m!=-1) n=m; printf(“nn=%d”,n); A)k*10 B)k%10 C)k/10 D)k*10%10 A)a2*10 B)a2 C)a2/10 D)a2%1013若使用一维数组名作函数实参,则以下正确的说法是( )。 A)必须在主调函数中说明实参数组的大小B)实参数组类型与形参数组类型可以不匹配C)在被调函数中,不需要考虑形参数组的大小D)实参数组名与形参数名必须相同14如果在一个函数的复合语句中定义了一个变量,则该变量( )。A)只在该复合语句中有效 B)在该函数中有效 C)在本程序范围内有效 D)为非法变量15. 以下叙述中不正确的是( )。 A)预处理命令行都必须以#号开始B)在程序中凡是以#号开始的语句行都是预处理命令行C)C程序在执行过程中对预处理命令行进行处理D)以下是正确的宏定义 #define IBM_PC16. 以下叙述中正确的是( )。A)在程序的一行上可以出现多个有效的预处理命令行B)使用带参数的宏时,参数的类型应与宏定义时的一致C)宏替换不占用运行时间,只占编译时间D)在以下定义中C R是称为“宏名”的标识符 #define C R 04517.以下有关宏替换的叙述不正确的是( )。 A)宏替换不占用运行时间 B)宏名无类型C)宏替换只是字符替换 D)宏名必须用大写字母表示18.C语言编译系统对宏命令的处理是( )。A)在程序运行时进行的 B)在程序连接时进行的C)和C程序中的其它语句同时进行编译的D)在对源程序中其它成分正式编译之前进行的19.以下程序的运行结果是( )。 #define ADD(x) x+x main() int m=1,n=2,k=3; int sum=ADD(m+n)*k; printf(“sum=%d”,sum);A)sum=9 B) sum=10 C) sum=12 D) sum=18 二、填空题以下程序的功能是根据输入的“y”(“Y”)与 “n”(“N”),在屏幕上分别显示出“This is YES.”与“This is NO.”。请填空。 #include void YesNo(char ch) switch(ch) case y: case Y:printf(“nThis is YES.n”);_; case n: case N: printf(“nThis is NO.n”);_;main() char ch; printf(“nEnter a char y,Yorn,N:n”); ch=_; printf(“ch:%c”,ch); YesNo(ch);五、指针练习(一)选择题 1已有定义int k=2;int *ptr1,*ptr2;且ptr1和 ptr2均已指向变量k,下面不能正确执行的赋值语句是( )。A)k=*ptr1+*ptr2; B) ptr2=k; C) ptr1=ptr2 D) k=*ptr1*(* ptr2);2.变量的指针,其含义是指该变量的( )。A)值 B) 地址 C) 名 D) 一个标志3如有定义int a=5;下面对,两个语句的正确解释是( )。int *p=&a;*p=a;A)语句和中的含义相同,都表示给指针变量p赋值B)和语句的执行结果,都是把变量a 的地址值赋给指针变量p C)在对p 进行说明的同时进行初始化,使p指向a 将变量a的值赋给指针变量pD)在对p 进行说明的同时进行初始化,使p指向a 将变量a的值赋于 * p4若已定义char s10;则在下面表达式中不表示s1的地址的是( )。A)s+1 B)s+ C) &s0+1 D) &s15若有以下定义,则对a数组元素的正确引用是( )。int a5,*p=a;A) *&a5 B) a+2 C) *(p+5) D) *(a+2)6. 若有以下定义,则对a数组元素地址的正确引用是( )。int a5,*p=a;A)p+5 B)*a+1 C)&a+1 D) &a07.设有如下函数定义 int f(char *s) char *p=s; while (*p !=0) p+; return(p-s); 如果在主程序中用下面的语句调用上述函数,则输出结果为( )。printf(“%dn”,f(“goodbay!”);A) 3 B) 6 C) 8 D) 08.执行以下程序后,y的值是( )。 main() int a=2,4,6,8,10; int y=1,x,*p; p=&a1; for(x=0;x3;x+) y+=*(p+x); printf(“%dn”,y); A) 17 B) 18 C) 19 D) 209.下面各语句行中,能正确进行字符串赋值操作的语句是( )。A)char st45=“ABCDE”; B)char s5=A, B,C, D,E; C) char *s;s=“ABCDE”; D) char *s;scanf(“%s”,s);10.请读程序段 char str=“ABCD”,*p=str; printf(“%dn”,*(p+4); 以上程序段的输出结果是( )。A) 68 B) 0 C) 字符D的地址 D) 不确定的值11.以下与int *q5;等价的定义语句是( )。A)int q5; B)int *q C)int *(q5); D) int (*q)5;12.若有以下定义 int x43=1,2,3,4,5,6,7,8,9,10,11,12; int (*p)3=x; 则能够正确表示数组元素x12的表达式是( )。A)* (*p+1)2) B)(*p+1)+2C)*(*(p+5) D)*(*(p+1)+2)13.以下不正确的叙述是( )。A)C语言允许main函数带形参,且形参个数和形参名均可由用户指定B)C语言允许main函数带形参,形参名只能是argc和argvC)当main函数带有形参时,传给形参的值只能从命令行中得到D)若有说明main(int argc,char *argv),则形参argc的值必须大于114.语句int (*ptr)();的含义是( )。A)ptr是指向一维数组的指针变量B)ptr是指向in
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 16784-2025工业产品售后服务总则
- GB/T 14805.11-2025行政、商业和运输业电子数据交换(EDIFACT)应用级语法规则(语法版本号:4,语法发布号:1)第11部分:ISO 9735版本3向版本4兼容的配置文件
- 2025年学前教育专业能力测评试题及答案
- 2025年医学专业基础知识考试试卷及答案
- 2025年小学数学教师资格考试真题及答案
- 2025年外语专业口语能力考核试卷及答案
- 2025年数字经济理论与实践能力考核试卷及答案
- 2025年企业财务管理基本理论测试题及答案
- 2025年气候变化与可再生能源战略师考试试题及答案
- 2025年旅游管理与市场开发知识测评试卷及答案
- 2024年度小学生科普知识竞赛题库附答案(共100题)
- 高教版2023年中职教科书《语文》(基础模块)上册教案全册
- 五年级下册语文作文范文1-8单元
- 广东省广州市2024年中考数学真题试卷(含答案)
- 2024年山东省青岛市中考数学试卷(附答案)
- 4《日月山川》(教学设计)2024-2025统编版语文一年级上册
- 2024年选拔乡镇副科级领导干部考试模拟试题及答案
- AQ 1044-2007 矿井密闭防灭火技术规范(正式版)
- 宁夏大附属中学2025届九年级数学第一学期期末联考模拟试题含解析
- 重庆市九龙坡区2023-2024学年六年级下学期期末数学试题
- 2024八年级数学下册专题突破第11讲正方形中的几个常用模型探究含解析新版浙教版
评论
0/150
提交评论