实验指导书基本概念测试习题答案

上传人:m**** 文档编号:576038600 上传时间:2024-08-19 格式:PDF 页数:39 大小:3.23MB
返回 下载 相关 举报
实验指导书基本概念测试习题答案_第1页
第1页 / 共39页
实验指导书基本概念测试习题答案_第2页
第2页 / 共39页
实验指导书基本概念测试习题答案_第3页
第3页 / 共39页
实验指导书基本概念测试习题答案_第4页
第4页 / 共39页
实验指导书基本概念测试习题答案_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《实验指导书基本概念测试习题答案》由会员分享,可在线阅读,更多相关《实验指导书基本概念测试习题答案(39页珍藏版)》请在金锄头文库上搜索。

1、1 数据类型与表达式1.1基本概念1、一个C语言程序总是从( ) 。A、主过程开始执行 B ,主函数开始执行C、子程序开始执行 D ,主程序开始执行【 答案】B2、C语言程序从m a in( )函数开始执行,所以这个函数要写在( ) 。A、 程序文件的开始 B ,程序文件的最后C、 它所调用的函数的前面 D、程序文件的任何位置【 答案】D3、下列关于C语言的叙述错误的是( ) 。A、大写字母和小写字母的意义相同B、不同类型的变量可以在一个表达式中C、在赋值表达式中等号( =) 左边的变量和右边的值可以是不同类型D、同一个运算符号在不同的场合可以有不同的含义【 答案】A4、在C语言中,错误的in

2、t类型的常数是( ) 。A、32768 B、0 C、037 D、OxAF【 答案】A5、在C语言中,整数- 8在内存中的存储形式是(A、1111 1111 1111 IO(X)B、1000 0000 0000 1000c , 0000 0000 0000 1000 D m i m i m i 0111【 答案】A6、C语言中字符型( c ha r )数据在内存中的存储形式是( ) 。A、原码 B、补码 C、反码 D、ASCII码【 答案】D7、已知a、b、c为int类型变量,若有输入语句:s c a nf ( a =%d b =%d c =%d , &a , &b , &c ) ;为使a值为1

3、 0 , b值为2 0 , c值为3 0 ,从键盘输入数据的正确形式应当是( ) 。A、102030回车 B、a=10b=20c=30 回车C、10回车 20回车 30回车 D、a=10 回车 b=2O回车 c=30回车【 答案】B8、以下能正确定义整型变量x、y和z并为其赋初值5的语 句 是 ( ) 。A、int x=y=z=5; B、int x,y,z=5;C、int x=5,y=5,z=5; D、x=5,y=5,z=5;【 答案】c9、已知c h是字符型变量,则不正确的赋值语句是( ) 。A、ch=5+9; B、ch=V) ; C、ch=7+9; D、ch=a+b;【 答案】D1 0、设

4、x , y是f loa t型变量,则不正确的赋值语句是( ) 。A、+x; B、y=int( 5) ; C、x*=y+l; D、x=y=0;【 答案】B1 1、若a为int类型变量,则执行以下程序段后a的 值 为 (a =5 ;a * =a / =a + + ;A、2 B、1 C、4 0 D、3【 答案】A1 2、若a和b均为int型变量,则执行以下程序断后x的输出是( ) 。x =1 5 ; y =1 5 ;p r intf (n%d n, x %=( y %=2 ) ) ;A、0 B、1 C、6 D、1 2【 答案】A1 3、设a、b、c、d均 是int类型变量,为了使以下程序段的输出为:

5、1 2 3 4 + 1 2 3 + 1 2 + 1 ,正确的输入形式应当是() os c a nf ( 4 l+ %3 d + %2 d + % ld , &a . &b , &c , &d ) ;p r intf ( %4 d + %3 d + %2 d + % I d , a , b , c , d ) ;A、1 2 3 4 1 2 3 1 2 1 V 回车C、1 2 3 4 + 1 2 3 4 + 1 2 3 4 + 1 2 3 4 c 回车【 答案】D1 4、设c l、c 2均是c ha r类型变量,A、s c a nf ( c l=%c c 2 =%c , &c l, &c 2 )

6、;C、p utc ha r ( c 2 ) ;【 答案】D1 5、逻辑运算符两侧运算对象的数据A、只能是0或1B , 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 回车D、1 2 3 4 + 1 2 3 + 1 2 + 1 回车则以下不正确的函数调用是()B、g c tc ha r ( )D、p utc ha r ( c l, c 2 )( ) 。B、只能是0或非0正数C、只能是整型或字符型数据 D、可以是任何类型的数据【 答案】D1 6、判断c ha r型变量cl是否为大写字母的正确表达式是( ) 。A、 A = A ) &( c l = A ) &( c l= Z ) D

7、、( A =c l)【 答案】C1 7、设i、j、和k是int型变量,且i=3 , j=4 , k =5 ,则以下值为0的表达式是( ) 。A ,i & j, B、i=jC、illj + k &j- k D . !( ( i = A & & c h = Z ) ? ( c h + 3 2 ) : c h的值是( ) 。A、Z B、A C、a D、z【 答案】C1 9、若希望当n u m的值为奇数时,表达式的值为“ 真” ,n u m的值为偶数时,表达式的值为“ 假 ” 。则以下不能满足要求的表达式是( ) 。A、num %2 =I B、!( num %2 =0 )C、!( num %2 ) D

8、、n u m % 2【 答案】C2 0、已知 long i=3 2 7 6 8 ;执行语句 p r intf ( d ” , i) ;屏幕显示( ) 。A、- 1 B、- 3 2 7 6 8 C、1 D、3 2 7 6 8【 答案】B1.2阅读程序题21、下面程序的输出结果是( ) 。#inc lud e m a in( ) int x =1 0 ; int x =2 0 ;p r intf ( %d , x ) ;)p r intf ( %d n” , x ) ;)A、1 0 , 2 0 B、2 0 , 1 0 C、1 0 , 1 0 D、2 0 , 2 0【 答案】B22、若a、b、c均为

9、int型变量,则执行以下程序段后的输出结果为(b =( a =1 0 , a + 5 , c =1 0 ) ;p r intf ( a =%d , b =%d , c =%d n, a , b , c ) ;c =( a =1 0 , b =5 , a + b ) ;p r intf (, ,a = % d,b =%d , c =%d n, a , b , c ) ;A、a =1 0 , b =1 5 , c =1 0B、a =1 0 , b =1 0 , c =1 0a =1 0 , b =5 , c =1 0a =1 0 , b =5 , c =I 0C、a =1 0 , b =1 0 ,

10、 c =1 0D、a =1 0 , b =1 0 , c =1 0a =1 0 , b =5 , c =1 5【 答案】c23、以下程序的输出结果是( ) 。m a in( ) int x =1 0 , y =1 0 ;p r intf (H% d %d n x- - - - ,- - - -y ) ;a =1 0 , b =5 , c =5iA、1 0 1 0 B、9 9【 答案】D2 4、以下程序的输出结果是() om a in( ) int n = l ;p r inlf ( %d % d %d n, n, n+ + , n- ) ;iC、9 1 0D、1 0 9/A . I l l B

11、 , 1 0 1【 答案】B2 5、以下程序的输出结果是( ) 。m a in( ) int x =0 x 0 2 f f , y =0 x 0 f f 0 0 ;p r inlf ( d n; ( x &y ) 4 I O x O O 5 f ) :)C、 1 1 0D、 I 2A、 1 2 7 B、 2 5 5C、 1 2 8D、 1【 答案】A26、下面程序的输出结果是()om a in( ) int a = 1 1 1 ;a =aAO O ;p r intf (n % d %o nn , a , a ) ;A、1 1 1 , 1 5 7 B、0 , 0 C、2 0 , 2 4 D、7

12、, 7【 答案】A27、以下程序的输出结果是( ) 。m a in( ) f loa t a ;a =l/ 1 0 0 0 0 0 0 0 0 ;p r intf (H% gH, a ) ;)A、O . O O O O O c + O O B、0 . 0 C、l. 0 0 0 0 0 c - 0 7 D、0【 答案】D1.3程序填空题28、下面程序的功能是不用第三个变量,实现两个数的对调操作。#inc lud e m a in( ) int a , b :s c a nf (M% d% dH, &a , &b ) ;p r intf ( a =%d , b =%d n, a , b ) ;a=

