c语言笔试题总结

上传人:彩*** 文档编号:74799144 上传时间:2022-04-14 格式:DOCX 页数:32 大小:158.13KB
收藏 版权申诉 举报 下载
c语言笔试题总结_第1页
第1页 / 共32页
c语言笔试题总结_第2页
第2页 / 共32页
c语言笔试题总结_第3页
第3页 / 共32页
资源描述:

《c语言笔试题总结》由会员分享,可在线阅读,更多相关《c语言笔试题总结(32页珍藏版)》请在装配图网上搜索。

1、一、选择题 (1) (10) 每小题 2 分,(11) (50) 每小题 1 分,共 60 分 )下列各题 A) 、B)、C)、D) 四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。(1) 在数据结构中,从逻辑上可以把数据结构分为。A)动态结构和静态结构B)紧凑结构和非紧凑结构C)线性结构和非线性结构D) 内部结构和外部结构答案: C评析:逻辑结构反映数据元素之间的逻辑关系,线性结构表示数据元素之间一对一的关系,非线性结构表示数据元素之间一对多或多对一的关系。(2) 若进栈序列为l,2 ,3,4,进栈过程中可以出栈,则下列不可能的一个出栈序列是。A)1

2、,4,3,2B)2, 3,4 , lC)3,1, 4, 2D)3 ,4, 2,1答案:C评析:栈是一种后进先出表,选项c 中,先出栈的是3 ,说明此时栈内必然有先于 2 进栈,所以l 不可能在2 之前出栈,故选项C 这种出栈序列是不可能的。1,2,由于l(3) 排序方法中,将整个无序序列分割成若干小的子序列并分别进行插入排序的方法,称为。A)希尔排序B)冒泡排序C)插入排序D)选择排序答案: A评析:希尔排序法的基本思想是:将整个无序序列分割成若干小的子序列分别进行插入排序。(4) 在顺序表 (3,6 ,8 ,10,12, 15 ,16,18, 21,25,30) 中,用二分法查找关键码值11

3、,所需的关键码比较次数为。A)2B)3C)4D)5答案:C评析:二分法查找是用关键码与线性表的中间元素比较, 然后根据比较结果来判断是结束查找,还是在左边或者右边子表按相同的方法继续查找。本题中,与 ll 比较的关键码分别为15, 8, 10 ,12 四个。(5) 对于 n 个结点的单向链表(无表头结点 ),需要指针单元的个数至少为。A)n-1B)nC)n+lD)2n答案: C评析:在 n 个结点的单向链表 (无表头结点 )中,每个结点都有一个指针单元 (即指针域 ),加上头指针,至少需要 n+1 个指针单元。(6) 在软件开发过程中,软件结构设计是描述。A)数据存储结构B)软件体系结构C)软

4、件结构测试D)软件控制过程答案:B评析:从工程管理角度来看,软件设计分两步完成:概要设计和详细设计。概要设计 (又称结构设计 )将软件需求转化为软件体系结构、 确定系统级接口、 全局数据结构或数据库模式。(7) 模块本身的内聚是模块独立性的重要性度量因素之一。在 7 类内聚中,具有最强内聚的一类是。A)顺序性内聚B)过程性内聚C)逻辑性内聚D)功能性内聚答案:D评析:内聚性是一个模块内部各元素间彼此结合的紧密程度的度量。内聚共有 7 类,它们之间的内聚性由弱到强排列顺序为: 偶然内聚、 逻辑内聚、 时间内聚、 过程内聚、 通信内聚、顺序内聚和功能内聚。(8) 数据存储和数据流都是,仅仅是所处的

