c语言测试题-3
- 格式:doc
- 大小:54.00 KB
- 文档页数:10
C语言程序设计_单元测试题三本单元包含“数组、函数”的内容。
一、选择题1.以下为一维整型数组a的正确说明是_________.A)int a(10); B)int n=10,a[n];C)int n; D)#define SIZE 10;scanf("%d",&n); int a[SIZE];int a[n];2.以下对二维数组a的正确说明是________.A)int a[3][]; B)float a(3,4);C)double a[1][4] D)float a(3)(4);3.若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为______.(假设a[0][0]位于数组的第一个位置上。
)A)i*m+j B)j*m+i C)i*m+j-1 D)i*m+j+14.若二维数组a有m列,则在a[i][j]前的元素个数为________.A)j*m+i B)i*m+j C)i*m+j-1 D)i*m+j+15.25.若有以下程序段:int a[]={4,0,2,3,1},i,j,t;for(i=1;i<5;i++){t=a[i];j=i-1;while(j>=0&&t>a[j]){a[j+1]=a[j];j--;}a[j+1]=t;}... ...则该程序段的功能是_________.A)对数组a进行插入排序(升序) B)对数组a进行插入排序(降序)C)对数组a进行选择排序(升序) D)对数组a进行选择排序(降序)6.有两个字符数组a、b,则以下正确的输入语句是_______.A)gets(a,B); B)scanf("%s%s",a,B);C)scanf("%s%s",&a,&B); D)gets("a"),gets("b");7.下面程序段的运行结果是_________.char a[7]="abcdef";</P< p>char b[4]="ABC";strcpy(a,B);printf("%c",a[5]);A)空格B)\0 C)e D)f8.判断字符串s1是否大于字符串s2,应当使用_______.A)if(s1>s2) B)if(strcmp(s1,s2))C)if(strcmp(s2,s1)>0) D)if(strcmp(s1,s2)>0)9.下面程序的功能是从键盘输入一行字符,统计其中有多少个单词,单词之间用空格分隔,请选择填空。
测试题三一、填空1、以下选项中合法的变量是()A、 5aB、_10_C、A%D、sizeof2、有以下程序main(){ int x=35, B; char z='B' ;B = (( x ) && ( z <'b' ));printf("%d\n", B ); }程序运行后的输出结果是()A、1B、0C、35D、663、有以下程序main(){ int a = 3;do{ printf("%d,", a-=2 ); }while( ! (--a) );printf("\n"); }程序运行后的输出结果是A、1B、1, -2C、3,0D、1,04、有以下程序main(){ int a[3]={0}, i, j, k=2;for( i=0; i<k; i++ )for( j=0; j<k; j++ ) a[j] = a[i]+1; printf("%d\n", a[1] );}程序运行后的输出结果是A、0B、2C、1D、35、有以下程序#include <stdio.h>#define SUB( X, Y ) (X+1)*Ymain(){ int a=3, b=4;printf("%d\n",SUB(a++ ,b++ ));}程序运行后的输出结果是A、25B、20C、12D、166、有如下程序int sum(int a, int b){return a + b - 2;}main(){int i;for (i=0; i<5; i++)printf("%d", sum(i, 3));printf("\n");}程序运行后的输出结果是A、12345B、01234C、45678D、543217、有以下函数int fun( char *s, char *t ){ while(( *s )&&( *t ) && (*t++ == *s++ ) );return (*s-*t);}函数的功能是A、比较两个字符串的大小B、求字符串的长度C、将字符串s复制到字符串t中D、连接字符串s和字符串t8、有以下程序#include <stdio.h>int m1(int x,int y){ return x<=y ? x :y; }int m2(int x,int y){ return x<=y ? y :x; }int fun(int a,int b){ return a+b; }main(){ int x=2,y=3,z=1;printf("%d\n", fun(m1(x,y),m2(y,z)));}程序的运行结果是A、3B、4C、5D、69、有以下程序#include <stdio.h>#define FNA(x) x*x#define FNB(x) x+xmain(){ int a=2,b=4;printf("%d,%d\n",FNA(FNB(a)),FNB(FNA(b)));}程序运行后的输出结果是A、8,32B、16,32C、8,16D、16,1610、有以下程序main(){ int c[6]={10,20,30,40,50,60}, *p,*s;p = c; s = &c[5];printf("%d\n", s-p ); }程序运行后的输出结果是A、6B、50C、5D、6011、有以下程序#include <stdio.h>main(){ int aa[3][3]={ {2},{4},{6} }, i, *p = &aa[0][0];for ( i=0; i<2; i++ ){ if( i == 0 ) aa[i][i+1] = *p + 1;else ++p;printf("%d ", *p );}}程序运行后的输出结果是A、2 6B、2 3C、4 3D、4 612、有以下程序int change(int* data){return (*data) ++;}main() {int data = 123;change(&data);printf("%d,", data);data = change(&data);printf("%d,", data); printf("\n");}程序运行后的输出结果是A、124,124,B、123,124,C、124,123,D、123,123,13、有以下程序void fun( int x, int y, int *z ){ *z = y-x; }main(){int a, b, c;fun(10,5,&a ); fun(7,a,&b ); fun(a,b,&c );printf("%d,%d,%d\n", a,b,c );}程序运行后的输出结果是A、-5,-12,-7B、5,2,3C、-5,-12,-17D、5,-2,-714、有以下程序#include <stdio.h>int k=5;void f(int *s){ s=&k;*s=k;}main( ){ int m=3;f(&m);printf("%d,%d\n", m, k);}程序运行后的输出结果是A、3,3B、5,5C、3,5D、5,315、有以下程序#include <stdio.h>#include <string.h>main( ){ char a[20]="ab",b[20]="cdef";int k=0;strcat(a,b);while(a[k]!='\0') { b[k]=a[k]; k++;}puts(b);}程序的运行结果是A、abcdefB、cbcdefC、cdefD、ab二、看程序写结果1、main(){int a = 0, b = 1;if (a++ && b++)printf("T");elseprintf("F");printf("a=%d,b=%d\n", a, b);}程序运行后的输出结果是2、void fun ( int *s ){static int j=0;do s[j] += s[ j+1]; while(++j<2);}main(){int i, a[10]={1,2,3,4,5};for( i=1; i<3; i++ ) fun( a );for( i=1; i<5; i++ ) printf("%d",a[i]);printf("\n"); }3、void change(int* array, int len){for (; len>=0; len--)array[len] += 2;}main() {int i, array[5] = {1,2};change(array, 4);for (i=0; i<4; i++)printf("%d,", array[i]);printf("\n");}4、void fun( int *s, int n1, int n2 ){int i,j,t;i=n1; j=n2;while( i<j ){ t=*(s+i); *(s+i)=*(s+j); *(s+j)=t;i++; j--;}}main(){int a[10] = { 1,2,3,4,5,6,7,8,9,0} ,i, *p = a;fun( p,0,3 ); fun( p,4,9 ); fun( p,0,9 );for( i=0; i<10; i++ )printf("%d ", *( a+i ) );printf("\n" );}程序运行后的输出结果是5、main(){char *s="120119110";int n0,n1,n2,nn,i;n0=n1=n2=nn=i=0;do{switch(s[i++]){ default : nn++;case '0' : n0++;case '1' : n1++;case '2' : n2++;}} while(s[i]);printf("n0=%d,n1=%d,n2=%d,nn=%d\n",n0,n1,n2,nn);} 程序的运行结果是6、void f(int x[], int n){ if ( n > 1){ printf("%d,", x[0]);f(&x[1], n-1);printf("%d,", x[0]);}elseprintf("%d,", x[0]);}main( ){ int z[3] = {4, 5, 6};f(z, 3);printf("\n"); }程序运行后的输出结果是三、填空1、以下程序的功能是:通过调用calc函数,把所求得的两数之和值放入变量add 中,并在主函数中输出。
c语言模拟试题3及答案C语言模拟试题3及答案一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的关键字?A. voidB. NULLC. intD. main2. 在C语言中,哪个运算符用于计算两个数的和?A. +B. -C. *D. /3. 在C语言中,以下哪个不是合法的变量名?A. myVariableB. 123VariableC. _myVariableD. variableName4. C语言中,哪个函数用于计算两个数的最大值?A. max()B. min()C. abs()D. pow()5. 在C语言中,以下哪个是正确的字符串字面量?A. "Hello World"B. 'Hello World'C. "Hello\nWorld"D. "Hello\World"6. 以下哪个语句在C语言中是正确的?A. if (x = 10)B. if (x == 10)C. if (x = 10) { x++; }D. if (x = 10) x++;7. C语言中,哪个语句用于输出数据到控制台?A. printf()B. scanf()C. coutD. print()8. 在C语言中,数组的索引是从哪个数字开始的?A. 0B. 1C. -1D. 任意数字9. 下列哪个是C语言中的控制结构?A. 循环B. 函数C. 数组D. 指针10. 在C语言中,以下哪个是正确的二维数组声明?A. int array[3][5];B. int array = 3[5];C. int array = 3 * 5;D. int array(3, 5);答案:1. A, C2. A3. B4. A5. A, C6. B7. A8. A9. A10. A二、填空题(每空2分,共20分)1. 在C语言中,______关键字用于声明一个函数。
测试题31.C语言中不合法的字符常量是 CA、’\65’B、’\xff’C、’\028’D、’&’2.具有相同类型的指针变量p与数组a,不能进行的操作是(C)。
A、p=&a[0];B、p=a;C、p=&a;D、*p=a[0];3.若有x=22,y=26,z=0;,则执行下面语句后,z的输出结果是(B )z=x>y?x:yA、72B、26C、48D、224.对于建立函数的目的,正确的说法是DA、提高程序的执行效率B、减少程序的篇幅C、减少程序文件所占的内存D、提高程序的可读性5.有定义:char*p1,*p2;则下列表达式中正确合理的是CA、p1/=5B、p1+=5C、p1=&p2D、p1*=p26.以下程序的运行结果是(B)。
main(){int i=1,sum=0;while(i<10) sum=sum+1;i++;printf("i=%d,sum=%d",i,sum);}A、i=10,sum=9B、运行出现错误C、i=2,sum=17.若变量已正确定义且k 的值是4,计算表达式( j =4, k--) 后,j和k的值为(C)A、j=4, k=4B、j=3, k=3C、j=4, k=3D、j=3, k=48.给出以下定义:char x[ ]="abcdefg";char y[ ]={'a','b','c','d','e','f','g'};则正确的叙述为(A)A、数组x的长度大于数组y的长度B、数组x和数组y等价C、数组x和数组y的长度相同D、数组x的长度小于数组y的长度9.在下述程序中,判断i > j共执行了多少次 C#include <stdio.h>main(){int i = 0, j = 10, k = 2, s = 0;for( ; ; ){i += k;if(i > j){printf(“%d\n”, s);break;}s += i;}}A、4B、8C、6D、710.下列各m的值中,能使m%3==2&&m%5==3&&m%7==2为真的是(D)。
《C语言程序设计》模拟试卷三一、填空题。
(每空2分,共16分)1.在内存中,短整型变量占字节,单精度实型变量占字节,字符型变量占字节。
2.一个C语言文件就是由若干个组成。
3.设有以下变量定义,并已赋确定得值char w; int x; float y; double z;则表达式:w*x+z-y所求得得数据类型为。
4.若x为int类型,请以最简单得形式写出与逻辑表达式!x等价得C语言关系表达式。
5.若有如下图所示五个连续得int类型得存储单元并赋值如下图,a[0]得地址小于a[4]得地址。
p与s就是基类型为int得指针变量。
请对以下问题进行填空。
a[0] a[1] a[2] a[3] a[4]p,给s赋值,使s指向最后一个存储单元a[4]得语句就是。
(2)若指针s指向存储单元a[2],p指向存储单元a[0],表达式s-p得值就是。
二、单项选择题。
(每题2分,共40分)1.设有 int x=11; 则表达式 (x++ * 1/3) 得值就是()。
A) 3 B) 4 C) 11 D) 122.下列程序得输出结果就是()。
A) 3 B) 3、2 C) 0 D) 3、07main(){double d=3、2; int x,y;x=1、2; y=(x+3、8)/5、0;printf(“%d \n”, d*y);}3.下列程序执行后得输出结果就是(小数点后只写一位)()。
A) 6 6 6、0 6、0 B) 6 6 6、7 6、7C) 6 6 6、0 6、7 D) 6 6 6、7 6、0main(){ double d; float f; long l; int i;i=f=l=d=20/3;printf("%d %ld %f %f \n", i,l,f,d);scanf("%d",&d);}4.下列变量定义中合法得就是()。
A) short _a=1-、le-1; B) double b=1+5e2、5;C) long do=0xfdaL; D) float 2_and=1-e-3;5.设 int x=1, y=1; 表达式(!x||y--)得值就是()。
c语言程序设计试题(3)一、填空题(10分)1设X为int型变量,请写出描述“ X是偶数”的表达式是:___________________________2、C语言中的基本数据类型分为 _____________ 型, __________ 型和字符型.3、_______________________________________________________________ 在数组intscore[10]={1,2,3,4,5,6}中,元素定义的个数有 _________________________ 个,其中score[8]的值为_____________________ 。
4、continue 语句是用来结束 _________________________________ 循环的。
5、循环语句:for(i= - 1;i<3;i++)printf( “!”);的循环次数是:_____________ 。
6、程序中经常要使用常量3.14,我们用符号run来表示,其定义格式为________________________________ 。
7、 C语言提供的三种逻辑运算符是______________ 、_______________ 和!;二、单选(30分)1、________________________ 以下数组定义正确的是A、int a [oxCF]; B. char 8th[10]; C. char ch [-100]; D. float f (10);2、四种运算中,优先级最高的运算符是( )A、&&B、>=C、==D、+ +3、设有程序段:int x=8;while (x=0)x=x-1 ;则下列描述正确的是_______A、while循环将执行10次B、while循环将执行无限次C、while循环将一次也不执行D、while循环将执行1次0.4、已知scanf( “ a=%d,b=%d,c=%c”,&a,&b,&c);则正确的输入形式是______________A) a=12 b=24 c=36 B) 12,24,36 C) a=12,b=24,c=36 D) 12 24 365、_____________________________ 程序片段执行后输出结果是int x=100, y=200;printf ("% d", (x, y));A 、100 B、200 C、100,200 D、编译出错6、不是C语A、指整C无符单7、设有:int行! (x=a)&&(y=b)&&0表达式的值为 __________A 1 B、0 C 3 D、48、_________________________________________________________________________________设有语句int a=3 ; 则执行了语句a+ = a - = a * a 后,变量a的值是—____________________________A 3B 0C 9D —129. 有如下的程序段,其输出正确的____________ 。
一、单项选择1.题号:4889以下函数挪用语句中,实参的个数是(). exce((v1,v2),(v3,v4,v5),v6);A、3B、4C、5D、6A、能够在同一个函数中,显现多次B、在主函数和其他函数中,都可显现C、必需在每一个函数中,显现D、只能在除主函数之外的函数中,显现一次A、该数组的首地址B、该数组的元素个数C、该数组中各元素的值D、该数组的长度答案:A2.题号:4525在C语言的函数中,以下正确的说法是().A、数组名不能作形参B、能够有也能够没有形参C、形参必需是变量名D、必需有形参答案:B3.题号:4083以下正确的函数概念形式是().A、double fun(int x,int y)B、double fun(int x;int y)A、main()B、#include""C、scanfD、printf答案:A4.题号:4048下面对函数的表达,正确的选项是().A、函数中不论是不是有return语句,都能返回正确值B、函数中没有return语句,说明不带回值C、函数不能嵌套概念D、函数的返回值是通过return语句取得的答案:C5.题号:4073在挪用函数时,假设是实参是简单变量,它与对应形参之间的数据传递方式是().A、传递方式由用户指定B、由实参传给形参,再由形参传回实参C、地址传递D、单向值传递答案:D6.题号:5119以下关于函数的表达中正确的选项是().A、每一个函数都能够单独运行A、5B、3C、2D、4答案:C7.题号:4901在C语言中,形参的缺省存储类是().A、staticB、registerC、autoD、extern答案:C8.题号:4507C语言规定,在一个源程序中,main()函数的位置.A、必需在最开始B、必需在系统挪用的库函数的后面C、能够任意D、必需在最后答案:C9.题号:4847以下表达中,正确的选项是().A、main()可作为用户标识符,用以命名任意一个函数作为主函数B、C语言程序将从源程序中,第一个函数开始执行C、能够在程序中,由用户指定任意一个函数作为主函数,程序将从此开始执行D、C语言规定必需用main()作为主函数名,程序将从此开始执行,在此终止答案:D10.题号:5137以下函数的类型是fff(float x){printf("%d\n",x);}A、能够在任意位置B、必需在程序的最后C、必需在程序的开始D、必需在系统挪用的库函数以后答案:A11.题号:4112C语言规定,函数返回值的类型是().A、由return语句中的表达式类型所决定B、由挪用该函数时的主调函数类型所决定C、由挪用该函数时系统临时决定D、由概念该函数时所指定的数值类型决定答案:D12.题号:4804以下所列的函数"首部"中,正确的选项是().()A、void play(int a,b)B、void play(int a,int b)C、void play(a:int,b:int)D、void play(a as int,b as int)答案:B13.题号:4432有以下函数概念:int fun(double a,double b){return a*b;}假设以下选项中,所用变量都已正确概念并赋值,错误的函数挪用是().A、z=fun(fun(x,y),fun(x,y));B、z=fun(fun(x,y)x,y);C、if(fun(x,y)){……}D、fun(x,y);答案:B14.题号:5050关于void 类型函数,调历时不可作为().A、if语句的成份语句B、表达式C、循环体里的语句D、自概念函数体中的语句A、必需在主调函数中,说明此数组的大小B、实参数组类型与形参数组类型能够不匹配C、实参数组名与形参数组名必需一致D、在被挪用函数中,不需要考虑形参数组的大小答案:A15.题号:4696在C语言中,挪用函数除函数名外,还必需有().A、实际参数B、()C、函数预说明D、函数返回值答案:B16.题号:4892以下错误的描述是:函数挪用能够().A、做为一个函数的实参B、做为一个函数的形参C、出此刻一个表达式中D、出此刻执行语句中A、数组每一个元素中的值B、数组的首地址C、数组的长度D、数组每一个元素的地址答案:B17.题号:5014假设用数组名作为函数的实参,传递给形参的是().A、数组的首地址B、数组元素的个数C、数组第一个元素的值D、数组中,全数元素的值答案:A18.题号:4843假设是在一个函数中的复合语句中,概念了一个变量,以下正确的说法是().A、该变量在本程序范围内均有效B、该变量只在该复合语句中,有效C、该变量在该函数中,有效D、该变量在主函数中,有效答案:B19.题号:4319C语言中,规定,程序中,各函数之间().A、既许诺直接递归挪用或许诺间接递归挪用B、许诺直接递归挪用不准诺间接递归挪用C、不准诺直接递归挪用许诺间接递归挪用D、不准诺直接递归挪用也不准诺间接递归挪用答案:A20.题号:5062凡是函数中,未指定存储类别的局部变量,其隐含的存储类别为().A、自动(auto)B、静态(static)C、外部(extern)D、寄放器(register)答案:A21.题号:4672以下表达中,正确的选项是().A、组成C程序的大体单位是函数B、main()函数必需放在其它函数之前C、所有被挪用的函数必然要在挪用之前进行概念D、能够在一个函数中,概念另一个函数答案:A22.题号:4236全局变量的概念不可能在().A、最后一行B、文件外面C、函数内部D、函数外面答案:C23.题号:4754以下对C语言函数的描述中正确的选项是().A、C程序中有挪用关系的所有函数必需放在同一个程序文件中B、C函数既能够嵌套概念又能够递归挪用A、staticB、autoC、无存储类别D、extern答案:B24.题号:4578假设已概念的函数有返回值,那么以下关于该函数挪用的表达中,错误的选项是().A、函数挪用能够作为一个函数的形参B、函数挪用能够作为独立的语句存在C、函数挪用能够作为一个函数的实参D、函数挪用能够出此刻表达式中,答案:A25.题号:4537以下正确的函数声明语句是().A、int add(int a,int b)A、1990B、1996C、2000D、1992答案:A26.题号:5040以下表达中,不正确的选项是().A、在一个函数内概念的变量只在本函数范围内有效B、在一个函数内的复合语句中,概念的变量在本函数范围内有效A、实参与形参是双向传递函数说明语句的三种形式:int max(int a,int b);答案:正确1.题号:4577静态局部变量是在编译时被初始化的,故它只被赋初值一次.答案:正确2.题号:4846gets 函数是用来输入一个字符的函数.答案:正确3.题号:4767函数调历时,实参和形参在类型上应按位置与形参一一对应匹配;假设是类型不匹配,通常编译器并非给出犯错信息.答案:正确4.题号:4984一个C程序只能由一个主函数组成答案:正确5.题号:4989C语言中return语句能够返回函数值.假设是return语句后表达式的值与函数说明的类型不一致,那么以return语句的表达式类型为准,系统将自行转换.答案:错误6.题号:4783通过return语句,函数能够带回一个或一个以上的返回值.答案:正确7.题号:4175在C语言中,不准诺函数嵌套概念,但函数能够嵌套挪用.答案:正确8.题号:4689return 语句能够在同一个函数中显现多次.答案:正确9.题号:4097每次挪用函数时,都要对静态局部变量从头进行初始化.答案:正确10.题号:4584函数调历时,要求实参与形参的个数必需一致,对应类型一致.答案:正确11.题号:4055C语言程序老是从main()函数开始执行.答案:正确12.题号:4161没有初始化的整型静态局部变量的初值系统均默以为0.答案:正确13.题号:4349在C语言的函数中,必需有形参.答案:错误14.题号:5108在C语言中,函数能够嵌套概念,但不能嵌套挪用.答案:错误二、填空题==================================================1.题号:4286在函数中,需要返回一个结果时,能够利用_____语句.答案:空1:return2.题号:4371函数的_____挪用是一个函数直接或间接地挪用它自身.答案:空1:递归3.题号:4333C语言中,格式输入操作是由库函数_____完成的,格式输出操作是由库函数_____完成的.答案:空1:scanf空2:printf4.题号:4373C源程序中的主函数的名称必需是_____。
一、单项选择题(每小题 2 分,共30 分)1.语言程序中可以对程序进行注释,注释部分必须用符号_____括起来。
A、‘{‘ 和’}’B、‘[‘和’]’C、“/*”和”*/”D、“*/”和”/*”2. 2.下列运算符中,优先级最低的是_____。
A、*B、!=C、+D、=3. 3.若变量已正确定义,表达式(j=3, j++) 的值是_____ 。
A、3B、4C、5D、04. 4.已知字符‘a’ 的ASCII码为97 ,执行下列语句的输出是_____。
printf ("%d, %c", ’b’, ’b’+1 ) ;A、98, bB、语句不合法C、98, 99D、98, c5. 5.表达式strcmp(“box”, “boss”) 的值是一个_______。
A、正数B、负数C、0D、不确定的数6. 6.数组定义为int a[3][2]={1, 2, 3, 4, 5, 6},数组元素_____的值为6。
A、a[3][2]B、a[2][1]C、a[1][2]D、a[2][3]7.7.要调用数学函数时,在#include命令行中应包含_____。
A、””B、””C、””D、””8.8.判断i和j至少有一个值为非0的表达式是_____。
A、i!=0 && j!=0B、i*j!=0 [yh1]C、!(i==0 || j==0)D、i&&j9.9.若a是基本整型变量,c是单精度实型变量,输入语句______是错误的。
A、scanf(”%d,%f”, &a, &c);B、scanf(”d=%d, c=%f”, &a, &c);C、scanf(”%d%f”, &a, &c);D、scanf(”%d%f”, a, c);10.10.若变量已正确定义并且指针p已经指向某个变量x,则(*p)++相当于_____。
A、p++B、x++C、*(p++)D、&x++11.11.若p1、p2都是整型指针,p1已经指向变量x,要使p2也指向x, _____是正确的。
A、p2=p1;B、p2=**p1;C、p2=&p1;D、p2=*p1;12.12.下列程序段的输出是_____。
int c[]={1, 3, 5};int *k=c+1;printf("%d", *++k);A、3B、5C、4D、613.13.不正确的赋值或赋初值的方式是______。
A、char str[]="string";B、char str[7]={'s', 't', 'r', 'i', 'n', 'g'};C、char str[10];str="string";D、char str[7]={'s', 't', 'r', 'i', 'n', 'g', ’\0’};14.14.对于以下结构定义,++p->str中的++加在_____。
struct {int len;char *str;} *p;A、指针str上B、指针p上C、str指的内容上D、以上均不是15.15.对于如下说明,语法和语义都正确的赋值是_____。
int c, *s, a[]={1, 3, 5};A、c=*s;B、s[0]=a[0];C、s=&a[1];D、c=a;二、填空题(每小题 2 分,共20 分)1. 1.写出下列程序段的输出结果。
float x1, x2;x1=3/2;x2=x1/2;printf("%d, %.1f", (int)x1, x2) ;2. 2.表达式(7<<1>>2^2 ) 的值是_______。
3. 3.写出下列程序段的输出结果。
#define A 10#define B (A<A+2)-2printf("%d", B*2);4. 4.写出判断字符变量c是英文字母的表达式。
5. 5.写出下列程序段的输出结果。
int k, x;for (k=0, x=0; k<=9&&x!=10; k++)x+=2;printf ("%d, %d", k, x) ;6. 6.写出下列程序段的输出结果。
printf(“%d, %d”, NULL, EOF);7.7.对于以下递归函数f,调用f (3) 的返回值是_____。
f (int n){ return ((n>0) 2*f(n-1)+f(n-2) : -1); }8.8.写出下列程序段的输出结果。
char str[]="hello\tworld\n";printf("%d, %c\n", sizeof(str), *(str+10));9.9.输入12345#后,写出下列程序的输出结果。
void main(){ char c;for(c=getchar(); getchar()!=’#’; c=getchar())putchar(c);}10.10.执行程序find –nx ould 时,*++argv[1]的值是_______。
三、程序阅读题(每题5分,共20分)1. 1.若输入3 1 2 3 <回车> , 则以下程序的输出结果是_______。
#include ""void main(){ int i, j, n, a[10];scanf("%d", &n);for (i=0; i<n; i++)scanf("%d",&a[i]);for (i=0; i<n; i++)for (j=0; j<n; j++)printf("%d, ", a[(i+j)%n]);}2. 2.若输入89 76 24 25 9 8 11 16 35 4 <回车> , 则以下程序的输出结果是_______。
#include ""#define N 10main(){int x[N], y1[N], y2[N];int i, j, n1, n2, t, p;n1=n2=0;for(i=0;i<N;i++){scanf(“%d”, &x[i]);if(x[i] % 2==0) y1[n1++]=x[i];else y2[n2++]=x[i];}for(i=1; i<n1; i++)for(j=0; j<n1-1; j++)if(y1[j]>y1[j+1]){t=y1[j]; y1[j]=y1[j+1]; y1[j+1]=t;}for(i=0; i<n2-1; i++){p=i;for(j=i+1; j<n2; j++)if(y2[p]<y2[j]) p=j;if(p!=i){t=y2[i]; y2[i]=y2[p]; y2[p]=t;}}for(i=0; i<n1; i++) printf("%d, ", y1[i]);for(i=0; i<n2; i++) printf("%d, ", y2[i]);}3. 3.以下程序的输出结果是_______。
#include <>int z;void p(int *x, int y){ ++*x;y--;z=*x+y+z;printf("%d, %d, %d#", *x, y, z);}void main(){ int x=1, y=5, z=9;p(&x, y);printf("%d, %d, %d#", x, y, z);}4. 4.若输入-6+15*3/5=<回车> , 则以下程序的输出结果是_______。
#include <>void main(){int m=0, sum=0;char c, oldc='+';do {c=getchar();if(c<='9'&&c>='0') m=10*m+c - '0';else {if(oldc=='+') sum += m;else sum -= m;m=0;oldc=c;printf("%d, ", sum);}} while(c!='=');}四、程序填空题(每空 2 分,共20 分)1. 1.下列程序的功能是创建单向链表。
#include <>#include <>struct link {char name[10];int mark;struct link * next;};void insert(char *, int);struct link * head = NULL;main(){char name[10];int mark;struct link * t;while ( 1 ) {scanf("%s %d", name, &mark);if ( strcmp(name, "#") == 0 ) break;______(1)_______;}for (t=head; ______(2)_______)printf("<%s>: %d\n", t->name, t->mark);}void insert(char * name, int mark){struct link * p;p = ______(3)_______ ;strcpy(p->name, name);p->mark = mark;______(4)_______;if ( head != NULL ) ______(5)_______;head = p;}2.是带命令行参数的程序。
运行prog filename时,将文本文件filename中的内容原样输出;运行prog -u filename时,将文本文件filename中的所有字母以大写方式输出(其余字符原样输出);运行prog -d filename时,只将文本文件filename中的数字输出。