13、 ;b= ;a= ;p r intf ( a =%d , b =%d n, a , b ) ;【 答案】a+ b a -b a-b2控制结构2 .1基本概念1、以下正确的if语 句 是 ( ) 。A、if ( n 0 ) p r intf (H%r , n)p r intf ( %r , - n) :B、if ( n 0 ) n=n+ m ; p r intf (n%f , n) ; e ls e p r inlf (M%f , - n) ;C、if (n0) n=n+m; printf(% f,n););else printf(n%f,-n);D、if (n0) n=n+m; printf(

14、H%fn) ;else printf(%f-n);【 答案】B2、以下程序( ) 。m a in () int xl=3, x2=0, x3=0;if (xl=x2+x3)printfC1* * * *M);elseprintf( # # # #);)A、输出:* * * * B、输出:#C、存在语法错误 D、无输出结果【 答案】B3、为了避免在嵌套的条件语句ifelse中产生二义性,C语言规定:else子句总是与( ) 。A、缩排位置相同的if配对 B、其之前最近且不带else的if配对C、其之前最近的if配对 D、第一个if配对【 答案】B4、以下关于switch语句和break语句的描述

15、中正确的是( ) 。A、在switch语句中必须使用break语句B、break语句只能用于switch语句体中C、break语句只能用于循环语句中D、在switch语句中使用break语句或continue语句的作用相同【 答案】D5、若希望当A的值为奇数时,表达式的值为“ 真” ,A的值为偶数时,表达式的值为“ 假” 。则以下不能满足要求的表达式是() oA、A%2=1B、!(A%2=0)C、!(A%2)D、A%2【 答案】C6、已知int x=10,y=20,z=30;以下语句执行后x,y,z的 值 是 ( ) 。if( xy) z=x; x=y; y=z;A、x=10, y=20, z

16、=30C、x=20, y=30, z=10【 答案】B7、设有程 序 段 ( ) 。int x=10;while ( x=0) x=x-l;A、while循环执行10次C、循环体语句一次也不执行【 答案】c8 ,语句while ( !y)中的表达式! y等 价 于 ( ) 。B、D、B、D、x=20, y=30, z=30x=20, y=30, z=20循环是无限循环循环体语句只执行一次A、y=0 B、y!=l C、y!=0 D、y = l【 答案】A9、以下关于do-while循环不正确的描述是( ) 。A、dO-while的循环体至少执行一次B, do-while循环由do开 始 , 用w

17、hile结束,在while ( 表达式) 后面不能写分号C、在do-while循环体中, 一定要有能使while后面表达式的值变为零( 假 )的操作D. do-while的循环体可以是复合语句【 答案】B10、设 x、y 均是int类型变量,且 x 值 为 1 0 0 ,则关于以下for循环的正确判断是( ) 。for ( y=100; x!=y; +x,y+)printf ( *n) ;A、循环体只执行一次B、是无限循环C、循环体一次都不执行 D、for语句中存在语法错误【 答案】CII、以下程序段中的do-while循 环 ( ) om=-1;do m=m*m;while( !m) ;A、

18、是死循环 B、执行二次 C、执行一次 D、有语法错误【 答案】C12、以下关于for循环的正确描述是(A、for循环只能用于循环次数己经确定的情况B、for循环是先执行循环体语句,后判断表达式C、在for循环中,不能用break语句跳出循环体D、for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来【 答案】D13、语句for ( 表达式1 ; ; 表达式3) 等 价 于 ( ) 。A、for( 表达式1 ;0 ;表达式3) B, for( 表达式1: I ;表达式3)C、for ( 表达式1 ;表达式1 ;表达式3) D、for ( 表达式1 ;表达式3 ;表达式3)【 答案】B1

19、4、若 k 为整型变量,则以下for循环的执行次数是( ) 。for ( k=2; k = = 0 ;)printf( %d,k-) ;A、无限次 B、。 次 C、1次 D、2次【 答案】B15、以下程序段的执行结果是( ) 。int x=-3;do printf( %dn, x+) ;) while( !x) ;A、-3 B、-2 C、-1 D、陷入死循环【 答案】A16、以下程序段中是死循环的是( ) .A、int n=l;By int n=l;w h i l e ( ! n )n + + ;C i n t n = l ;d o n ;) w h i l e ( n ) ;D、f o r