5、状态不同。A)分析结果B)事件C)动作D)数据答案: D评析:数据流图有 4 种成分:源点或终点、处理、数据存储和数据流。数据存储是处于静止状态的数据,数据流是处于运动中的数据。(9) 数据的完整性是指数据的正确性、有效性和。A)可维护性B)独立性C)安全性D)相容性答案: D评析:数据模型的完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态及其状态的变化, 以保证数据的正确性、 有效性和相容性。(10)关系代数运算是以为基础的运算。A)关系运算B)谓词运算C)集合运算D)代数运算答案:C评析:关系代数运算是以关系代数作为运算对象的一组高级运算的集

6、合。 它的基本操作是并、交、差、笛卡尔积,另外还包垂直分割 (投影 )、水平分割 (选择 )、关系的结合 (连接 )等。(11)能将高级语言程序转换成目标语言程序的是。A)调试程序B)解释程序C)编译程序D)编辑程序答案:C评析:用高级语言编写的程序称为“源程序 ”,而计算机只能识别和执行由0 和 l 组成的二进制指令,所以高级语言必须先用一种称为“编译程序 ”的软件,把源程序翻译成二进制形式的“目标程序 ”。(12) _是构成 c 语言程序的基本单位。A)函数B)过程C)子程序D)子例程答案: A评析:c 程序是由函数构成的。 一个函数和若干个其他函数,因此,函数是c 源程序至少包含一个c

7、程序的基本单位。main函数,也可以包含一个main(13)可以在C 语言中用做用户标识符的是。A)voidB)as_b3C)forD)2cdefine_123-abcDoWORDIfcasSIG答案:B评析: c 语言规定,标识符只能由字母、数字和下划线三种符号组成,而且第一个字符必须是字母或下划线。 另外还需要注意的是关键字不能作标识符。 选项 A 中 void ,C 中关键字, D 中 2c 以字母开头。for都为(14)若有以下类型说明语句:char w ; int x ; float y , z;则表达式w*x+z-y的结果为类型。A)floatB)charC)intD)double

8、答案:A评析: 在进行运算时,不同类型的数据参加运算,需要先将其转换成同一类型的数据,然后再进行运算。转换的顺序由低到高为:char , short int unsigned long double float ,故结果为 float 型。(15)main()float x=123A56;printf( -5“n ” ,x);以上程序输出的结果是。A)123 4B)123 5C)123 45D)123 46答案: D评析: f 格式符,用来输出实数,以小数形式输出。 “ -m nf ”的含义是:输出数据共占 m 列,其中 n 位小数,如果输出位数小于 m 。则右端补空格。如果总长度大于列数,则

9、按实际情况四舍五入输出。(16)下面语句的输出结果是。Printf( d“ n ” ,strlen( t ”“ 065 xff n ”;)A)14B)8C)5D)输出项不合法,无正常输出答案: C评析:在 c 语言中,以 “ ”开头的字符均为转义字符,其中 “ ”后可跟 l 3 位八进制数或在“ ”后跟字母 x 及 l 2 位十六进制数,以此来代表一个特定的字符。(17)下列程序的输出结果是。main()int a=0 , b=0 , c=0 ;if(+a0lI+b0)+c;printf(na=“ d , b= d, c= d ”, a,b , C);A)a=0,b=0, c=0B)a=l ,

10、 b=l,c=1C)a=l,b=O, c=ID)a=0, b=1 c=1答案:C评析:“ ”是或运算,它有个 “短路 ”的特点需特别注意,当 “ ”运算符左边的表达式的值为真时,则程序就不再对 “ ”右边的表达式的值进行运算, 而是使得整个表达式的值直接为真。(18)下列程序的输出结果是。Main()int i ;for(i=1 ; i+l ; i+) if(i4)printlf( d ”,i+)”; break ;printf( d“”,i+) ;A)55B)56C)程序错误,没有输出D)循环条件永远为真,死循环答案: B评析:本程序中有个 for 循环,但注意到 for 循环的条件是 “i

