C语言笔试题带答案.docx
《C语言笔试题带答案.docx》由会员分享,可在线阅读,更多相关《C语言笔试题带答案.docx(359页珍藏版)》请在咨信网上搜索。
C语言笔试题带答案 资料仅供参考 一、选择题(1)~(10)每小题2分, (11)~(50)每小题1分,共60分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。 (1)在数据结构中,从逻辑上能够把数据结构分为_______。 A)动态结构和静态结构 B)紧凑结构和非紧凑结构 C)线性结构和非线性结构 D)内部结构和外部结构 答案:C 评析:逻辑结构反映数据元素之间的逻辑关系,线性结构表示数据元素之间一对一的关系,非线性结构表示数据元素之间一对多或多对一的关系。 (2)若进栈序列为l,2,3,4,进栈过程中能够出栈,则下列不可能的一个出栈序列是_______。 A)1,4,3,2 B)2,3,4,l C)3,1,4,2 D)3,4, 2,1 答案:C 评析:栈是一种后进先出表,选项c中,先出栈的是3,说明此时栈内必然有1,2,由于l先于2进栈,因此l不可能在2之前出栈,故选项C这种出栈序列是不可能的。 (3)排序方法中,将整个无序序列分割成若干小的子序列并分别进行插入排序的方法,称为_______。 A)希尔排序 B)冒泡排序 C)插入排序 D)选择排序 答案:A 评析:希尔排序法的基本思想是:将整个无序序列分割成若干小的子序列分别进行插入排序。 (4)在顺序表(3,6,8,10,12,15,16,18,21,25,30)中,用二分法查找关键码值11,所需的关键码比较次数为_______。 A)2 B)3 C)4 D)5 答案:C 评析:二分法查找是用关键码与线性表的中间元素比较,然后根据比较结果来判断是结束查找,还是在左边或者右边子表按相同的方法继续查找。本题中,与ll比较的关键码分别为15,8,10,12四个。 (5)对于n个结点的单向链表(无表头结点),需要指针单元的个数至少为_______。 A)n-1 B)n C)n+l D)2n 答案:C 评析:在n个结点的单向链表(无表头结点)中,每个结点都有一个指针单元(即指针域),加上头指针,至少需要n+1个指针单元。 (6)在软件开发过程中,软件结构设计是描述_______。 A)数据存储结构 B)软件体系结构 C)软件结构测试 D)软件控制过程 答案:B 评析:从工程管理角度来看,软件设计分两步完成:概要设计和详细设计。概要设计(又称结构设计)将软件需求转化为软件体系结构、确定系统级接口、全局数据结构或数据库模式。 (7)模块本身的内聚是模块独立性的重要性度量因素之一。在7类内聚中,具有最强内聚 的一类是_______。 A)顺序性内聚 B)过程性内聚 C)逻辑性内聚 D)功能性内聚 答案:D 评析:内聚性是一个模块内部各元素间彼此结合的紧密程度的度量。内聚共有7类,它们之间的内聚性由弱到强排列顺序为:偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚和功能内聚。 (8)数据存储和数据流都是_______,仅仅是所处的状态不同。 A)分析结果 B)事件 C)动作 D)数据 答案:D 评析:数据流图有4种成分:源点或终点、处理、数据存储和数据流。数据存储是处于静止状态的数据,数据流是处于运动中的数据。 (9)数据的完整性是指数据的正确性、有效性和_______。 A)可维护性 B)独立性 C)安全性 D)相容性 答案:D 评析:数据模型的完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态及其状态的变化,以保证数据的正确性、有效性和相容性。 (10)关系代数运算是以_______为基础的运算。 A)关系运算 B)谓词运算 C)集合运算 D)代数运算 答案:C 评析:关系代数运算是以关系代数作为运算对象的一组高级运算的集合。它的基本操作是并、交、差、笛卡尔积,另外还包垂直分割(投影)、水平分割(选择)、关系的结合(连接)等。 (11)能将高级语言程序转换成目标语言程序的是_______。 A)调试程序 B)解释程序 C)编译程序 D)编辑程序 答案:C 评析:用高级语言编写的程序称为“源程序”,而计算机只能识别和执行由0和l组成的二进制指令,因此高级语言必须先用一种称为“编译程序”的软件,把源程序翻译成二进制形式的“目标程序”。 (12) _______是构成c语言程序的基本单位。 A)函数 B)过程 C)子程序 D)子例程 答案:A 评析:c程序是由函数构成的。一个c源程序至少包含一个main函数,也能够包含一个main函数和若干个其它函数,因此,函数是c程序的基本单位。 (13)能够在C语言中用做用户标识符的是_______。 A)void B)as_b3 C)for D)2c define _123 -abc Do WORD If cas SIG 答案:B 评析:c语言规定,标识符只能由字母、数字和下划线三种符号组成,而且第一个字符必须是字母或下划线。另外还需要注意的是关键字不能作标识符。选项A中void,C中for都为关键字,D中2c以字母开头。 (14)若有以下类型说明语句: char w;int x;float y,z; 则表示式w*x+z-y的结果为________类型。 A)float B)char C)int D)double 答案:A 评析:在进行运算时,不同类型的数据参加运算,需要先将其转换成同一类型的数据,然后再进行运算。转换的顺序由低到高为:char,short→int→unsigned→long→double→float,故结果为float型。 (15)main(() { float x=123A56; printf(“%-5.2f\n”,x); } 以上程序输出的结果是________。 A)123.4 B)123.5 C)123.45 D)123.46 答案:D 评析:f格式符,用来输出实数,以小数形式输出。“%-m.nf”的含义是:输出数据共占m列,其中n位小数,如果输出位数小于m。则右端补空格。如果总长度大于列数,则按实际情况四舍五入输出。 (16)下面语句的输出结果是________。 Printf(“%d\n”,strlen(“\t\”\065\xff\n”)); A)14 B)8 C)5 D)输出项不合法,无正常输出 答案:C 评析:在c语言中,以“\”开头的字符均为转义字符,其中“\”后可跟l~3位八进制数或在“\”后跟字母x及l~2位十六进制数,以此来代表一个特定的字符。 (17)下列程序的输出结果是________。 main() { int a=0,b=0,c=0; if(++a>0lI++b>0)++c; printf(“\na=%d,b=%d,c=%d”,a,b,C); } A)a=0,b=0,c=0 B)a=l,b=l,c=1 C)a=l,b=O, c=I D)a=0, b=1.c=1 答案:C 评析: “︱︱”是或运算,它有个“短路”的特点需特别注意,当“︱︱”运算符左边的表示式的值为真时,则程序就不再对“︱︱”右边的表示式的值进行运算,而是使得整个表示式的值直接为真。 (18)下列程序的输出结果是_________。 Main() { int i; for(i=1;i+l;i++) { if(i>4){printlf(”%d”,i++);break;} } printf(“%d”,i++); } A)55 B)56 C)程序错误,没有输出 D)循环条件永远为真,死循环 答案:B 评析:本程序中有个for循环,但注意到for循环的条件是“i+l”,也就是只要i+l的值为真(非零值均为真),就执行循环。当i=l的时,i+l的值为真,判断if条件不成立,执行i++,输出i的值为5。 (19)下列程序的输出结果是_________。 #define A 100 main() { int i=O,sum=O; do{ if(I==(i/2)*2)continue; sum+=i; }while(++i<A); printf(“%d\n”,sum); } A)2500 B)2050 C)4 D)O 答案:A 评析:本题程序的功能是求1到_99之问(包括1和99)所有奇数之和。程序中的while循环的终止条件为++i=100,在while循环体内,如果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)0 B)3 C)OK D)没有任何输出 答案:D 评析:在题中,i的值为3,由于“case 3:”后面没有break语句,因此继续向下执行“case 4:”后面的语句,由于“case 4:”后面的语句为break强行退出switch语句,因此,本题没有任何输出。 (21)下列程序执行后的输出结果是________。 main() { int m[][3]={1,4,7,2,5,8,3,6,9}; int i,k=2: for(I=0;i<3;i++) {printf(”%d”,m[k][i]);} } A)456 B)258 C)369 D)789 答案:C 评析:根据二维数组的定义得出:m[O][O]=1,m[O][1]=4,m[O][2]=7,m[1][0]=2,rail][1]=5,m[1][2]=8,m[2][0]=3,m[2][l]=6,m[2][2]=9,因此本题的输出是第3行的值m[2][0],m[2][1],m[2][2],即369。 (22)设已定义洱口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; do{ k*=num%lO; num/=lO; }while(num); return(k); } main() { unsigned n。26; printf(”%d\n”,fun(n)); } A)0 B)4 C)12 D)无限次循环 答案: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=‘A’; int b=20; printf(“%d,%o”,(a=a+a,a+b,b),a+‘a’-‘A’,b); } A)表示式非法,输出零或不确定值 B)因输出项过多,无输出或输出不确定值 C)输出结果为20,141 D)输出结果为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 评析:函数值的类型应当是在定义函数时指定的。在定义函数时对函数值说明的类型一般应该和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,12 B)9,13 C)8,4 D)9,5 答案:C 评析:本题执行过程如下:首先调用fun函数,使得实参a的值3传递给形参p,得到局部变量d=8,打印出局部变量d的值8;返回主函数执行“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=93 C)X=8l D)程序错误,宏定义不允许有参数 答案:C 评析:本题的宏定义是合法的,宏定义展开为3*(3+((A+1)*a))=3*(3+((7+1)*3))=81。 (28)定义int*swap()指的是_______。 A)一个返回整型值的函数swap() B)一个返回指向整型值指针的函数swap() C)一个指向函数swap()的指针,函数返回一个整型值 D)以上说法均错 答案:B 评析:一个函数能够带回一个整型值、字符值、实型值等,但也能够带回指针型数据,即地址。本题的定义中,包括括号和·号,由于f)优先级高于t。故它是一个返回整型指针的函数。 (29)以下程序段的输出结果是__________。 main() { char s1[10],s2[10],s3[10]; scanf(”%s”,s1);gets(s2);gets(s3); puts(s 1);puts(s2);puts(s3); } 输入数据如下: (此处<cR>代表回车符) aaa<CR> bbb<CR> A)aaa B)aaa C)aaa\0bbb\0 D)aaabbb bbb bbb 答案:B 评析:scanf是标准输入函数,在输入字符串aaa时,实际的内容为“aaa\0”,“\0”是由系统自动加入的;gets的功能是从终端读入一行字符,即一直读到换行符为止,并由系统自动以“\0”代替换行符。 (30)下述函数功能是________。 Int fun(char*x) { char*y=x; while(*y++); return y-x-l; } A)求字符串的长度 B)求字符串存放的位置 C)比较两个字符串的大小 D)将字符串x连接到字符串y后面 答案:A 评析:在函数体内定义一字符型指针并指向形参,然后遍历其中各字符直到NULL,最后返回字符串首尾地址的差值,即字符串的长度。 (31)以下程序的输出结果是_________。 main() { char str[12]={‘s’,‘t’,‘r’,‘i’,‘n’,‘ g’}; printf(”%d\n”,strlen(str)); } A)6 B)7 C)ll D)12 答案:A 评析:在c语言中,字符串的长度是其首字符到NULL(不含)字符的总字符个数。本题定义字符数组str的同时,对第7个元素,由系统自动添加上“\0”,故字符串的长度为6。 (32)请读程序段: char str[]=”ABCD”,*p=str; printf(”%d\n”,*(p+4)); 程序段的输出结果是_________。 A)68 B)0 C)字符‘D’的地址 D)不确定的值 答案:B 评析:在对字符数组赋字符串值时,系统会自动在字符串的末尾加上一个字符串结束标志“\0”,故指向字符数组的指针p的+(p+4)的值为“\0”。由于“\0”的编码值就是0,因此本题输出为0。 (33)若有定义:int a[4][10];,则以下选项中对数组元素a[i][j]引用错误的是________。 (0<=i<4,0<=j<10) A)*(&a[O][O]+10*i+j) B)*(a+i)+j C)*(*(a+i)+j) D)*(a[i]+j) 答案:B 评析:本题中选项B是错误的引用,*(a+i)+j只代表了a[i][i]的地址。 (34)设有以下语句: char strl[]=”string”,str2[8],。str3,。str4=”strin∥; 则__________不是对库函数的正确调用。 A)strcpy(strl,”HELLOl”); B)strcpy(str2,”HELL02”); C)strcpy(str3,”HELL03”); D)strcpy(str4,”HELL04”); 答案:C 评析:c语言中:sgcpy(stl,st2);,其两个参数均为字符指针或字符数组,选项c中的目的串指针str3没有指向具体有效的存储单元,故是错误的调用。 (35)请读程序: #include<stdio.h> #include<string.h> main() { char*sl=”AbCdEf”,*s2=”aB”; s1++;s2++; printf(”%d\n”,strcmp(s 1,s2)); } 上面程序的输出结果是___________。 A)正数 B)负数 C)零 D)不确定的值 答案:A 评析:函数strcmp的功能是比较字符串s1和s2,如果sl>s2,则返回个正数;如果sl<s2,则返回负数,否则返回零。由于本题中小写字母b的ASCII码值大于大写字母B,故sl>s2,因此函数的值为正数。 (36)下面程序的输出是_________。 char s[]=”ABcD”; main() { char*p; for(p=s;p<s+4;p++) printf(”%s\n”,p); } A)ABCD B)A C)D D)ABCD BCD B C ABC CD C B AB D D A A 答案:A 评析:在第一次执行for循环时,字符数组的首地址赋给了指针变量p,使得指针变量p指向了s的首地址,输出p所指向的字符串;第二次执行for循环时,p值增加1,p指向了s的第二个元素输出BCD;第三次输出CD;第四次输出D;直到p指向字符串的结束字符“\0”,for循环终止执行。 (37)以下程序输出的结果为__________。 main() { char* alpha[6]={“ABCD”,EFGH”,”IJKL”,”MNOP”,”QRST”,”UVwX”}; char**p; int i: p=alpha; for(I=0;i<4;i++) printf(”%s”,p[I]); } A)ABCDEFGHIJKL B)ABCD C)ABCDEFGHIJKLMNOP D)AEIM 答案:C 评析:alpha[O]指向“ABCD”的首地址;alpha[1]指向“EFGH”的首地址;alpha[2]指向“IJKL”的首地址,依此类推。当执行p=alpha后,p指向指针数组alpha的首地址。for循环中输出了4个字符串。 (38)下面程序的输出结果是_________。 #include<stdio.h> main() { char*p[]={”B00L”,”0PK”,”H”,”SP”}; int i: for(i=3;i>=0;i–,i–) printf(“%c”,*p[i]); printf(”\n”); } A)SO B)SP C)SPOPK D)SHOB 答案:A 评析:p[0]存放的是“BOOL\0”的首地址;p[1]存放的是“OPK\0”的首址等。 在printf语句中输出的+p[I]表示p[i]字符串的第一个字符。在for循环中,i的初值为3,那么输出的第一个字符为“s”,接着两次i–,则输出的值为+p[1],即字符“0”,因此本题的输出为SO。 (39)以下程序的输出结果是_________。 #include<stdio.h> void prt(int*x,int*y,int*z) { printf(”%d,%d,%d\n”,++*x,++*y*(z++));} int a=10,b=40,c=20; main() { prt(&a,&b&C); prt(&a,&b,&C); } A)ll,42,3l B)ll,41,20 C)1l,21,40 D)11,41,2l 12,22,41 12,42,20 11,2l,41 12,42,22 答案:B 评析:由于实参传送的是变量的地址,因此对形参指针所指向的单元内容的改变,即对实参内容的改变。 (40)若一个外部变量的定义形式为static int x;,那么,其中static的作用应该是_______。 A)将变量存储在静态存储区 B)使变量x能够由系统自动初始化 C)使x只能在本文件内引用 D)使x的值能够永久保留 答案:C 评析:事实上,无论有无static修饰,外部变量都具有A、B和c三种特性。作为一种修饰,static仅是限制此类型外部变量的引用范围:只能在定义它的文件范围内使用。 (41)以下程序的输出结果是________。 #include<stdio.h> #define SQR(x)x*x main() { int a,k=3; a=++SQR(k+1); printf(”%d\n”,a); } A)8 B)9 C)17 D)20 答案:B 评析:本题宏替换中遇到形参x以实参k+l代替,其它字符不变。sQR(k+1)展开后应为字符串k+l*k+l。 (42)下面是对宏定义的描述,不正确的是_______。 A)宏不存在类型问题,宏名无类型,它的参数也无类型 B)宏替换不占用运行时间 C)宏替换时先求出实参表示式的值,然后代入形参运算求值 D)宏替换只不过是字符替代而已 答案:C 评析:宏替换实质上就是字符替代,它不可能进行计算,故c错误。带参数的宏与函数相比,宏在程序编译之前已经将代码替换到程序内,执行时不会产生类似于函数调用的问题,能够说不占用运行时间。 (43)以下程序(程序左边的数字为附加的行号)________。 1#include<str.h> 2#include<stdio.h> 3main() 4{char s[]=”string”; 5 puts(s); 6 strcpy(s,”hello”); 7 printf(”%3s\n”,s);} A)没有错 B)第l行有错 C)第6行有错 D)第7行有错 答案:B 评析:字符串复制函数strcpy包含在头文件string.h中,因此,程序中的第l行文件包含命令是错误的。 (44)若有如下说明,则__________的叙述是正确的。 struct st { int a; int b[2l; }a; A)结构体变量a与结构体成员a同名,定义是非法的 B)程序只在执行到该定义时才为结构体st分配存储单元 C)程序运行时为结构体st分配6个字节存储单元 D)类型名struct st能够经过extern关键字提前引用(即引用在前,说明在后) 答案:D 评析:结构体变量a与结构体成员a同名是合法的定义,引用成员a的方法是a.a,变量a处于不同的“层次”上,系统完全能够分清。st是一个结构体名,不会为结构体名分配存储空间,应该是在运行时为结构体变量a分配6个字节的存储单元,故选项B和选项C错误。 (45)若有以下结构体定义,则________是正确的引用或定义。 struct example { int x; int y; }v1; A)example.x=10 B)example v2.x=10 C)struct v2;v2.x=lO D)struct example v2={10}; 答案:D 评析:在定义结构体变量时,不能只用结构体名example或关键字strum进行定义,必须要用结构体类型名struct example定义,在引用结构体成员变量时,需要用结构体变量名进行引用,因此选D。 (46)下列程序的执行结果是_________。 #include<stdio.h> union un { int i; char c[21; }; void main() { union un x; x.c[0]=10: x.c[1]=1: printf(“\n%d”,x.i); } A)266 B)ll C)265 D)138 答案:A 评析:由于本题定义的是共用体,因此成员表列中的整型变量x与字符数组c共占用同一个存储单元,且此存储单元为2个字节,一般c[O]位于低字节,c[1]位于高字节,因此x.i的值为266。 (47)已知形成链表的存储结构如下图所示,则下述类型描述中的空白处应填_______。 struct link Data next { char data; ___________ }node; A)struct link next B)link*next C)struct next link D)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)66 B)98 C)b D)B 答案:C 评析:位运算符“l”的作用是按位或,即两个二进制数的相应位中只要有一个为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个字符,然后在最后加一个‘\O’字符,因此得到的字符串共有n个字符。 (50)下述程序向文件输出的结果是__________。 #include<stdio.h> void main() { FILE*fp=fopen(“TEST”,”wb”); fprintf(fp,”%d%5.0f%c%d”,58,76273.0,’-',2278); fclose(fp); } A)58 76273-2278 B)5876273。.000000-2278 C)5876273-2278 D)因文件为二进制文件而不可读 答案:C 评析:fprintf函数工作时,多个数据间不会自动加分隔符,选项A错误;浮点数的输出格式是“%5.0f”表明其小数部分输出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;因此总体平均移动元素个数为n/2。 (2)注释说明了程序的功能,它分为 【2】 注释和功能性注释。 答案:【2】序言性 评析:注释一般分为序言性注释和功能性注释。 (3)软件测试中路径覆盖测试是整个测试的基础,它是对软件 【3】 进行测试。 答案:【3】结构 评析:路径测试是白盒测试方法中的一种,它要求对程序中的每条路径最少检查一次,目的是对软件的结构进行测试。 (4)数据库技术的主要特点为数据的集成性、数据的高 【4】 和低冗余性、数据独立性和数据统一管理与控制。 答案:【4】共享性 评析:数据库技术的主要特点有以下几个方面:数据的集成性,数据的高共享性与低冗余性,数据韵独立性,数据统一管理与控制。 (5)数据元素之间 【5】 的整体称为逻辑结构。 答案:【5】逻辑关系 评析:数据元素之间逻辑关系的整体称为逻辑结构。数据的逻辑结构就是数据的组织形式。 (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 评析: fabs函数功能是求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(int a) { static c=0; C=a+C++: return(C); } main() { int a=2,i,k; for(i=O;i<2;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既是外部变量(值是13),又是fun函数的局部变量(值为3)。函数fun(x*y-m)的值为7*5-3=32,在main函数中,ftm(a,b)/m中的m应取外部变量的值13,因此输出2。 (11)下列程序执行后输出的结果是 【11】 。 main() { nt arr[10],i,k=0; for(I=0;i<l0;i++)arr[I]=i; for(I=1;i<4;i++)k+=arr[i]+i; printf(”%d\n”,k); } 答案:【11】12 评析:本题的第一个fur循环用于给数组arr赋初值,第二个for循环用于求和运算。由于第二个fur循环初始值为1,而循环条件为i<4,因此求的是art[1]到arr[3]及i的和,因此输出结果为12。 (12)下列程序执行后输出的结果是 【12】 。 struct s {int x,y;}data[2]={10,100,20,200}; main() { struct s*p=data; printf(”%d\n”,++(p->x)); } 答案:【12】11 评析:程序中结构体数组data首地址(即&data[0])赋值给结构体指针变量p,++(p->x)表示先将p所指向的结构体变量的成员x值加1,然后将此x(即data[01.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】- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 笔试 答案
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文