20、( n = 5 ; nl;) ;d o n + + ;) w h i l e ( n ) ;【 答 案 】C17、以下 能 正 确 计 算1义2义3义X10的 程 序 段 是 () 。A、d oB、d o k= l ; n = l ; k= l ; n = 0 ;n = n * k;n = n * k;k+ + ;k+ + ;) w h i l e ( k = 1 0 ) ;) w h i l e ( k = 1 0 ) ;C、k = 1 ; n = 1 ;D、k= 1 ; n = 0 ;d od o n = n * k; n = n * k;k+ + ;k+ + ; w h i l e (

21、k = 1 0 ) ;【 答 案 】c1 8、若有以下程序段:f o r ( m = 1 ; m= 1 ( X ) ; m + + ) s c a n f ( d ” , & y ) ;i f ( y o )c o n ti n u e ;p r i n tf (n% 3 d , m ) ;) w h i l e ( k = 0时什么也不输出C、p r i n l f函数永远也不执行【 答 案 】D1 9、 以 下 程 序 段 等 价 于 () 。f o r ( k= 1 0 0 ; k = 2 0 0 ; k+ + ) i f ( k% 3 = = 0 )c o n ti n u e ;p

22、r i n tf (, % 4 d , k) ;D、)最多允许输出1 0 0个非负整数A、f o r ( k= 1 0 0 ; ( k% 3 ) & & k = 2 0 0 ; k- H - )p r i n tf ( % 4 dH, k) ;B、f o r ( k= 1 0 0 : ( k% 3 ) l l k = 2 0 0 ; k+ + )p r i n tf C % , k) ;C、f o r ( k= l 0 0 ; k = 2 0 0 ; k+ + )i f ( k% 3 ! = 0 ) p r i n tf C % 4 d , k) ;D、f o r ( k= 1 0 0 ; k

23、 3);printf(,%dn,a);)A、 1 B、2 C、【 答案】B21、下面程序的输出结果是()omain() chars12=Habook1;printf(%.4$,s);)A、a book! B、a book! 四个空格【 答案】C22、下面程序的输出结果是( ) 。main。( int a,b;scanf(%2d%3d,&a,&b):printf(na=%d b=%dn,a,b):A、a=12b=34 B、a=123 b=45【 答案】c23、以下程序的输出结果是( ) 。main() int a=0,b=l,c=0,d=20;if(a) d=d-10:else if(!b)if

24、(!c) d=15;else d=25;printf(d=%dn,d);1A、d=10 B、d=15【 答案】C3 D、4C a bo D、格式描述错误,输出不确定C、a=12b=345 D、语句错误C、d=20 D、d=2524、下面程序的输出结果为()omain()(int a=l,b=0:switch(a) case 1: switch (b) case 0: printf(*0*H);break;case 1: printf(* 1*):break;)case 2: printf(*2*);break;A、 *0*【 答案】BB、 *o*2*C、 *0*2*D、 有语法错误25、若执行

25、下述程序时从键盘输入34,则输出结果是() o#include main() int a,b,s;scanf(n%d%d;&a,&b);s=a;if (ab) s=b;s*=s;printf(,%dn,s*s);)A、186B、256C、 324D、400【 答案】B26、下面程序的输出是() omain() int x=l,y=0,a=0,b=0;switch(x)case 1: switch(y) case 0: a+; break;case 1: b+; break;)case 2: a+; b+; break;printf(a=%d.b=%dn,a,b);)A、 a=2,b= 1B、a

26、=l ,b= 1C、a= 1 ,b=0D、a=2,b=2【 答案】A27、下面程序的运行结果是( ) 。main( ) int m=0;while (m=2) m+;printf(n%d, m);)prinlf(n”);1A、 1 B、 1 2【 答案】c28、下面程序的输出结果是( ) 。main()(int x,i;for(i=l; i=100; i+) x=i;if(+x%2=0)if(+x%3=0)if(+x%7=0)printf(%d n,x);)IA、39 81 B、42 84【 答案】c29、下面程序的输出结果是( ) 。main() int k=0;char c=A,;do s

27、witch(c+) case A: k+; break:case B: k ;case C: k+=2; break;case D: k=k%2; contiuc;case E: k=k+10; break;default: k=k/3;)k+;while(c k=l B、 k=2【 答案】D30、在执行以下程序时,为了使输出结果为C、1 2 3 D、1 2 3 4C、26 68 D、28 70C、k=3 D、k=4则给a和b输入的值应满足的条件是( ) 。#include m a in () ini s,t,a,b;scanf(n%d,d,&a,&b);s=l;t=l;if (a0) s=s

28、+1;if (ab) t=s+t;else if (a=b) t=5;else t=2*s;printf(t=%dn,t);)A、 ab B、 ab() C、 0ab D、【 答案】c31、从键盘上输入”446755”时,下面程序的输出是( ) 。#include niain() int c;while (c=getchar()!=n) switch(c -2) case 0:case I: putchar(c+4);case 2: putchar(c+4): break:case 3: putchar(c+3):default: putchar(c4-2); break:)IprintfCA

29、n);A、 888988 B、 668966 C、 88898787 D、 66898787【 答案】c32、假定从键盘上输入”3.6,2.4 回车 ” , 下面程序的输出是( ) 。#include main() float x,y,z;scanf(%f,%f;&x,&y);z=x/y;while (1) if(fabs (z)1.0) x = y;y = z;z = x /y ;)else break;)printf (%fnu,y);0ab)A、1 . 5 0 0 0 0 0B、1 . 6 0 0 0 0 0C、2 . 0 0 0 0 0 0D、2 . 4 0 0 0 0 0【 答案】B

30、3 3、下面程序的输出结果是() om a i n。 i n t i , j , k= 1 0 ;f o r ( i = 0 ; i 2 ; i + + ) k+ + ; i n t k= 0 ;f o r ( j = 0 : j a m a x ) a m a x = x :i f ( ) a m i n =x ;s c a n f ( % f , & x ) ;)p r i n t f (, , n a m a x =% f n a m i n =% f n , a m a x , a m i n ) ;)【 答案】x = 0x a m i n3 5、下面程序的功能是输出1到1 0 0之间

31、每位数的乘积大于每位数的和的数。例如数字26,数位上数字的乘积1 2大于数字之和8。m a i n ( ) i n t n , k =l , s =0 , m ;f o r ( n =l ; n s) printf(”d”,n);)【 答案】 m = n m 0 m = m / 1 03 6 、下面程序的功能是统计用0至 9 之间的不同的数字组成的三位数的个数。main。 int i,j,k,count=0;for (i=l; i=9; i+)for (j=0; j=9; j+)if( ) continue:else for (k=0; k=9: k+)if ( ) count+:printf

32、(%d,count);)【 答案】 i =j k ! =i & & k ! =j3 7 、下面程序的功能是输出1 0 0 以内的个位数为6 、且能被3 整除的所有数。main() int i ,j;for (i=0: ;i+) j = i*10+6;if( ) countinue;printf(%d,j);)【 答案】 i =9 j % 3 ! =03 8 、下面程序的功能是计算1 0 0 至 1 0 0 0 之间有多少个数其各位数字之和是5 , 请填空。m ain () int i, s, k, count=0;for (i= 100: i=1000; i+) s=0; k=i;while

33、( ) s=s+k%10;k = ; if(s!=5) ;count+;)prinlf(%d, count);【 答案】k!= 0 k/10 continue39、以下程序的功能是求出下面算式中的X、Y、Z的值,请填空。算式: X Y Z+ Y Z Z532m a in () int x, y, z, k, result=532;for (x=l; x10; x+)for (y=l; y10; y+)for 匕二一一;一 ;z+)( k=(一 _)+(100*y+10*z+z);if (k=result)printf(,X=%d, Y=%d, Z=%dn,x,y,z);)【 答案】0 z101

34、00*x+10*y+z40、下面程序的功能是求1000以内的所有完全数,请填空。( 说明:一个数如果恰好等于它的因子之和( 除自身外) ,则称该数为完全数,例如:6= 1+2+3, 6为完全数。 )m a in () int a, i, m;for (z= 1; a=1000; a+)( for (_ i=a/2; i+)if(!(a% i)_;if (m=a) printf(%4d, a);)【 答案】i=l,m =0 m+=i3函数3 . 1基本概念1、以下正确的函数说明是( ) 。A、int fun(int a, b)B、float fun(int a; int b) C、double

35、fu n ( )D、int fun(char a )【 答案】c2、以下正确的函数形式是A、double fun l(int x, int y) z=x+y; return z; )C、funl(x, y) int x, y: double z;z=x+y;return z; )【 答案】D() oB、funl(int x, y) int z;return z ;)D double funl(int x, int y) double z;z=x+y;return z; )3、以下正确的说法是( ) 。A、实参和与其对应的形参各占用独立的存储单元B、实参和与其对应的形参共占用一个存储单元C、只有