11、+l,”也就是只要 i+l 的值为真 (非零值均为真 ),就执行循环。当 i=l 的时, i+l 的值为真,判断 if 条件不成立,执行 i+ ,输出 i 的值为 5。(19)下列程序的输出结果是。#define A 100main()int i=O,sum=O;doif(I=(i 2)*2)continue ;sum+=i ;while(+iA);printf(d“n ” ,sum);A)2500B)2050C)4D)O答案: A评析:本题程序的功能是求 1 到_99 之问 (包括 1 和 99) 所有奇数之和。程序中的 while 循环的终止条件为 +i=100 ,在 while 循环体内

12、,如果 i 是偶数,则执行 continue ,跳过这一次循环,执行下一次循环,否则求和。最后输出的值是1 到 99 之间 (包括 l 和 99) 所有奇数之和(1+99)*50 2=2500 。(20)下列程序的输出结果是。main()int I=3 ;switch(i) case 1 :case 2 : printf( d”, i) ;case 3 :case 4 : break ;default : printf(”;OK”)A)0B)3C)OKD)没有任何输出答案: D评析:在题中, i 的值为 3,由于 “case :3”后面没有 break 语句,所以继续向下执行 “case :4

13、”后面的语句,由于 “case 4:”后面的语句为 break 强行退出 switch 语句,所以,本题没有任何输出。(21)下列程序执行后的输出结果是。main()int m3=1,4,7,2,5,8,3,6,9;int i , k=2 :for(I=0 ; i3 ; i+)printf( d”,mki) ; A)456B)258C)369D)789答案:C评析:根据二维数组的定义得出:m12=8 ,m20=3 ,m2l=6mOO=1 ,m22=9,mO1=4 ,mO2=7 ,m10=2 ,rail1=5,所以本题的输出是第3 行的值 m20 ,m21,m22,即369。(22)设已定义洱口

14、k 为 int 类型变量,则以下for 循环语句。for(i=0 ; k=-1 , k=1 ; i+ , k+)printf(”*n”);A)判断循环结束的条件不合法B)是无限循环C)循环一次也不执行D) 循环只执行一次答案: B评析:本题定义了一个 for 循环,循环变量是 i,但由于本题并没有设置循环条件,所以循环的条件永远默认为真,即无限次执行循环。(23)下面程序的输出结果是。unsigned fun(unsigned num) unsigned k=1 ;dok*=num lO ;num =lO ;while(num) ;return(k) ;main()unsigned n 。 2

15、6 ;printf(d”n ” ,fun(n);A)0B)4C)12D)无限次循环答案: C评析:本题定义了一个fun 函数,用于num 求和,具体执行过程如下:num=26 : k=k*(num 10)=1*(26 10),所以 k=6 , num=num 10=2 ;num=2 : k=k*(num 10)=6*(2 10),所以 k=12 , num=num lO=O ;num=O :while 条件不成立,所以返回k 的值 12(24)已知字母A 的 ASCII 码值是 65 ,字母 a 的 ASCII 码值是 97,以下程序。main()char a=; Aint b=20 ;pri

16、ntf(d“, o ”,(a=a+a,a+b,b),a+ -a,Ab);A)表达式非法,输出零或不确定值B)因输出项过多,无输出或输出不确定值C)输出结果为20,141D)输出结果为20,141,20答案: C评析:本题中首先输出逗号表达式“a=a+a,a+b , b”的值,即20。然后以八进制的形式输出 a+a-的A值为 97 对应的八进制数141 ,由于最后一个表达式b 没有对应输出格式的输出项表列就不会输出。(25)C 语言函数返回值的类型是由决定的。A)return语句中的表达式类型B)调用函数的主调函数类型C)调用函数时临时D) 定义函数时所指定的函数类型答案: D评析:函数值的类型

17、应当是在定义函数时指定的。 在定义函数时对函数值说明的类型一般应该和 return 语句中的表达式类型一致,如果不 _致,则以函数类型为准,即函数类型决定返回值的类型。(26)下列程序执行后输出的结果是。int d=l :fun(int p)int d 。 5;d+=p+;printf(d”, ”, d) ;main()int a=3 ;fun(a) ;d+=a+:printf(d”n ”, d) ;A)8 , 12B)9, 13C)8,4D)9,5答案: C评析:本题执行过程如下:首先调用fun 函数,使得实参a 的值 3 传递给形参p ,得到局部变量 d=8 ,打印出局部变量 d 的值 8

