C程序设计基础复习题_第1页
C程序设计基础复习题_第2页
C程序设计基础复习题_第3页
C程序设计基础复习题_第4页
C程序设计基础复习题_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、15.下列程序段的输出结果是【知识点:难度:3 正确答案: B c程序设计基础及实验c语言规定,任何非 0的数像1-1等都被认为是真,而0被认为是假1>1为假试题一、单选题1.已知int k,m=1;执行语句 k=-m+;后,k的值是。【知识点:难度:正确答案:A A. -1B . 0C . 1D . -22.已知定义 int m; float k;正确的语句是。【知识点:难度:正确答案:D A .( int k ) %mB . int ( k) %mC . int ( k%m )D.(int) k%m3.当k的值不为 0时,在下列选项中能够将k的值赋给变量m,n的是。【知识点:难度:正

2、确答案:B A .m=k=nB .(m=k )&&(n=m )C .(m=k ) |(n=k )D .(n=m)&&(m=k )4.已知int x=5;表达式6>x>1值是。【知识点:难度:正确答案:A A .0B . 1C .5D. 表达式语法错表达式6>x>1,先判断6>x为0,再判断0>1 ,所以值为0。(6>x为1,再判断1>1 ,所以值为0。)5. 下列程序段执行后c值为。【知识点:难度:正确答案:D int k=7, c=0;while(-k)if (k%3) continue; else C+;A.

3、5B .4C . 3D.26. 已知字母a的ASCII 码为十进制数 97,且ch为字符型变量,则执行语句ch=, a?+,D?-,A?;后,chA. 6, 7C. 9, 78. 已知 char *t = ” How ” , ” are”A.指向char变量的指针C.指向” How”的指针变量9. 假设scanf语句执行时输入B. 7, 6D. 7, 9you! 则t是。【知识点:B .指向字符指针的指针常量D .指向?H ?的指针ABCDEv回车 >,能使puts(s)语句正确输出难度: 正确答案:B ABCDE字符串的程序A. char s5 = "ABCDE"

4、puts(s) C. char *s; s = "ABCDE" puts(s);B . char s5 = ,A?,?B?,?C?,?D?,?E?; puts(s); D . char *s; scanf( “ %s ” ,s);puts(s);中的值为。【知识点:难度:正确答案:C A . dB . cC . 100D.不确定7.设m,n已正确定义,执行语句for ( m=0, n=10; m<n; m+=3,n-);以后,m,n的值是【知识点:难度:正确答案:C 10.以下程序有错,错误原因是() int *p, i; char *q, ch;p = &i

5、;q = & ch;*p = 40;*p = *q;【知识点: 难度:正确答案:D mainA. p和q的类型不一致,不能执行*p=*q;语句B. *p中存放的是地址值,因此不能执行*p=40;语句C. q没有指向具体的存储单元,所以*q没有实际意义D. q虽然指向了具体的存储单元,但该单元中没有确定的值,所以执行 会影响后面语句的执行结果*p=*q;没有意义,可能11.若有定义:int a=2, b=5, c=8;则表达式 c |= (a && b)八!(a & b)的值为。【知识点:难度:4正确答案:B A. 14B .8C .1D. 012.设 int a

6、=5, b=7,答案:C 表达式(+a = b-)? + a : -b的值是。【知识点:难度:2 正确A . 7B .6C . 5D. 413.设a=3, b=2,那么表达式(a=b=7, b=a!=7)的值是, 。【知识点:难度:2正确答案:D A . 1B.2C . 7D.0逗号(,)也可以是运算符,逗号表达式最右边的子表达式的值即为逗-号表达式的值。而b=a!=7的值为0逗号运算符只取最右边的子表达式的值,但每个子表达式都要运行14.设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行语句(m=a>b ) && (n=c>d );后 n 的值是

7、。【知识点: 难度:3正确答案:A A . 2B .1C . 0D. 3&和&&都可以用作逻辑与的运算符,表示逻辑与(and ),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,int k=2, s=0;switch (k) case 2: s+; k+;16.17.18.case 1: s+; case 3: s+=1;switch(s)case 2: s+=2; break; default: k+; br