36、当实参和与其对应的形参同名时才共用存储单元D ,形参是虚拟的,不占用存储单元【 答案】A4、以下正确的描述是( ) 。A、定义函数时,形参的类型说明可以放在函数体内B, return后面的值不能为表达式C、如果函数值的类型与返回值类型不一致,以函数值类型为准D、如果实参与形参的类型不一致,以实参类型为准【 答案】C5、C语言规定:简单变量做实参时,它和对应形参之间的数据传递方式是( ) 。A、地址传递 B、单向值传递C、由实参传给形参,再由形参传回实参 D、由用户指定传递方式【 答案】B6、以下程序存在语法性错误,关于错误原因的正确说法是( ) 。main( ) int A=5, b;void

37、 p_ch( ) ;b=p_ch( A );)A、语句voidp_ch( ) ;有错,它是函数调用语句,不能使用void说明B、变量名不能使用大写字母C、函数说明和函数调用语句之间有矛盾D、函数名中不能使用下划线【 答案】C7、C语言允许函数值类型的缺省定义,此时该函数值隐含的类型是( ) 。A、float【 答案】BB、int C、long D、double8、在一个源文件中定义的全局变量的作用域为( )0A、本文件的全部范围B、本程序的全部范围C、本函数的全部范围D、从定义该变量的位置开始至本文件结束【 答案】D9、以下正确的描述是( ) 。A、函数的定义可以嵌套, 但函数的调用不可以嵌套

38、B、函数的定义不可以嵌套,但函数的调用可以嵌套C、函数的定义和函数的调用均不可以嵌套D、函数的定义和函数的调用均可以嵌套【 答案】B1 0、若使用一维数组名作函数实参,则以下正确的说法是( ) 。A、必须在主调函数中说明此数组的大小B、实参数组类型与形参数组类型可以不匹配C、在被调函数中,不需要考虑形参数组的大小D、实参数组名与形参数组名必须一致【 答案】A11、如果在一个函数中的复合语句中定义了一个变量,则以下正确的说法是( ) 。A、该变量只在该复合语句中有效B、该变量在该函数中有效C ,该变量在本程序范围内有效D、该变量为非法变量【 答案】A3 .2阅读程序题12、下列程序的输出结 果

39、是 ()。去掉#in c l u d e v o id f u n ():v o id in a in ()(in t x =l ;if ( x = = I )(in t x =2;p r in t f ( “ % d” ,+x );)v o id f u n ()(p r in l ( d ,x +);)A、2,1,1 B、1,2,1 C、2,2,2 D、2,2,1【 答案】c13以下程序的运行结果是()。mai n( ) in t a = L k;f o r (k=0; k 6 6 6C、7 8 9D、7 9 11【 答案】A14、以下程序的运行结果是( ) 。#in c l u d e

40、v o id ffl( ) e x t e r n in t x , y ;in t a =15, b =10;x =a -b ;y =a +b ;)in t x , y ;mai n( )(in t a =7 , b =5;x = a +b ;y = a -b ;f f l();p r in t f (%d , %d n , x , y );)A、12,2 B、不确定 C、5,25 D、1, 12【 答案】c15、下面程序的输出结果是()。#in c l u d e f u n c (in t a ,in t b ) in t c :c =a +b :r e t u r n (c );)m

41、a in () in t x =6,y =7 ,z =8,r ;r = f u n c (x -,y +,x +y ),z -);p r in t f C%d n ; r ):1A、 11 B、20 Cs 21 D、31【 答案】c16、下面程序的输出结果是()o#in c l u d e in t k= 1;m a in () in t i=4;f u n (i);p r in t f (n %d , %d , i, k); /* */f u n (in t m ) m + = k ; k + = m; c ha r k = B;p r in t f (n %d , k-A); /* */p

42、 r in t f (n %d , % dn, m , k); /* */A) 4,1 B) 5,6 C) 4,6 D) A,B,C参考答案都不对A) 1 B) -59 C) -64 D) A,B,C参考答案都不对A) 5,66 B) 1,66 C) 5,6 D) A.B.C参考答案都不对【 答案】 CAC17、下面程序的输出结果是()o#in c l u d e v o id f u n (in t *s ) s t a t ic in t j = 0 ;d o s j+=s j+H ;)whil e (+j 2);)m a in () in t k,a 10= 1,23,4,5);f o

43、r (k=l ; k 3 ; k+)f u n (a );f o r (k=0; k 5 ; k+)p r in t f (d ” ,a k);)A、 35756 B、 23445 C、 35745 D、 12345【 答案】C3 .3 程序填空题18、下面程序的功能是根据近似公式: 2/61/12+1/22+1/32+ +l/n2,求 “ 值。#in c l u d e d o u b l e p i(l o n g n ) d o u b l e s =0.0:l o n g i;f o r (i=l ; i =n ; i+)s =s + ;r e t u m ( );【 答案】 1.0/

44、(float)(i*i) sqrt (6*s)19、下面程序的功能是用辗转相除法求两个正整数m 和 n 的最大公约数。hc f (in t m ,in t n ) in t r ;if (m n )(r= m; ;n =r :)r= m% n;whil e ( ) m= n; n =r : r= m% n; );)【 答案】m= n r !=0 r e t u r n (n )20、下面程序的功能是计算5 =贝 。#in c l u d e l o n g f u n (in t n ) in t i ;l o n g s = 1;f o r (i=l ; i ; i+)s *=i;r e t

45、 u r n ();m a in () in t k;l o n g s =0;s c a n f (n%d &k);s= ;p r in t f (%l d n ; s );(答案】v = n s f u n (k)4数组与指针4 .1基本概念1、以下为一维整型数组a的正确说明是()。A、in t a (10); B、in t n =10,a n ;C、in t n ; D、#d e f in e S IZ E 10;s c a n f (%d ,&n ); in t a S IZ E;in t a n ;【 答案】D2、以下对二维数组a的正确说明是()。A、in t a (3 ; B, f

46、 l o a t a (3,4);C、d o u b l e a l 4 D、f l o a t a (3)(4);【 答案】C3、若二维数组a有m列,则 计 算 任 一 元 素 在 数 组 中 位 置 的 公式为( ) (假设a 0位于数组的第一个位置上。)A、i*m +j B、j*m +i C i*m +j-l D、i*m +j+l【 答案】D4、有两个字符数组a、b ,则以下正确的输入语 句 是 ()。A、ge t s (a ,b );B、s c a n f (,%s %s ,a ,b );C、s c a n f (%s %sH,&a ,&b ); D、ge t s (” a ),ge

47、t s (b );【 答案】C5、下面程序段的运行结果是()oc ha r a 7 =,a b c d e f,;c ha r b 4=HABC;s t r c p y (a ,b );p r in t f (%c ,a 5);A、空格 B、0 C、e D、f【 答案】D6、判断字符串s i 是否大于字符串s 2 ,应当使用()。A、if (s l s 2) B、if (s t r c m p (s l ,s 2)C、if (s t r c m p (s 2,s 1 )0) D、if (s t r c m p (s 1 ,s 2)0)【 答案】BD7 , 在 C 语言中,引用数组元素时,其数组

48、下标的数据类型允许是()。A、整型常量 B、整型表达式 C、整型常量或整型表达式 D、任何类型的表达式【 答案】C8、若有说明:inta 10;则对数组元素的正确引用是().A、a 10J B、a 3,5 C、a (5) D、a 10-10【 答案】D9、在 C 语言中,一维数组的定义方式为:类型说明符 数 组 名 ( ) A、 常量表达式B、 整型表达式C、 整型常量或整型表达式D、 整型常量【 答案】A10、以下能对一维数组a 进行正确初始化的语 句 是 (A、in t a 10=(0.0,0,0,0); B、in t a 10= );C、in t a = 0); D、in t a 10=

49、 10*1 ;【 答案】C11、若有以下说明,并且OWklO,则 ( ) 是对数组元素的错误引用。in t a =( 1, 2, 3,4, 5, 6, 7 , 8, 9 , 10), *p =a , I;A、*(a +i) B、a p -a +i D、p +i D、*(&a i)【 答案】D12、若有说明:int a34;则对a 数组元素的正确引用是()A、a 2 4 B、a 1,3 C、a l +l 0 D、a 【 答案】C13、若有说明:int a34;则对a 数组元素的非法引用是()。A、a 0 2*l B、a l 3 C、a 4-2 0 D、a 0 4【 答案】D14、以下能对二维数组

50、a 进行正确初始化的语 句 是 ()oA、in t a 2 = l ,0,l ), 5,2,3); B、in t a 3= 1,2,3 , 4,5,6);C、in t a 2 4= l ,2,3), 4,5 , 6) ; D. in t a 3= 1,0,1), , 1,1 ;【 答案】B15、若有说明:inta34=0;则下面正确的叙述是()。A、只有数组元素a 可得到初值0 B、此说明语句不正确C、数组a中各元素都可得到初值,但其值不一定为0 D、数组a中每个元素均可得到初值0【 答案】D16、若有说明:inta4=0,0;则下面不正确的叙述是()。A、数组a中的每个元素都可得到初值0B、