18、;返回主函数执行 “d+=a+”,此处的 d 为全局变量,所以 d=1+3=4( 由于本题是值传递, 所以在函数 fun 中对 p 值的改变并不能引起 a 的改变 ),故本题的输出是8,4。(27)已知下面的程序段,正确的判断是。#define A 3#define B(A)(_A+1) a)int a=3 :X=3*(A+B(7) ;A)程序错误,不允许嵌套定义B)X=93C)X=8lD) 程序错误,宏定义不允许有参数答案: C评析:本题的宏定义是合法的,宏定义展开为3*(3+(A+1)*a)=3*(3+(7+1)*3)=81。(28)定义 int*swap() 指的是。A)一个返回整型值的

19、函数swap()B)一个返回指向整型值指针的函数swap()C)一个指向函数swap() 的指针,函数返回一个整型值D)以上说法均错答案: B评析:一个函数可以带回一个整型值、字符值、实型值等,但也可以带回指针型数据,即地址。本题的定义中, 包括括号和 号,由于 f) 优先级高于t。故它是一个返回整型指针的函数。(29)以下程序段的输出结果是。main() char s110 , s210 ,s310 ;scanf( ”s”,s1); gets(s2) ; gets(s3) ;puts(s 1) ;puts(s2) ; puts(s3) ;输入数据如下:(此处代表回车符)aaabbbA)aaa

20、B)aaaC)aaa 0bbb 0D)aaabbbbbbbbb答案: B评析: scanf 是标准输入函数, 在输入字符串 aaa 时,实际的内容为 “aaa0”,“ 0”是由系统自动加入的; gets 的功能是从终端读入一行字符,即一直读到换行符为止,并由系统自动以“ 0”代替换行符。(30)下述函数功能是。Int fun(char*x)char*y=x ;while(*y+);return y-x-l ;A)求字符串的长度B) 求字符串存放的位置C)比较两个字符串的大小D) 将字符串 x 连接到字符串y 后面答案: A评析:在函数体内定义一字符型指针并指向形参,然后遍历其中各字符直到NUL

21、L ,最后返回字符串首尾地址的差值,即字符串的长度。(31)以下程序的输出结果是。main() char str12= s ;, t , r , i , n , g printf(d”n ” ,strlen(str);A)6B)7C)llD)12答案: A评析:在c 语言中,字符串的长度是其首字符到NULL( 不含 )字符的总字符个数。本题定义字符数组str 的同时,对第7 个元素,由系统自动添加上“ 0”,故字符串的长度为6。(32)请读程序段:char str=” ABCD”; ,*p=strprintf(d”n ”, *(p+4) ;程序段的输出结果是。A)68B)0C)字符 的D地址D

22、)不确定的值答案: B评析:在对字符数组赋字符串值时,系统会自动在字符串的末尾加上一个字符串结束标志“0 ”,故指向字符数组的指针 p 的 +(p+4) 的值为 “ 0 ”。由于 “0 ”的编码值就是 0 ,所以本题输出为 0。(33)若有定义: int a410 ;,则以下选项中对数组元素aij 引用错误的是。(0=i4 , 0=js2 ,则返回个正数;如果 sls2,所以函数的值为正数。(36)下面程序的输出是。char s=” ;ABcD ”main()char*p ;for(p=s ;ps+4 ; p+)printf( s” n ”, p) ;A)ABCDB)AC)DD)ABCDBCD