8、eak;default: s+=3; printf("%d#%d#", s, k);A 1#3#B 6#4#C 3#2#列程序的输出结果是int f(int x) static int k; return +k + x;main( ) int k;for(k=1; k<4; k+) A 2#5#知识点:难度: 2D 3#4#正确答案: C 】printf("%d#", f(k) );B 3#6#C 2#4#6#列程序的输出结果是 main() char x=040;printf ( "%on",x<<1 ) ;A o

9、 B 40知识点: 难度: 2C 1000000列程序段的输出是 。 【知识点:main() int x= -9, y=5, z=8;if( x=y ) if ( x>0 ) z=0; else z+=1; printf ( "z=%dn", z ) ;难度:A z=0B z=1 C z=8D .不确定正确答案: D 】D. 1003 正确答案: A 】D. z=9C 程序设计基础及实验esle 子句与其之前最近的不完整 if 配对。C 语言中等号“ = ”为赋值运算符,不用于判断相等,判断相等应用“ =”,因此执行 x=y 后,x=5 , if (5)相当于 if

10、( true ), 执行 if (x>0) z=0,所以 z=019. 下列程序段的输出是 。【知识点: 难度: 3 正确答案: B 】#define SQ(a,b) (a*a-2*a*b+b*b) main() int k=4; printf("%d", SQ(k, k-1) );A1B-18 C-15 D -8 #define 定义一个宏 (不是一个函数 ) ,用于字符串的替换,注意替换不 是用数值去替换,也不会自动加括号, 因此SQ(k, k-1)=k*k-2*k*k-1+k-1*k-1=-k*k-2SQ(4,3)=-4*4-2=-1820. 若运行以下程序时,