51、二维数组a的第1维大小为1C、因为二维数组a中第二维大小的值除以初值个数的商为1 ,故数组a的行数为1D、只有数组元素a00和 可 得 到 初 值0 ,其余元素均得不到初值0【 答案】D17、若有说明:inta34;则数组a中各元 素 ()。A、可在程序的运行阶段得到初值0B、可在程序的编译阶段得到初值0C、不能得到确定的初值D、可在程序的编译或运行阶段得到初值0【 答案】B18、下面 程 序 ()。(每行程序前的数字为行号)1 main2 3 float a10=0.0);4 int i;5 for(i=0;i3;i+) scanf(%d,&a|i);6 for(i=l;i10;i+) a0

52、=a0+ai;7 printf(%fn,aO);8 )A、没有错误 B .第3行有错误 C、第5行有错误 D、第7行有错误【 答案】C19、对以下说明语句的正确理解是(int a 10=6,7,8,9,10);A、将5个初值依次赋给al至a5 B ,将5个初值依次赋给a0至a4C、将5个初值依次赋给a6至a10 D、因为数组与初值的个数不相同,所以此语句不正确【 答案】B20、以下不正确的定义语 句 是 (A、double x5=2.0,4,0,6,0,8,0,10.0;B, inty5=(0,l,3,5,7,9);C、charcl=r,2,3,4,5);D char c2=x 10,xa,8

53、;【 答案】B21、若有说明: 2口 3=1,2,3,4,5,6,7;则数组2第一维的大小是( ) 。A、2 B、3 C、4 D、无确定值【 答案】B22、若二维数组a有m列,则 在 前 的 元 素 个 数 为 ( ) 。A、j*m +i B、i*m +j C 、D、i*m +j+l【 答案】B23、定义如下变量和数组:in t k;in t a 3 3= 1,2,3,4,5,67 ,8,9 ) ;则下面语句的输出结果是( )f o r ( k=0; k 3; k+) p r in t f ( % du,a k 2-k) ;A、3 5 7 B、3 6 9 C、1 5 9 D、1 4 7【 答案

54、】A24、若有以下程序段:in t a = 4,0,2,3,lf o r (i=l ; i=0 & & t a j) a j+l =a | j; j-; )a j+l =t ; 则该程序段的功能是( )。A 、对数组a进行插入排序( 升序) B、对数组a进行插入排序( 降序)C、对数组a进行选择排序( 升序) D、对数组a进行选择排序( 降序)【 答案】B26、对两个数组a和b进行如下初始化cha r a = A B C D E F ;cha r b = A ,B ,C ,D ,E ,F ;则以下叙述正确的是( )。A、a与b数组完全相同 B、a与b长度相同C、a和b中都存放字符串 D、a数组

55、比b数组长【 答案】D27、有两个字符数组a、b , 则以下正确的输入语句是()oA、ge ts (a ,b ); B、s ca n f(,%s %s ,a ,b );C、s ca n f(%s %s ,&a ,&b ); D、ge ts (an); ge ts (nb );【 答案】B28、有字符数组a80和 b 8 0 ,则正确的输出语句是()。A、p uts (a .b ); B、p r in tf(%s ,%sn,a ,b );C p itcha r (a ,b ); D、p uts (a ); p uts (b );【 答案】D29、下面程序的运行结果是()。cha r a 7 =

56、a b cde r ;cha r b 4 = A B C ;s tr cp y (a ,b );p r in tf(,%c,a 5 );A、 B、0 C、e D、f(注:选择项A 表示输出为空格)【 答案】D30、有下面的程序段cha r a 3 ,b = C hin a ;a = b :p r in tf(%s ,a );贝 i j ( ) A、 运行后将输出C hin a B、运行后将输出C h C、运行后将输出C hi D、编译时出错【 答案】D31、判断字符串a 和 b 是否相等,应当使用()。A、if(a = = b ) B、if(a = b ) C if(s tr cp y (a

57、,b ) D、if(s tr cm p (a ,b )【 答案】D32、判断字符串s i 是否大于字符串s 2 ,应当使用( ) 去掉,与 6 重复A if(s l s 2 ) B、if(s tr cm p (s l ,s 2 ) C、if(s tr cm p (s 2 .s l ) 0) D、if(s tr cm p (s l ,s 2 0)【 答案】D3 3 设有定义:int a=l, *p=&a; float b=2.0; char c士A ;,以下不合法的运算是()。A、p +; a -; C、b +; D、c-;【 答案】A40、设有一段程序:in t *v a r , a ;a =

58、 1 0 0 ; v a i & a ;a=*var+10; 执行上面程序段后a 的值为()。A.120 B.110 C.100 D.90【 答案】B41、 以下程序执行后a 的 值 为 ()。m ain () int a, m=2, k= 1, *p=&k;a=p!=&m;printf(n%dnn,a);)A、-1 B、0 C、1 D、2【 答案】c42、以下对指针变量的操作中,不正确的是()。A、int p, *q; q=&p; B、int *p, *q; q=p=NULL;C、int a=5, *p; *p=a; D、int a=5, *p=&a, *q=&a; *p=*q;【 答案】C

59、43若有语句:int a=4, *p=& a;,下面均代表地址的一组选项是()。A、a, p, &*a B、*&a, &a, *p C、&a, p, &*p D、*&p, *p, &a【 答案】c44、以下判断正确的是( ) A、char *s=string;等价于 char *s; *s=,string;B、charstr 10=string) ; 等价于charstr10; str=string;C、char *s-string1; 等价于 char *s; s=string;D、char str10=string,1 ;等价于 charstr10; *sg”strint;【 答案】C45

60、、以下运算正确的程序段是()oA、char strl=ABCDE, str2=abcdef; strcpy(strU str2);B、char str10, *st=abcde,; strcat(str, st);C、char *stl=ABCDSu, *st2=abcde; strcat(stl,st2);D、char str10=,n, *st=,abcdeM; strcat(str, st);【 答案】D46、以下能正确进行字符串赋值操作的是()。A、chars5=n 12345);B、chars5=T ,2,3,4,5;C、char *s; *s=M12345;D、char *s=M

61、12345;【 答案】D47、以下能正确读入字符串的程序段是()oA、char *p; scanf(%sn, p);B、char str 10; scanf(%s, &str);C、char str10, *p; p=str; scanf(%s, p);D、char str10, *p=str; scanf(,%s, pl);【 答案】c48、 若有语句: char sl =Shenyang”, s210,*s3, *s4=,NEU_softM; 则对库函数 strcpy 调用正确的是()oA、strcpy(sL s4);B、strcpy(s2, s4); C、strcpy(s3, si);D

62、、strcpy(s4,si);【 答案】D4 9、下面程序段的运行结果是()ochar strl O=output;printf(,%s,n str);A、output B output C、Voutput D、编译出错【 答案】B5 0、若有以下语句,则对x数组元素引用不正确的是()。int x = 1, 2, 3, 4, 5, 6), *ptr;ptr=x;A、*(-ptr) B、*(ptr-) C、*(ptr+) D、*(+ptr)【 答案】A5 1、若有定义:in ta 2 3 ; ,则以下对a数组元素地址的正确表示为()。A、*(a+l) B、*(al+2) C、al+3 D、a00