23、BCABCCDCBABDDAA答案: A评析:在第一次执行for 循环时,字符数组的首地址赋给了指针变量p,使得指针变量p 指向了 s 的首地址,输出p 所指向的字符串;第二次执行for 循环时, p 值增加 1 ,p 指向了s 的第二个元素输出 BCD;第三次输出 CD;第四次输出 D;直到 p 指向字符串的结束字符 “ 0 ”, for 循环终止执行。(37)以下程序输出的结果为。main()char* alpha6=“, EFGHABCD”, ” IJKL, ”MNOP,” QRST,” UVwX;”char*p ;int i :p=alpha ;for(I=0 ; i=0 ; i,i)

24、printf(c“” ,*pi);printf(n”;)A)SOB)SPC)SPOPKD)SHOB答案: A评析: p0 存放的是 “BOOL 0”的首地址; p1 存放的是 “OPK 0”的首址等。在 printf 语句中输出的么输出的第一个字符为+pI 表示 pi 字符串的第一个字符。在“s,”接着两次i,则输出的值为+p1for 循环中, i 的初值为3,那,即字符 “0,”所以本题的输出为 SO。(39)以下程序的输出结果是。#includevoid prt(int*x,int*y,int*z)printf( d”, d, d n ”, +*x , +*y*(z+); int a=10

25、,b=40,c=20;main()prt(&a , &b&C);prt(&a ,&b , &C) ;A)ll,42,3lB)ll,41,20C)1l,21,40D)11,41 , 2l12,22,4112,42,2011,2l,4112,42,22答案: B评析: 由于实参传送的是变量的地址,所以对形参指针所指向的单元内容的改变,即对实参内容的改变。(40)若一个外部变量的定义形式为static int x ;,那么,其中static 的作用应该是。A)将变量存储在静态存储区B)使变量 x 可以由系统自动初始化C)使 x 只能在本文件内引用D)使 x 的值可以永久保留答案: C评析:事实上,无

26、论有无 static 修饰,外部变量都具有 A、B 和 c 三种特性。作为一种修饰, static 仅是限制此类型外部变量的引用范围:只能在定义它的文件范围内使用。(41)以下程序的输出结果是。#include#define SQR(x)x*xmain()int a ,k=3 ;a=+SQR(k+1);pri ntf( ”d n ”, a);A)8B)9C)17D)20答案: B评析:本题宏替换中遇到形参x 以实参 k+l 代替,其它字符不变。 sQR(k+1) 展开后应为字符串 k+l*k+l 。(42)下面是对宏定义的描述,不正确的是。A)宏不存在类型问题,宏名无类型,它的参数也无类型B)

27、宏替换不占用运行时间C)宏替换时先求出实参表达式的值,然后代入形参运算求值D)宏替换只不过是字符替代而已答案: C评析:宏替换实质上就是字符替代,它不可能进行计算,故 c 错误。带参数的宏与函数相比,宏在程序编译之前已经将代码替换到程序内,执行时不会产生类似于函数调用的问题,可以说不占用运行时间。(43)以下程序 (程序左边的数字为附加的行号)。1#include2#include3main()4char s=”;string”5 puts(s) ;6 strcpy(s,”;hello ”)7 printf( 3s” n ”,s);A)没有错B) 第 l 行有错C)第 6 行有错D)第 7 行

28、有错答案: B评析:字符串复制函数strcpy 包含在头文件string h 中,因此,程序中的第l 行文件包含命令是错误的。(44)若有如下说明,则的叙述是正确的。struct stint a ;int b2l ;a;A)结构体变量a 与结构体成员a 同名,定义是非法的B)程序只在执行到该定义时才为结构体st 分配存储单元C)程序运行时为结构体st 分配 6 个字节存储单元D)类型名 struct st可以通过 extern 关键字提前引用(即引用在前,说明在后)答案: D评析:结构体变量a 与结构体成员a 同名是合法的定义,引用成员a 的方法是aa,变量a 处于不同的 “层次 ”上,系统完