11、从键盘输入结果是 。【知识点:Hello_Everyone!<CR>难度: 2 正确答案:( <CR> 表示回车),则下面程序的运行 C】21. 下列程序段输出 。【知识点:难度: 4 正确答案: D】C 程序设计基础及实验main() char c;int v1=0,v2=0;doswitch(c=getchar()case 'a': case 'A':case 'o': case 'O':case 'u': case 'U': v1+=1;default:v1+=1;v2

12、+=1; while( c != 'n' ); printf("%d,%dn", A 6,10v1, v2);B 21,10C 22,10case 'e': case 'E': case 'i': case 'I':D 6,9main()char str25 = "abcd" ;strcpy( str0, "You" );strcpy( str1, "Me" );str03 = '&'printf( "

13、%sn", *str );C 程序设计基础及实验A You&MeB abcdC abc&D You&知识点:难度: 3 正确答案: A 】voidf (int n)if(n<10)printf( "%1d", n );A else f(n/10);printf( "%1d", n%10);12345B 54321C 1111122.对于函数f,调用 f (12345) 的输出是D 543223. 下列程序段的输出结果是 . 【知识点: 难度: 2 正确答案: B 】void fun(char *fname,char

14、 *st) FILE *myf; int i;myf = fopen(fname,"w" );for(i=0; i<strlen(st); i+)fputc(sti, myf);fclose(myf); void main() fun("test_", "C_"); fun("test_", "is_fun");A C_is_funB is_funC test_is_funD C_试题二、程序阅读题1. 以下程序的输出结果是main () 。【知识点:难度: 3 正确答案: C 】char

15、 ch 2 5 = "1234", "5678" , *p 2int i,j,s=0;for ( i=0;i<2;i+ ) p i = ch i ;for ( i=0;i<2;i+ )for ( j=0; p> ' O'j+=2 )s=10*s + p i :j: - ' O';printf( "%dn", s ) ;A 1537B 2468C 1357D 26482. 运行下列程序的输出结果是知识点:难度: 3 正确答案: D 】struct st int x; int*y; *p;

16、int dt4 = 10, 20, 30, 40 ;struct st aa4 = 50, &dt0, 60, &dt1, 70, &dt2, 80, &dt3 ; main() p=aa; printf("%d,", +p->x); printf("%d,", +p->x); printf("%d",A 60,60,21 B 51,51,21 C 60,70,313. 下列程序的输出结果是 void fun(int m, int *a, int *n)int i,j=0;for( i=1;

17、 i<=m; i+ ) if(i%3=0 && i%7=0) aj+=i;*n=j;void main()int aa50,n,k; fun(50,aa, &n); for(k=0;k<n; k+)printf("%d#", aak);A 21#42# B 3#7#知识点: 难度: 4C 3#7#21#42#4. 运行下面程序的输出结果是 。【知识点: 难度:int x, y;int f( int n )static int x=0;x+;if( !(n%3) printf("%d", n);else y+; retu

18、rn x;void main()int i;x=1; y=5;+ (*p->y);D 51,52,11正确答案: A】D 3#7#9#49#3 正确答案: B 】for( i = 0; i < 7 ; i+)x = f( i );printf("#%d#%dn", x, y);A 1245#7#10 B 036#7#9 C 1245#1#9D 036#1#104 正确答5. 如果已经有了有关的定义,则下列程序的输出结果为 。【知识点: 难度:案: C】 main() int i, n=7;char b7, *a = "January", &q

19、uot;February", "March", "April", "May", "June", "July" ; f(a, n);for (i=0; i<n; i+)if( strlen(ai) >= i ) bi=*(ai+i); bi='0' printf("%sn", b);void f(char *a, int n)int i, j; char *temp;for( i = 1; i < n; i+) for (j = 0;

20、 j < n-i; j+ )if (strcmp(aj, aj+1) > 0) swap(&aj, &aj+1);void swap(char *s1, char *s2)char *temp;temp=*s1;A Jeri*s1=*s2; *s2=temp;B JuyichayC AenyD JFMAMJJ试题三、程序(段)填空题1. 下面的程序输入n ( 1<=n<=10) ,打印出n 行杨辉三角。第m 行有 m 个整数,其中第m 选 i 的组合数:Ci,m 。每个数右对齐占4 位,相邻行交错显示,呈金字塔状。例如,输入以后,输出的金字塔是:1【知识

21、点:难度: 3 正确答案:(1)A (2)B (3)G 】111211331i 个整数是6C 程序设计基础及实验2.15101051/* 1 */ #inelude "stdio.h"/* 2 */ mai n()/*3*/*4*/int i, j, n, a1010;/*5*/sea nf("%d",&n);/*6*/for( i=0; i< n; i+ )/*求每行两端数据*/*7*/ai0=aii=1;/*8*/for( i=0; i<(1)_一;i+ )/*9*/for( j=1; j<(2); j+ )/*求每行的内部

22、数据*/* 10 */aij = ai-1j-1 + ai-1j;/* 11 */prin tf("n");/* 12 */for(i=0; i <n; i+)/* 13 */* 14 */for(j=0; j<_ (3k_; j+) printf("");/*打印前导空格*/* 15 */for(j=0; j<=i; j+)/*打印一行数据*/* 16 */prin tf("%4d",aij);/* 17 */prin tf("n");/*换行*/* 18 */* 19 */A. nB. i C

23、. n-1D. i-1E. n-iF. n-i-1G. n-i+1 H. i-n 1. i-n+1一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对14641请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数R为给定的正整数)。下面的程序输入一个正整数R,输出“至少到第几个月时,兔子总对数才能达到R对。”例如:输入30,输出“至少第 9个月才有30对兔子。”【知识点: 难度:3正确答案:(1)F (2)AC 兔子。假如兔子都不死, 才可以达到 R对?(/* 1 */ #inelude "stdio.h"/* 2 */ mai n()

24、/*3*/*4*/int mo nth=1, R, R仁1, R2=0, R3=0;1*5*11*6*1sea nf("%d", & R);while( R1+R2+R3 < R )/*兔子数量未达到给定的量,继续计算下个月的值*/*7*/mon th+;/*8*/*9*/R3 = (1_;R2 = (2二_;/* 10 */R1 = 一(3)_;/* 11 */C程序设计基础及实验/* 12 */ printf("至少第 %d 个月才有 %d 对兔子。n", mon th, R1+R2+R3 ); /*13*/A. R1 B. R2 C. R3 D. R1+R2 E. R1+R3

温馨提示

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

评论

0/150

提交评论