63、【 答案】A5 2、若有定义:in ti,x3 4 ; ,则不能将的值赋给变量i的语句是()。i=xll B、i=*(*(x+l) C、i=*(*(x+l)+l) D、i=*(xl+l)【 答案】B5 3、若有定义:in tx1 0,*p = x; ,则*(p +5 )表 示 ()。A、数组元素x5的地址 B、数组元素a5的值C、数组元素a的地址 D、数组元素a6J的值【 答案】B5 4、执行以下程序段后,y的 值 是 ()。inta =(1,3,5,7,9)int x=0, y=l, *ptr;ptr=&al;while (!x) y+=*(ptr+x); x + + ; )A、1 B、2

64、C、4 D、24【 答案】c5 5、设有以下定义:cha r *ch2 = a b c, xy z ); ,则以下正确的叙述是()。A、数组c h的两个元素中分别存放了字符串“abc和“xyz”的首地址B、数组c h的两个元素分别存放的是含有3个字符的 维字符数组的首地址C、c h是指针变量,它指向含有两个数组元素的字符型一维数组D、数组c h的两个元素的值分别是“abc和“xyz”【 答案】A5 6、若有说明:cha r *p c = a a a , b b b , ccc, ddd); ,则以下叙述正确的是()。A、*pc代表的是字符串”aaaB、*pc代表的是字符*C、pc代表的是字符串

65、aaaD、pc0代表的是字符H【 答案】B5 7、以下函数Abe的功能是()。int Abe (char *ps)(cha r *p ;P= p s ;whil e (*p +);r e tur n (p -p s );)A、计算字符串的长度 B、比较两个字符串的大小C、实现字符串的复制 D、以上三种说法都不对【 答案】D4 .2阅读程序题58、下面程序的输出结果是()。#in cl ude m a in () in t n 3 3 , i,j;fo r (i= 0: i 3 : i + + )fo r (j= 0: j 3 : j+)n ij= i+j;fo r (i= 0; i 2 ; i

66、-H -)fo r G = 0; j 2 ; j+)n i+l U+l += n iU;p r in tf(n%dn , n ij):)A、 1 4 B、 0 C、 6【 答案】c59、下面程序的运行结果是()。# in cl ude # in cl ude m a in ()D、 不确定 cha r *p l , *p 2 , s tr 5 0= *a b c;p l = a b cM; p 2 = a b c,;s tr cp y (s tr +1 , s tr ca t (p l , p 2 );p r in tf (%s n , s tr );)A、 a b ca b ca b c B

67、、 b ca b ca b c C、 a a b ca b c D、 ca b ca b c【 答案】c60、下面程序的运行结果是()。# in cl ude v o id s e l e ct (cha r *s ) in t i, j; cha r *t;t= s ;fo r (i= 0, j= 0: *(t+i)!= 0,; i+)if (*(t+i) = 0&*(t+i) ,则下面程序的运行结果是()。# include char fun (char *s) if (*s=A,) *s+=l;return *s;main () char c80 *p=c:gets (c);while

68、(*p) *p=fun(p);putchar (*p);P+; )printf (,n,):)A、mZ bPPk B、my book C、Ny Cook D、My Book【 答案】c62、当运行以下程序时,从键盘输入:GOODc回车TEACHSET回车)ROOMc回车则 程 序 的 运 行 结 果 是 。#include #include m ain () int i;char str10, temp10=Computer;for (i=0; i4; i+) gets(str);if (strcmp(temp, str)=l);for (b=a-1: b=0; b-)printf(%dH,

69、xb);printf(,nM);)【 答案】1 1 1 04 .3程序填空题6 4、下面程序的功能是读入2 0个整数,统计非负数个数,并计算非负数之和。#include stdio.hmain() int i , a20, s , count;s=count=0;for(i=0; i20; i+)for(i=0; i20; i+) if(ai0)一;s+=ai:count+;printf (s=%dt count=%dn, s, count);【 答案】&a i co n tin ue6 5、下面程序的功能是将字符串s中的每个字符按升序的规则插到数组a中, 字符串a已排好序。#include

70、main() char a20=cehiknqtw,;char s=fbla:int i , k , j ;for(k=0; sk!= W ; k+)( j= o ;while(sk=aj & aj!=W )j+;for( ) :aj=sk;)puts(a);)【 答案】 i=strlen(a); i=j; i - ai+l=ai66、 下面程序的功能是对键盘输入的两个字符串进行比较, 然后输出两个字符串中第一个不相同字符的ASCII码之差。例如:输入的两个字符串分别为abcdefg和abceef,则输出为-1。#includc main() char strll00,str2|100|,c;

71、int i, s;printf(uEntcr string 1: ); gets(strl);printf(Enter string 2: *); gets(str2);i=O:while ( (strli = str2i & strli!= ) ) i+;s = ;printf(n%dnH, s);【 答案】 ,O strli-str2i67、下面的函数expand在将字符串s 复制到字符串t 时, 将其中的换行符和制表符转换为可见的转义字符表示,即用、 n俵示换行符,用、 r表示制表符。expand(char s,char t) int i , j;for(i=j=0; si!= W ;

72、i+)switch (si) case n: t = :t|j+ = n;break;case M: t 二 ;tU+ = r ;break;default: t = si:break;)tj= ;【 答案】 j+ + j+ + * j+ + 068、下面程序将二维数组a 的行和列元素互换后存到另一个二维数组b 中。请填空。m ain () int a23=l,2,3),4,5,6);intb32, i,j;printf(array a:nH);for (i=0; i=l; i+) for (j=0 ;;j+) printf(%5d, aij);;printf(nu);)printf(arra

73、y b:n);for ( i= 0 ; i+) for(j=0; j=l; j+)printf(n%5d, bij);printf(n);)【 答案】 j=2 bji=aij i=269、下面程序的功能是将二维数组a 中每个元素向右移列,最右一列换到最左一列,移后的数组存到另一个二维数组b 1 3 并按矩阵形式输出a 和 b。请填空。例如:4 5 6 , 6 4 5CL b1 2 3 3 1 2m a in () static int a23=4, 5, 6, 1,2, 3;int b23, i, j;printf(uarray a:n);for (i=0; i=l; i+) for (j=0

74、; j3; j+) printf(%5d,ai|j); 一 ;)printf(HnH);)for (_ ; _ ; i+)bi0=ai2;printf(array b:nH);for (i=0; i2; i+) for(j=0;j3;j+)printf(5d”, bi皿 ) ;_ _ ;)【 答案】 bi|j+l=aij i=0 i2 printf(Rn”)70、下面程序的功能是检查一个二维数组是否对称( 即对所有的aiU=aji)。请填空。m a in () static inta44= 1,2,34,2,2,5,6,3,5,3,7,4,6,7,4;int i, j, found=0;for