29、全能够分清。st 是一个结构体名,不会为结构体名分配存储空间, 应该是在运行时为结构体变量a 分配 6 个字节的存储单元,故选项 B 和选项 C 错误。(45)若有以下结构体定义,则是正确的引用或定义。struct exampleint x ;int y ;v1;A)example x=10B)example v2 x=10C)struct v2 ; v2x=lOD)struct example v2=10;答案:D评析:在定义结构体变量时,不能只用结构体名example 或关键字要用结构体类型名struct example定义,在引用结构体成员变量时,行引用,所以选D。strum 进行定义,

30、必需需要用结构体变量名进(46)下列程序的执行结果是。#includeunion unint i ;char c21 ;void main() union un x ;x c0=10 :x c1=1 :printf(n“ d ”,xi);A)266B)llC)265D)138答案:A评析:由于本题定义的是共用体,存储单元,且此存储单元为2的值为 266 。所以成员表列中的整型变量 x 与字符数组 c 共占用同一个个字节,通常 cO 位于低字节, c1 位于高字节,所以 x i(47)已知形成链表的存储结构如下图所示,则下述类型描述中的空白处应填。struct linkDatanextchar

31、data ;_node ;A)struct link nextB)link*nextC)struct next linkD)struct link*next答案: D评析: 在单向链表中, 由于每个结点需要存储下一个结点的地址,且下一个结点的数据类型与前一个结点的数据类型完全相同,故应为struct link*next。(48)已知小写字母a 的 ASCII 码为 97,大写字母A 的 ASCII码为 65,以下程序的结果是。main()unsigned int a=32,b=66;printf(c“ n ” ,atb);A)66B)98C)bD)B答案: C评析:位运算符“的l”作用是按位或

32、,即两个二进制数的相应位中只要有一个为1,该位的结果值为 l。最后以字符型输出,98 对应的字符 “b。”(49)C 语言库函数龟ets(str,n,fp) 的功能是。A)从 fp 指向的文件中读取长度n 的字符串存入str 指向的内存B)从 fp 指向的文件中读取长度不超过n-l 的字符串存入str 指向的内存C)从 fp 指向的文件中读取n 个字符串存 Xstr 指向的内存D)从 str 读取至多n 个字符到文件fp答案: B评析: fgets 函数的作用是从指定的文件读入一个字符串。fgets(str,n,fp) ;中的n 为要求得到的字符的个数,但只从 fb 指向的文件输入 n-1 个

33、字符,然后在最后加一个 O字符,因此得到的字符串共有 n 个字符。(50)下述程序向文件输出的结果是。#includevoid main()FILE*fp=fopen(“ TEST;” , ” wb ”)fprintf(fp, d 5” 0f c d ” ,58,76273 0, -,2278) ;fclose(fp) ;A)58 76273-2278B)5876273 。 000000-2278C)5876273-2278D) 因文件为二进制文件而不可读答案: C评析: fprintf函数工作时,多个数据间不会自动加分隔符,选项A 错误;浮点数的输出格式是 “ 5 0f ”表明其小数部分输出

34、O 位,即没有输出,所以选项B 也是错误的。二、填空题 (每空 2 分,共 40 分 )请将每空的正确答案写在【l】至【 20】序号的横线上,答在试卷上不得分。(1) 对于长度为n 的顺序存储的线性表, 当随机插入和删除一个元素时,需平均移动元素的个数为【l】。答案:【 1】 n 2评析:删除一个元素,平均移动的元素个数为(n-l+n- 2+0)n=(n -1) 2;插入一个元素,平均移动元素个数为(n+n-l+n-2+1)n=(n+1) 2;所以总体平均移动元素个数为n2 。(2) 注释说明了程序的功能,它分为 【 2】 注释和功能性注释。答案:【 2】序言性评析:注释一般分为序言性注释和功

35、能性注释。(3) 软件测试中路径覆盖测试是整个测试的基础,它是对软件【 3 】进行测试。答案:【 3】结构评析: 路径测试是白盒测试方法中的一种,它要求对程序中的每条路径最少检查一次,目的是对软件的结构进行测试。(4) 数据库技术的主要特点为数据的集成性、数据的高【 4 】和低冗余性、数据独立性和数据统一管理与控制。答案:【 4】共享性评析:数据库技术的主要特点有以下几个方面: 数据的集成性, 数据的高共享性与低冗余性,数据韵独立性,数据统一管理与控制。(5) 数据元素之间 【 5】 的整体称为逻辑结构。答案:【 5】逻辑关系评析:数据元素之间逻辑关系的整体称为逻辑结构。数据的逻辑结构就是数据

36、的组织形式。(6) 若有定义int m=5,y=2,则执行表达式y+=y-=m*=y后, y 的值为【 6】。答案:【 6】 16评析:将赋值运算符右侧的 “表达式 ”的值赋给左侧的变量,并且赋值运算符按照 “白右而左 ” 的 结 合 顺 序 , 本 题 表达 式 应 先 算 m 的 值 为 10 , 再 运 算 y 的 值 为 8 , 最 后 计 算 y=y+(-8)=-8+(-8)=-16 。(7) 若 x 和 y 都是 double 型变量, ix 的初值为 3 0, y 的初值为 2 0,则表达式 pow(y ,fabs(x) 的值为【 7】。答案:【 7】 8 000000评析:fa

37、bs 函数功能是求x 的绝对值,计算结果为double 型。 pow 功能是计算x 的 y 次方的值,计算结果同样为double型。所以本题表达式相当于2 0 的 3 0 次方,结果为8 000000 。(8) 设有 char a ,b ;,若要通过 a&b 运算屏蔽掉 a 中的其它位,只保留第 2 位和第 8 位 (右起为第 1 位),则 b 的二进制是 【8】 。答案:【 8】 10000010评析:运算 “&”的规则是只有当两个相应的二进制位都为1 时,该位的结果才为1 。要保留第 2、 8 位,只要将其与二进制数10000010 相与。(9) 下列程序执行后输出的结果是【 9】 。f(

38、int a)static c=0 ;C=a+C+ :return(C) ;main()int a=2 , i, k;for(i=O ; i2 ; i+)k=f(a+) ;printf(d”n ”, k);答案:【 9】 7评析:在程序执行时,static 变量仅初始化一次,下次使用时将使用上次保存的值。(10)下面程序执行后输出的结果是【10】。int m=13 :int fun(int x, int y)int m=3 ;return(x*y-m);main()int a=7,b=5;printf(d”n ” ,fun(a,b) m);答案:【 10】2评析:本题变量 m 既是外部变量 (值

39、是 13),又是 fun 函数的局部变量 (值为 3)。函数 fun(x*y-m) 的值为 7*5-3=32 ,在 main 函数中, ftm(a,b) m 中的 m 应取外部变量的值 13,因此输出2。(11)下列程序执行后输出的结果是【11】。main()nt arr10,i , k=0 ;for(I=0; il0 ; i+)arrI=i;for(I=1; i4 ; i+)k+=arri+i ;printf(d”n ”, k);答案:【 11】12评析:本题的第一个 fur循环用于给数组arr 赋初值,第二个for 循环用于求和运算。由于第二个 fur 循环初始值为1,而循环条件为ix);答案:【 12】11评析: 程序中结构体数组data 首地址 (即 &data0) 赋值给结构体指针变量p ,+(p-x)先将 p 所指向的结构体变量的成员x 值加 1,然后将此x(即 data01 x输出。表示(13)下面程序有两个 printf 语句,如果第一个 printf 语句输出的是 194 ,则第二个 print 语句的输出结果是 【 13 】 。main() int a 10=1,2,3,4,5,6,7,8,9,0, *p ;p=a ;printf( X” n ”, p) ;printf( x” n ”, p+9) ;答案:【 13】la6评析 :对于指针变量的运算,就是对地址

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!