75、 (j=0; j4; j+)for(_ _ ; i4; i+)if(aiU!=aji) _ ;break;)if (found)printf(No);elseprintfCs,);)【 答案】 i = j + l f ound = l7 1 、下面程序的功能是在一个字符数组中查找一个指定的字符,若数组中含有该字符则输出该字符在数组中第一次出现的位置( 下标值) ;否则输出#include #include m a in () char c=a t|50;int n, k, j;gets(t);n = _ .;for (k=0; kn; k+)if (_ _ )j=k; break; else

76、j=-1;printf(n%dn,j);)【 答案】strle n tk = = c7 2 、下面程序的功能是用递归算法将一个整数按逆序存放一个字符数组中。如 1 2 3 存放成“ 3 2 1 ” ,请选择填空。# include void convert (char *a, int n) int i;if (i=n/10) !=0) convert (_ _ , i);)main () int number;char str10=,M;scanf ( %dn, &number);convert (str, number);puts (str);) A、a+ B、a+1 C、a D、a-1 A

77、、n/10 B、n%10C、n/10+0 D、n%10+0【 答案】BD7 3、下面程序的功能是使用冒泡法对输入的1 0个浮点数从小到大进行排序。排好序的1 0个数分两行输出。程序如下:# include main() ;int i,j ;printf(Input 10 numbers pleasenH);for(i=0; _ _ _ ; i+)scanf(M% f;& ai);printfCAn);for(i=2; _ ( )_ ; i+)for (j=0: _ _ : j+)if(_ _ )I x=aj:_ _ ;aj+1 =x ;)printf(The sorted 10 numbers

78、; n):for(i=0: ; i+) if(_ )printf(nn);printf(ft”,ai);)printfCXn1);)【 答案】 f loa t a 1 0 , x i = 9 i = 8 j a | j + l a j = a | j + l i = 9 i % 5 = = 07 4、下面程序的功能是从键盘接收一个字符串,然后按照字符顺序从小到大进行排序,并删除重复的字符。请选择填空。# include # include main ()(char string100, *p, *q, *r, c:printf ( Please input a string:);gets (s

79、tring);f b r ( p = stri ng ; * p ; p + + ) f b r ( q= r= p ; * q: q+ + )i f ( 一_ ) r= q:i f ( _ ) c = * r; * 匚*p ; * p = c ; f or ( p = stri ng ; * p ; p + + ) f or ( q= p ; * p = = * q; q+ + )strc p y ( _ ,q ) ;p ri ntf ( re sult: % s n , , stri ng ) ;) A * r * q * r * p C、n q D r p A、r= = q B、r! =

80、 q C、p ! = q D、r! = p A、p + + B、p C、p - 1 D、p + 1【 答案】ADD7 5、下面程序的功能是将字符串a分段传送到字符串b中。要求在每五个字符后插入一个逗号,以示分段。例如字符串a为 a b c d e f g 1 2 3 4 5 ” ,则字符串b为 a b c d e , f g l2 3 , 4 5 ” ,请选择填空。# i nc lud e ma i n ( ) i nt i , k = 0:c h a r a 80 , b 80 , * p ;p = a ;g e ts ( p ) ;w h i le ( * p ) f b r ( i =

81、l; _ _ ; p + + , k + + , i + + )b k = * p ;i f (_) b k = ; ; k + + : )b k = * 0 ;p uts ( b ) ;) A、i 5 B、i = 5 C、i 5 & & * p ! = W D、i = 5 & & * p A、i = = 6 B、* P= =W C、! * p D、i ! = 6【 答案】DA五结构体与预定义5 .1 基本概念1、以下关于预处理的叙述中不正确的是( ) 。A、C源程序中凡是以号开始的控制行都是预处理命令行B、预处理命令行必须位于源程序的开始部位C、一条有效的预处理命令行必须单独占据一行D、预处

82、理命令是在正式编译之前先行被处理的【 答案】B2、以下关于文件包含的描述中正确的是( ) 。A、每个C程序必须包含预处理命令:# i nd ud e B、i n c l u d e后面的文件名用双引号( ) 括起和尖括号( ) 括起完全等效C、f f i n c l u d e命令行可以出现在源程序中需要的任何地方D、用#i n c l u d e所包含的文件称为头文件,必须以. h作为扩展名【 答案】C3、以下有关宏替换的叙述不正确的是( ) 。A、宏名不具有类型 B、宏名必须用大写字母表示C、宏替换只是字符替换 D、宏替换不占用运行时间【 答案】B4、C 语言的编译系统对宏命令的处理是(

83、) 。A、在对源程序中其它成分正式编译之前进行的B、和C程序中的其它语句同时进行的C、在程序连接时进行的D、在程序运行时进行的【 答案】A5、以下程序运行后,输出结果是( ) 。# d e f i n e A D D ( x ) x +xmain()(i n t m = l , n = 2 , s = 3 ;S * = A D D ( m +n ) ;p r i n t f ( s = % d n , s ) ;)A、s=8 B、s=9 C、s=6 D、s=18【 答案】D6、当定义一个结构体变量时系统分配给它的内存是( ) 。A、结构中第一个成员所需的内存量 B、结构中最后一个成员所需的内存

84、量C、结构体成员中占内存量最大者所需的容量 D、结构体中各成员所需内存量的总和【 答案】D7、设有以下说明语句,则下面的叙述不正确的是( ) 。s t r u c t a b c i n t m; f l o a t n ; s t y p e ;A、s t r u c t是结构体类型的关键字C、m和n都是结构体成员名【 答案】B8、执行以下程序后,m 的 值 是 ( ) 。# d e f i n e M I N ( x , y ) ( x ) ( y ) ? ( x ) : ( y )main()B、a b c是用户定义的结构体类型名D、s t y p e是用户定义的结构体变量名 i n t

85、 i = 1 2 , j = 8 , m ;p r i n t f ( % d n , m ) ;)A、1 2 0B、8 0C、1 2D、8【 答案】D9、以下在任何情况下计算两数积时都不会引起二义性的宏定义是( ) 。A、# d e f i n e M UL ( x , y ) x * y B、# d e f i n e M UL ( x , y ) ( x ) * ( y )C、# d e f i n e M UL ( x , y ) ( x * y ) D、# d e f i n e M UL ( x , y ) ( ( x ) * ( y ) )【 答案】D10、C语言结构体类型变量在

86、程序执行期间()A、所有成员一直驻留在内存中 B、只有一个成员驻留在内存中C、部分成员驻留在内存中 D、没有成员驻留在内存中【 答案】A11、设有如下定义,若要使p x指向rec中的x域,正确的赋值语句是( ) 。s t r u c t a a i n t x ; f l o a t y ; r e c , * p x ;A、* p x = r e c . x ; B、p x = & r e c . xC、p x = ( s t r u c t a a * ) r e c . x D p x = ( s t r u c t a a * ) & r e c . x ;【 答案】D12、若要使指针

87、变量p指向一个动态开辟的字符型存储单元,则空中应选择填入的是( ) 。c h a r * p ;p= m a l l o c ( s i z e o f ( c h a r ) ) ;A、c h a r B、c h a r * C ( * c h a r ) D、( c h a r * )【 答案】D13、当说明一个共用体变量时系统分配给它的内存是( ) 。A、共用体中第一个成员所需内存量 B、共用体中最后一个成员所需内存量C、共用体成员中占内存量最大者所需的容量 D、共用体中各成员所需内存量的总和【 答案】C14、以下对C语言中共用体类型数据的叙述正确的是()oA、可以对共用体变量名直接赋值

88、 B,共用体类型定义中不能出现结构体类型的成员C、一个共用体变量中不能同时存放其所有成员D、一个共用体变量中可以同时存放其所有成员【 答案】C15、下面对typedef的叙述中不正确 的 是 ( ) 。A、用t y p e d e f不能定义变量名 B、用t y p e d e f可以定义新的数据类型C、用t y p e d e f只是将已存在的类型用一个新的标识符来代表D、使用t y p e d e f有利于程序的通用和移植【 答案】B5 .2阅读程序题16、下面程序的运行结果是# d e f i n e PR ( a r ) p r i n t f ( % 3 d , a r ) ;mai

89、n() i n t j , a = l , 3 , 5 , 7 , 9, 1 1 , 1 3 , 1 5 ) , i = 5 ;for (j=3;j; j-) switch (j)( case 1:case 2: PR(ai+); break;case 3: PR(a i);)【 答案】9 9 1117、以下程序的运行结果是 o#define A 4#define B(x) A*x/2m a in () float c, a=4.5;c=B(a);printf(”5.1fn, c);)【 答案】9.018、已知学生记录描述如下,下面对结构体成员computer”的赋值方式正确的是( ) 。st

90、ruct student int num;char name8;struct float math;float engl;float computer; mark; std;A、puter=84; puter=84;C、puter=84; D、putei84;【 答案】c19、下面程序的运行结果是( ) 。main ( ) struct cmplx int x;int y;) cm2=l, 2, 3, 4);printf(%dn, 2*cm0.x+cml.y/cm0.y);)A、5 B、2 C、3【 答案】D20、以下 程 序 的 运 行 结 果 是 。m a in () struct int

91、 a; int *b; s4, *p;int n=5, i;for (i=0: ia);printf(%dn, (p+)-a);)【 答案】9,95 . 3程序填空题21、以下程序拟输出结构体变量ttt所占内存单元的字节数,请填空。m a in () struct int i;double x;char a 10;ttt;printfCttt size: %d n* );)【 答案】sizeof (ttt)六文件6 . 1 基本概念1、若执行fopen函数时发生错误,则函数的返回值是( ) A、随机值 B、1 C、NULL D、EOF【 答案】C2、若用fopen打开一个新的二进制文件,要求文

92、件既能读又能写,则应选用的文件方式字符串是( ) oA、wb+ B、r+ C、rb+ D、ab+【 答案】A3、当正常执行了文件关闭操作时,fclose函数的返回值是( ) 。A, -1 B、随机值 C、0 D、1【 答案】C4、函数调用语句:fseek( fp, 10L, 2) ;的含义是:将文件位置指针( ) 。A、移动到距离文件头10个字节处 B、从当前位置向后移动10个字节C、从文件尾部前移10个字节 D、移到离当前位置10个字节处【 答案】c5、函数rewind(fp)的作用是:使文件位置指针 ( ) 。A、重新返回文件的开头 B、返回到前一个字符的位置C、指向文件的末尾 D、自动移

93、至下一个字符的位置【 答案】A6、函数 fgets(string,m,fp)的作用是( ) 。A、从fp所指向的文件中读取长度不超过m的字符串,存入由指针string指向的内存区域B、从fp所指向的文件中读取长度为m的字符串存入由指针string指向的内存区域C、从fp所指向的文件中读取m个字符串,存入由指针string指向的内存区域D、从fp所指向的文件中读取长度不超过m-1的字符串,存入由指针string指向的内存区域【 答案】D7、系统的标准输入文件 是 指 ( ) 。A、键盘 B、显示器 C、软盘 D、硬盘【 答案】A6 .2 阅读程序题8、若有以下定义和函数说明,以下不能将文件内容读

94、入数组x 中的语 句 是 ( ) 。struct ss int n; float x; )x30;FILE *fp;A、for(i=0; i10; i+)fread(&xi, sizeof(struct ss), IL, fp);B、for(i=0; i10; i+, i+)fread(&xi, sizeof(struct ss), 2L, fp);C、for(i=0; i30; i+)fread(&xi, sizeof(struct ss), IL, fp);D、fread(x, sizeof(struct ss), 30L, fp);【 答案】c9、设有以下结构体类型数组的定义,且数组mi

95、ni的 10个元素都已赋值,若要将这些元素写到文件 fp 中,以下不正确的形式是( ) 。struct abc int a; char b; float c|4; mini10|;A、fwrite(mini, 10*sizeof(structabc), 1,fp);B、fwrite(mini, 5*sizeof(struct abc), 2, fp);C、for(i=0; i10; i+) fwrite(mini, sizeof(struct abc), 1 ,fp);D、fwrite(mini, sizeof(struct abc), 10, fp);【 答案】c6 .3 程序填空题10、下

96、面程序用以统计文件中小写字母a 的个数,请填空.#includemain( ) FILE *fp;char m; long n=0;if ( (fp=fopen(letter.txt nr)=NULL)printf(cannot open fllen); exit(O); while( 一一 ) m = _ (2 )_ ;if(m=a) 一一;printf(,n=%ldnH, n);fclose (fp);)【 答案】! f e o f ( f p ) f g e t c ( f p ) n + +1 1、下面程序从键盘输入字符存放到文件中,用# 结束输入。存放字符的文件名也由键盘输入,请填空

97、。#includem a in ()FILE *fp;char ch, fnamc10;printf(Input name of filen);gets(fname);if (fp=fopen(_ _, w)= =NULL) printf(4icannot openn); exit(O); printf(t4Enter character:nM);w hile(_ _!=#)fputs(ch,- _ ) ;fclose(fp);)【 答案】f n a m e ( c h = g e t c h a r ( ) ) f p1 2、以下程序的功能是将文件e x a m l . c的内容复制到e x a m 2 . c中,请填空。#includem a in () FILE fpl,fp2;fpl=fbpen(_ 一 ) ;while (!feof(fpl)fclosw(fpl); fclose(fp2);)【 答案】 e x a m l . c ” ,T “ e x a m 2 . c “ , “ w” f g e t c ( f p l ) , f p 2

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号