- - 15)设d为字符变量,下列表达式不正确的是()。 A)d=97 B)d='a' C)d=\"a\"D)d='g' 16)设d为字符变量,下列表达式正确的是()。 A)d=678 B)d='a' C)d=\"d\" D)d='gjkl' 17)已知在ASCII字符集中,数字0的序号为48,下面程序的输出结果为()。 main() { char x, y; x='0'; y='9'; printf(\"%d,%d\\n\ } A) 因输出格式不合法,输出错误信息 B)48,57 x=1,y=x+3/2的值为()。 A)1 B)2C)2.0D)2.5 29)下列程序的执行结果是()。 #include - - 变量a,b,c的值为【1】 2)若有如下程序段: int a=10, b=9, c=8; c=(a-=(b-5)); c=(a%11)+(b=5); 顺序执行上述语句后,变量b的值为【2】 3)设有以下变量定义,并已赋确定的值 char w; int x; float y; double z; 则表达式:w*x+z-y所求得的数据类型为【3】。 4)C语言基本数据类型包括【4】、【5】、【6】、【7】。 5)C语言在定义变量的同时说明变量的【8】,系统在编译时就能根据变量定义及其【9】为它分配相应数量的存储空间。 6)在C语言中,标识符只能由【10】、【11】和【12】三种字符组成,且第一个字符必须【13】或 【14】。 7)实型变量分为【15】和【16】,即float和double型。 8)C语言中规定,在变量定义的同时也可以给变量赋初值,叫做【17】。 9)C的字符串常量是用【18】括起来的字符序列。 10)在C 语言中,系统在每一个字符串的结尾自动加一个“字符串结束标志符”即【19】,以便系统据此数据判断字符串是否结束。 11)下面的程序 mian() {float x; int i; x=3.6; i=(int)x; printf(\"x=%f,i=%d\} 运行结果为【20】。 第3章 顺序结构 一、单选题 1)设x为int型变量,则执行以下语句后,x的值为()。 x=10; x+=x-=x-x; A)10 B)20 C)40 D)30 2)下列可作为C语言赋值语句的是()。 A)x=3,y=5 B)a=b=6 C)i--; D)y=int(x); 3)设x,y,z,t均为int型变量,则执行以下语句后,t的值为()。 x=y=z=1; t=++x||++y&&++z; A)不定值 B) 2 C)1 D)0 4)若以下选项中的变量已正确定义,则正确的赋值语句是()。 A)x1=26.8%3B)1+2=x2 C)x3=0x12; D)x4=1+2=3; 5)设有以下定义 int a=0; double b=1.25; - char c='A'; #define d 2 则下面语句中错误的是()。 A)a++; B)b++; C)c++;D)d++; 6)有以下程序 main() { int x=102, y=012; printf(\"%2d,%2d\\n\ } 执行后输出的结果是()。 A)10,01 B)02,12 C)102,10 D)02,10 7)有以下程序 main() { int m=3, n=4,x; x=-m++; x=x+8/++n; printf(\"%d\\n\ } 程序运行后的输出结果是()。 A)3 B)5 C)-1D)-2 8)有以下程序 main() { char a='a',b; printf(\"%c,\printf(\"%c\\n\ } 程序运行后的输出结果是( )。 A)b,b B)b,cC)a,b D)a,c 9)有以下程序 main() { int m=0256,n=256; printf(\"%o %o\\n\ } 程序运行后的输出结果是( )。 A)0256 0400 B)0256 256 C)256 400 D)400 400 10)有以下程序 main() { char a,b,c,d; scanf(\"%c,%c,%d,%d\printf(\"%c,%c,%c,%c\\n\} 若运行时从键盘上输入:6,5,65,66。则输出结果是()。A)6,5,A,BB)6,5,65,66C)6,5,6,5 D)6,5,6,6 11)数字字符0的ASCII值为48,若有以下程序 main() { char a='1',b='2'; printf(\"%c,\ printf(\"%d\\n\ .可修编- - - } 程序运行后的输出结果是( )。 A)3,2 B)50,2 C)2,2 D)2,50 12)有以下程序 main() { int m=12,n=34; printf(\"%d%d\printf(\"%d%d\\n\} 程序运行后的输出结果是( )。 A)12353514 B)12353513 C)12343514 D)12343513 13)有以下程序 main() {int m,n,p; scanf(\"m=%dn=%dp=%d\…… } 若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是()。 A)m=123n=456p=789 B)m=123 n=456 p=789 C)m=123,n=456,p=789 D)123 456 789 14)有以下程序 main() { int a,b,d=25; a=d/10%9; b=a-1; printf(\"%d,%d\\n\} 程序运行后的输出结果是( )。 A)6,1 B)2,1 C)6,0 D)2,0 15)以下叙述中错误的是()。 A)C语句必须以分号结束 B)复合语句在语法上被看作一条语句 C)空语句出现在任何位置都不会影响程序运行 D)赋值表达式末尾加分号就构成赋值语句 16)以下叙述中正确的是()。 A)调用printf函数时,必须要有输出项 B)使用putchar函数时,必须在之前包含头文件stdio.h C)在C语言中,整数可以以十二进制、八进制或十六进制的形式输出 D)调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码 17)有以下程序 #include - - 6)以下程序运行时,若从键盘输入:10 20 30<回车>,输出的结果是【6】。 #include\"stdio.h\" main() { int i=0, j=0, k=0; scanf(\"%d%*d%d\printf(\"%d%d%d\\n\} 7)已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33<回车>,则输出结果是【7】。 #include\"stdio.h\" main() { char a, b; a=getchar(); scanf(\"%d\a=a-'A'+'0';b=b*2; printf(\"%c %c\\n\} 8)以下程序运行后的输出结果是【8】。 main() {int x=0210; printf(\"%x\\n\ 9)以下程序运行后的输出结果是【9】。 main() {char c; int n=100; float f=10; double x; x=f*=n/=(c=50); printf(\"%d %f\\n\ } 10)已知字母A的ASCII码为65。以下程序运行后的输出结果是【10】 。 main() {char a, b; a='A'+'5'-'3'; b=a+'6'-'2' ; printf(\"%d %c\\n\ a, b); } - 第4章 选择结构 一、单选题 1)若变量c为char类型,能正确判断出c为小写字母的表达式是() A)'a'<=c<='z'B)(c>= 'a')||(c<= 'z') C)('a'<=c)and ('z'>=c) D)(c>= 'a')&&(c<= 'z') 2)设有定义:int a=2,b=3,c=4;,则以下选项中值为0的表达式是( ) A)(!a==1)&&(!b==0)B)(a=10 or a<=0B)a>=0|a<=10 C)a>=10 &&a<=0D)a>=10‖a<=0 4)下列运算符中优先级最高的是()。 A)> B)+ C)&& D)!= 5)以下关于运算符优先级的描述中,正确的是()。 A)!(逻辑非)>算术运算>关系运算>&&(逻辑与)>||(逻辑或)>赋值运算 B)&&(逻辑与)>算术运算>关系运算>赋值运算 C)关系运算>算术运算>&&(逻辑与)>||(逻辑或)>赋值运算 D)赋值运算>算术运算>关系运算>&&(逻辑与)>||(逻辑或) 6)逻辑运算符的运算对象的数据类型()。 A)只能是0或1 B)只能是.T.或.F. C)只能是整型或字符型 D)任何类型的数据 7)以下程序的运行结果是()。 main( ) { int c, x, y; x=1; y=1; c=0; c=x++||y++; printf(\"\\n%d%d%d\\n\ } A)110 B)211 C)011 D)001 8)以下程序的运行结果是()。 main( ) {int c, x, y; x=0; y=0; c=0; c=x++&&y++; printf(\"\\n%d%d%d\\n\ } A)100 B)211 C)011 D)001 9)判断字符型变量ch为大写字母的表达式是()。 A)'A'<=ch<='Z' B)(ch>='A') & (ch<='Z') .可修编- - - C)(ch>='A')&&(ch<='Z') D)(ch>='A') AND (ch<='Z') case 1+2:printf(\"* *\\n\"); } 15)以下关于运算符优先顺序的描述正确的是()。 A)关系运算符<算术运算符<赋值运算符<逻辑运算符 B)逻辑运算符<关系运算符<算术运算符<赋值运算符 C)赋值运算符<逻辑运算符<关系运算符<算术运算符 D)算术运算符<关系运算符<赋值运算符<逻辑运算符 10)判断字符型变量ch为小写字母的表达式是()。 A)'a'<=ch<='z' B)(ch>=a) && (ch<=z) C)(ch>='a') || (ch<='z') D)(ch>='a') && (ch<='z') 11)以下if语句书写正确的是()。 A)if(x=0;) B)if(x>0) printf(\"%f\ {x=x+1; printf(\"%f\else printf(\"%f\ else printf(\"%f\C)if(x>0); D)if(x>0) {x=x+1;printf(\"%f\ {x=x+1; printf(\"%f\else printf(\"%f\ else printf(\"%f\12)分析以下程序: main( ) { int x=5, a=0, b=0; if(x=a+b) printf(\"** **\\n\"); else printf(\"## ##\\n\"); } 以上程序()。 A)有语法错,不能通过编译 B)通过编译,但不能连接 C)输出** ** D)输出## ## 13)写出下面程序的执行结果()。 main( ) { int x, y=1; if(y!=0) x=5; printf(\"%d\\ if(y==0) x=3; else x=5; printf(\"%d\\\n\} A)1 3 B)1 5 C)5 3 D)5 14)若有以下变量定义: float x; int a,b; 则正确的switch语句是()。 A)switch(x) {case1.0:printf(\"*\\n\"); case 2.0:printf(\"* *\\n\"); } B)switch(x) {case 1,2:printf(\"*\\n\"); case 3:printf(\"* *\\n\"); } C)switch(a+b) {case 1:printf(\"*\\n\"); case2*a:printf(\"* *\\n\"); } D)switch(a+b) {case 1:printf(\"*\\n\"); - 16)能正确表示a>=10或a<=0的关系表达式是()。 A)a>=10 or a<=0 B)a>=10 | a<=0 C)a>=10 && a<=0 D)a>=10 || a<=0 17)以下不正确的if 语句形式是()。 A)if(x>y && x!=y) ; B)if(x==y) x+=y ; C)if(x!=y) scanf(\"%d\", &x) else scanf(\"%d\", &y); D)if(x - - {int x=2, y=-1, z=2; if(x - - 1)设x和y均为int型变量,则执行以下的循环后,y值为() for(y=1,x=1;y<=50;y++) { if(x==10)break; if(x%2==1) { x+=5; continue;} x-=3; } if(a%2==1){a+=3;continue;} a-=2; } printf(\"%d\\n\ } 程序运行后的输出结果是() 。 A)3 B)4 C)0D)2 7)有以下程序段 int n,t=1,s=0; A)4 B)5C)6 D)7 2)假定a和b为int型变量,则执行以下语句后b的值为()。 a=1; b=10; do { b-=a; a++; } while (b--<0); A)9 B)-2 C)-1 D)8 3)设j为int型变量,则下面for循环语句的执行结果是()。 for( j=10;j>3;j--) { if(j%3)j--; --j; --j; printf(\"%d \} A)6 3 B)7 4 C)6 2 D)7 3 4)有以下程序: main( ) { char k; int i; for(i=1;i<3;i++) {scanf(\"%c\ switch(k) { case '0': printf(\"another\\n\"); case '1': printf(\"number\\n\"); } } } 程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是()。 A. anotherB. anotherC. anotherD. number number number number numberanothernumber 5) 变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是()。 A.) for(i=1,p=1;i<=5;i++) p*=i; B)for(i=1;i<=5;i++){ p=1; p*=i;} C)i=1;p=1;while(i<=5){p*=i; i++;} D)i=1;p=1;do{p*=i; i++; }while(i<=5); 6)有以下程序 main() { int a=1,b; for(b=1;b<=3; b++) { - scanf(\"%d\ do{ s=s+t; t=t-2; }while (t!=n); 为使此程序段不陷入死循环,从键盘输入的数据应该是() A)任意正奇数 B)任意负偶数 C)任意正偶数 D)任意负奇数 二、填空题 1)有以下程序: main( ) {int t=1,i=5; for(;i>=0;i--) t*=i; printf(\"%d\\n\ } 执行后的输出结果是【1】。 2)以下程序运行后的输出结果是【2】。 main() { int p=11, i=0, j=0; while(i<7 && p%2==1) { j+=p; i++; p=p*i;} printf(\"%d\\n\ } 3)以下程序的功能是计算:s=1+12+123+1234+12345。请填空。 main() { int t=0,s=0,i; for( i=1; i<=5; i++) { t=i+ 【3】; s=s+t; } printf(\"s=%d\\n\ } 第6章 函数 一、单选题 .可修编- - - 1)有如下函数调用语句 func(recl, rec2+rec3, (rec4,rec5)); 该函数调用语句中,含有的实参个数是()。 A)3 B)4 C)5 D)有语法错误 2)有如下程序 int func(int a, int b) { return(a+b); } main() {int x=2, y=5, z=8, r; r=func(func(x, y), z); printf(\"%d\\n\ } 该程序的输出结果是()。 A)12 B)15 C)14 D)13 3)以下关于函数的叙述中正确的是() A)每个函数都可以被其它函数调用(包括main函数)B)每个函数都可以被单独编译 C)每个函数都可以单独运行 D)在一个函数部可以定义另一个函数 4)在C语言程序中,有关函数的叙述正确的有()。 A)函数的定义可以嵌套,但函数的调用不可以嵌套 B)函数的定义不可以嵌套,但函数的调用可以嵌套 C)函数的定义和调用均不可以嵌套 D)函数的定义和调用均可以嵌套 5)以下程序的输出结果是()。 long fib(int n) {if(n>2) return(fib(n-1)+fib(n-2)); else return(2); } main() {printf(\"%d\\n\A)2 B)6 C)4 D)8 6)下列各函数首部定义正确的是()。 A)void play(var:ineger,var b:integer) B)double play(int a, b) C)float play(int a, int b) D)sub play(a as integer, b as integer) 7)以下程序运行后的输出结果是()。 #define N 20 fun(int a[],int n,int m) { int i,j; for(i=m;i>=n;i--)a[i+1]=a[i]; - } main() {int i,a[N]={1,2,3,4,5,6,7,8,9,10}; fun(a,2,9); for(i=0;i<5;i++)printf(\"%d\ } A)10234 B)12344 C)12334D)12234 8)在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是()。 A)地址传递B)单向值传递 C)由实参传给形参,再由形参传回实参 D)传递方式由用户指定 9)设有以下函数: f(int a) { int b=0; static int c=3; b++;c++; return(a+b+c); } 如果在下面的程序中调用该函数,则输出结果是()。 main() { int a = 2, i; for(i=0;i<3;i++) printf(\"%d,\} A)7,8,9,B)7,9,11,C)7,10,13, D)7,7,7, 10)以下函数值的类型是()。 fun(float x) { float y; y=3*x-4; return y; } A)int B)不确定C)voidD)float 11)以下函数定义正确的是()。 A) double fun(int x, int y) B) double fun(int x; int y) C) double fun(int x, int y) ; D) double fun(int x ,y) 12)C语言规定,简单变量作实参,它与对应形参之间的数据传递方式是()。 A)地址传递; B)单向值传递; C)双向值传递; D)由用户指定传递方式 13)以下关于C语言程序中函数的说确的是()。 .可修编- - - A)函数的定义可以嵌套,但函数的调用不可以嵌套; B)函数的定义不可以嵌套,但函数的调用可以嵌套; 该函数调用语句中,含有的实参个数是()。A) 3B) 4 C) 5 D) 有语法错 C)函数的定义和调用均不可以嵌套; D)函数的定义和点用都可以嵌套。 14)以下正确的函数形式是()。 A)double fun(int x,int y) {z=x+y;returnz;} B)fun(int x,y) {int z;return z;} C)fun(x,y) {int x,y; double z; z=x+y; return z;} D)double fun(int x,int y) {double z; z=x+y; return z;} 15)以下说法不正确的是()。 A)实参可以是常量、变量或表达式 B)形参可以是常量、变量或表达式 C)实参可以是任意类型 D)形参应与其对应的实参类型一致 16)C语言允许函数值类型缺省定义,此时该函数值隐含的类型是()。 A)float型B)int 型C)long 型 D)double 型 17)以下错误的描述是()。函数调用可以 A)出现在执行语句中 B)出现在一个表达式中 C)做为一个函数的实参 D)做为一个函数的形参 18)若用数组名作为函数调用的实参,传递给形参的是()。A)数组的首地址B)数组第一个元素的值 C)数组中全部元素的值D)数组元素的个数 19)以下不正确的说法为()。 A)在不同函数中可以使用相同名字的变量 B)形式参数是局部变量 C)在函数定义的变量只在本函数围有效 D)在函数的复合语句中定义的变量在本函数围有效 20)下面程序的正确运行结果是()。 main( ) {int a=2, i; for(i=0; i<3; i++) printf(\"%4d\ } f(int a) { int b=0; static int c=3; b++; c++; return (a+b+c); } A)7 7 7 B)7 10 13C)7 9 11D)7 8 9 21)有如下函数调用语句 func(rec1,rec2+rec3,(rec4,rec5); - 22)有如下程序 int runc(int a,int b) { return(a+b);} main( ) { int x=2,y=5,z=8,r; r=func(func(x,y),z); printf(\"%\\d\\n\ } 该程序的输出的结果是()。A) 12 B) 13 C) 14 D) 15 23)有以下程序 main() { char s[]=\"\\n123\\\\\"; printf(\"%d,%d\\n\} 执行后输出结果是()。 A) 赋初值的字符串有错 B) 6,7 C) 5,6 D) 6,6 24)以下对C语言函数的有关描述中,正确的是()。 A) 在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 B)C函数既可以嵌套定义又可以递归调用 C) 函数必须有返回值,否则不能使用函数 D) C程序中有调用关系的所有函数必须放在同一个源程序文件中 25)以下函数值的类型是()。 fun(float x) { float y; y= 3*x-4; return y; } A) int B) 不确定 C) void D) float 26)下面程序的输出结果是()。 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); } A)1 B)2 C)7 D)10 27)若有说明语句:static int a[3][4]={0};则下面叙述正确的是()。 A)只有a[0][0]元素可得到初值0; B)数组a中每个元素均可得到初值0。 C)数组a中各元素都可得到初值,但值不一定为0; .可修编- - - D)此说明语句不正确 28)以下程序的运行结果是()。 main( ) { int a=2, i ; for(i=0;i<3;i++) printf(\"%4d\f(int a) { int b=0, c=3; b++; c++; return(a+b+c); } A)7 10 13 B)7 7 7 C)7 9 11 D)7 8 9 二、填空题 1)以下程序的功能是调用函数fun计算:m=1-2+3-4+…+9-10,并输出结果。请填空。 int fun( int n) { int m=0,f=1,i; for(i=1; i<=n; i++) { m+= i *f; f=【1】; } return m; } main() { printf(\"m=%d\\n\2)以下程序运行后的输出结果是【2】。 fun(int a) { int b=0; static int c=3; b++;c++; return(a+b+c);} main() { int i,a=5; for(i=0;i<3;i++) printf(\"%d%d\ printf(\"\\n\");} 3)以下程序运行后的输出结果是【3】 void swap(int x,int y) { int t; t=x;x=y;y=t; - printf(\"%d %d \} main() { int a=3, b=4; swap(a, b); printf(\"%d %d\ } 4)以下函数的功能是:求x的y次方,请填空。 double fun( double x, int y) { int i;double z; for(i=1, z=x; i - - 3)执行下面的程序段后,变量k中的值为()。 int k=3,s[2]; s[0]=k; k=s[1]*10; A)不定值B)33 C)30 D)10 4)以下程序执行后输出结果是()。 main() { int x[8]={8,7,6,5, 4, 3},*s; s=x+3; printf(\"%d\\n\} A)随机值B)3C)5 D)6 5)以下程序的输出结果是()。 A)18B)19C)20D)21 main() { int a[3][3]={ {1,2},{3,4},{5,6} },i,j,s=0; for(i=1;i<3;i++) for(j=0;j<=i;j++)s+=a[i][j]; printf(\"%d\\n\} 6)以下程序的输出结果是()。 main() { char w[][10]={ \"ABCD\for(k=1;k<3;k++) printf(\"%s\\n\} A) ABCDB)ABCD FGH EFG KL IJ M C)EFG D)EFGH JK IJKL O 7)以下不能正确进行字符串赋初值的语句是() A)char str[5]=\"good!\";B)char str[]=\"good!\";C)char *str=\"good!\";D)char str[5]={'g','o','o','d'}; 8)给出以下定义: char x[]=\"abcdefg\"; char y[]={'a','b','c','d','e','f','g'}; 则正确的叙述为 A)数组X和数组Y等价 B)数组x和数组Y的长度相同 C)数组X的长度大于数组Y的长度 D)数组X的长度小于数组Y的长度 9)若有以下说明: int a[12]={1,2,3,,5,6,7,8,9,10,11,12}; char c='a',d,g; 则数值为4的表达式是 A)a[g-c] B)a[4]C)a['d'-'c'] D)a['d'-c] 10)执行下面的程序段后,变量k中的值为 - int k=3,s[2]; s[0]=k; k=s[1]*10; A)不定值 B)33 C)30 D)10 11)在C语言中,引用数组元素时,其数组下标的数据类型允许是()。 A)整型常量 B)整型常量或整型表达式 C)整型表达式 D)任何类型的表达式 12)以下对一维整型数组a的正确说明是() A)int B)int n=10,a[n]; C)int n; scanf(\"%d\D ) #define SIZE 10 int a[SIZE]; 13)以下能对一维数组a进行正确初始化的语句是()。A)int a[10]=(0,0,0,0,0); B)int a[10]={}; C)int a[ ]={0}; D)int a[10]={10*1}; 14)下列定义正确的是()。 A)static int a[]={1, 2, 3, 4, 5} B)int b[1]={2, 5} C)int a(10) D)int 4e[4] 15)设有char str[10],下列语句正确的是()。 A)scanf(\"%s\ B)printf(\"%c\C)printf(\"%s\ D)printf(\"%s\ 16)假设array是一个有10个元素的整型数组,则下列写法中正确的是()。 A)array[0]=10 B)array=0 C)array[10]=0 D)array[-1]=0 17)分析下列程序 main() {int n[3],i,j,k; for(i=0;i<3;i++) n[i]=0; k=2; for(i=0;i A)2 B)1 C)0 D)3 18)若有如下定义: int a[3][3]={1,2,3,4,5,6,7,8,9},i ; 则下列语句的输出结果是()。 for (i=0; i<=2; i++) printf(\"%d\A)3 5 7 B)3 6 9 C)1 5 9 D)1 4 7 19)下列字符串赋值语句中,不能正确把字符串C program赋给数组的语句是()。 A)char a[]={'C', '', 'p', 'r', 'o', 'g', 'r', 'a', 'm' , '\\0'}; B)char a[10]; strcpy(a, \"C program\"); .可修编- - - C)char a[10]; a=\"C program\"; D)char a[10]={\"C program\; 20)下面程序的运行结果是()。 char c[5]={ 'a', 'b', '\\0', 'c', '\\0'}; printf(\"%s\A)'a''b' B)ab\\0c\\0 C)ab c D)ab 21)若有如下定义和语句: char s[12]= \"a book!\"; printf(\"%d\则输出结果是()。 A)12 B)10 C)7 D)6 22)若有说明:int a[3][4]={0};则下面正确的叙述是()。 A)只有元素a[0][0]可以得到初值0 B)此说明语句不正确 C)数组a中每个元素均可得到初值0 D)数组a每个元素均可得到初值,但值不一定为0 二、填空题 1)以下程序运行后的输出结果是【1】 main() { int i,n[]={0,0,0,0,0}; for(i=1;i<=4;i++) { n[i]=n[i-1]*2+1; printf(\"%d \ } } 2)以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。请填空。 main() { int i,a[20],sum,count; sum=count=0; for(i=0;i<20;i++)scanf(\"%d\【2】); for(i=0;i<20;i++) { if(a[i]>0) { count++;sum+=【3】;} } printf(\"sum=%d,count=%d\\n\} 3)对与数组a[m][n]来说,使用数组的某个元素时,行下标的最大值是【4】,列下标的最大值是【5】。 4)下面程序中的数组a包括10个整数元素,从a中第二个元素起,分别将后项减前项之差存入数组b,并按每行3个元素输出数组b。请填空。 main( ) { int a[10], b[10], i for(i=0; i<10; i++) scanf(\"%d\ for(i=1;【6】; i++) b[i]=【7】; for(i=1; i<10; i++) - { printf(\"%3d\ if (【8】) printf(\"\\n\"); } } 5)以下程序是求矩阵a , b的和,结果存入矩阵c中并按矩阵形式输出。请填空 main( ) { int a[3][4]={{ 7, 5, -2, },{1, 0, -3, 4 },{6, 8, 0, 2 }}; int b[3][4]={{ 5, -1, 7, 6 },{-2, 0, 1, 4 },{2, 0, 8, 6}}; int i, j, c[3][4]; for(i=0; i<3; i++ ) for(j=0; j<4; j++ ) c[i][j]=【9】; for(i=0; i<3; i++ ) { for(j=0; j<4; j++ ) printf(\"%3d\【10】; } } 6)下列程序的运行结果是【11】。 main() {int a[]={1,2,3,4},i,j,s=0; j=1; for(i=3;i<=0;i--) {s=s+a[i]*j; j=j*10; } printf(\"s=%d\\n\} 第9章 指针 一、单选题 1)设有如下定义: int arr[]={6,7,8,9,10}; int *ptr; 则下列程序段的输出结果为()。 ptr=arr; *(ptr+2)+=2; printf(\"%d,%d\\n\ A) 8,10 B)6,8 C)7,9 D)6,10 2)执行以下程序段后,m的值为( )。 int a[2][3]={{1,2,3},{4,5,6}}; int m,*p; p=&a[0][0]; m=(*p)*(*(p+2))*(*(p+4)); A)15 B)14 C)13 D)12 3)有以下程序段 char arr[]=\"ABCDE\"; char *ptr; .可修编- - - for(ptr=arr;ptr - - B)该结构体中最后一个成员所需存储空间 C)该结构体中占用最大存储空间的成员所需存储空间 定义,能输出字母M的语句是()。 A)prinft(\"%c\\n\ D)该结构体中所有成员所需存储空间的总和 8)若有以下说明和语句: struct worker { int no; char﹡name; }work,﹡p=&work; 则以下引用方式不正确的是() A)work.no B)(﹡p).no C)p->noD)work->no 9)有如下定义: struct date{ int year, month, day; }; struct worklist{ char name[20]; char sex; struct date birthday; }person; 对结构体变量person的出生年份进行赋值时,下面正确的赋值语句是() A)year=1958B)birthday.year=1958 C)person.birthday.year=1958 D)person.year=1958 10)以下对结构体类型变量的定义中不正确的是()。 A)#define STUDENT struct student B)struct student STUDENT { int num; { int num; float age; float age; }std1; }std1; C)struct D)struct { int num; { int num; float age; float age;} student; }std1; struct student std1; 11)设有以下说明语句 struct stu { int a; float b;}stutype; 则下面的叙述不正确的是() A)struct是结构体类型的关键字 B)struct stu是用户定义的结构体类型 C)stutype是用户定义的结构体类型名 D)a和b都是结构体成员名 12)在VC++编译环境下,以下程序的运行结果是()。 #include - - 一、单选题 1)有以下程序: main( ) { unsigned char a,b; a=4|3; b=4&3; printf(\"%d %d\\n\ } 执行后的输出结果是( )。 A)7 0 B)0 7 C)1 1 D)43 0 2)以下程序的功能是进行位运算 main() {unsigned char a, b; a=7^3; b= ~4 & 3; printf(\"%d %d\\n\ } 程序运行后的输出结果是( )。 A)4 3 B)7 3 C)7 0 D)4 0 二、填空题 1)以下程序运行后的输出结果是【1】。 main() { short a=10,b=20,c; a=a>>2; b=b&4; c=a|b; printf(\"%d %d %d\\n\} 第12章 数据文件 一、单选题 1)下述关于C语言文件的操作的结论中,正确的是()。A)对文件操作必须先关闭文件 B)对文件操作必须先打开文件 C)对文件操作顺序无要求 D)对文件操作前必须先测文件是否存在,然后再打开文件。2)若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值是() A)EOF B)0 C)非零值D)NULL 3)如果要打开一个已经存在的非空文件\"FILE\"进行修改,正确的打开语句是( )。 A)fp=fopen(\"FILE\)fp=fopen(\"FILE\C)fp=fopen(\"FILE\ D)fp=fopen(\"FILE\4)当已存在一个abc.txt文件时,执行函数fopen (“abc.txt”, “r++”)的功能是()。 A)打开abc.txt文件,清除原有的容 B)打开abc.txt文件,只能写入新的容 - C)打开abc.txt文件,只能读取原有容 D)打开abc.txt文件,可以读取和写入新的容 5)以下叙述中不正确的是()。 A)C语言中的文本文件以ASCII码形式存储数据 B)C语言中对二进制位的访问速度比文本文件快 C) C语言中,随机读写方式不使用于文本文件 D) C语言中,顺序读写方式不使用于二进制文件 6)以下程序企图把从终端输入的字符输出到名为abc.txt的文件中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。 #include - - 答案: 第1章 一、单选题 1~5:BBBAC 第2章 一、单选题 1 ~ 5:DBDCA 6~10:ABCAD 11~15:AAAAC 16~20:BBCBA 21~25:DAABB 26~30:CCCBD 31~35:ABAAB 36~37:BB 二、填空题 【1】11 6 4 【2】5 【3】double 【4】整型 【5】字符型 【6】实型 【7】枚举类型 【8】数据类型 【9】数据类型 【10】字母 【11】数字【12】下划线【13】字母【14】下划线 【15】单精度 【16】双精度 【17】变量初始化 【18】双引号 【19】’\\0’ 【20】x=3.600000,i=3 第3章 一、单选题 1 ~ 5:BCCCD 6~10:CDACA 11~15:CAABC 16~17:BA 二、填空题 【1】B 66 【2】n1=%d\\nn2=%d\\n 【3】12 【4】11 【5】25 21 37 【6】10030 【7】1 B【8】88 【9】2 20.000000 【10】67 G 第4章 一、单选题 1 ~ 5:DADBA 6~10:DBACD 11~15:BDDDC 16~20:DCADA 21~25:ACBDD 26~30:BADAA 二、填空题 【1】1 1 0 1 【2】10 20 0 【3】yes【4】x==0 【5】 x=1 y=0 x=2 - 【6】ch>=A’ && c<=’Z’ 【7】ch=ch-32 【8】-1 【9】01 第5章 一、单选题 1 ~ 5:CDBCB 6~7:CD 二、填空题 【1】0 【2】22 【3】t*10 第6章 一、单选题 1 ~ 5:ABBBC 6~10:CCBAA 11~15:ABBDB 16~20:BDADD 21~25:ADCAA 26~28:BBB 二、填空题 【1】–f 【2】0 101 112 12 【3】4 3 3 4 【4】x 【5】void fun(double b[ ]) 或void fun(double *b) 【6】j 【7】str[j-1] 【8】A+B=9【9】246 【10】1:a=1,b=1 2:a=1,b=2 【11】x=9 x=10 【12】9 【13】777 第7章 一、单选题 1 ~ 2:AD 二、填空题 【1】81 【2】100, 144 第8章 一、单选题 1 ~ 5:CBABA 6~10:DACDA 11~15:BDCAD 16~20:ADACD 21~22:CC 二、填空题 【1】1 3 7 15 【2】&a[i] 或 a+i 【3】a[i] 或 *(a+i) 【4】m-1 【5】n-1 【6】i<10 【7】a[i]-a[i-1] 【8】i%3= =0 【9】a[i][j]+b[i][j] 【10】printf(“\\n”) 【11】s=0第9章 一、单选题 1 ~ 5:DADAC 6~10:ACDAC 11~15:DDDAA 16~18:ABC 第10章 一、单选题 1 ~ 5:BDCBB 6~10:CDDCD 11~15:CDDBB 二、填空题 .可修编- - - 【1】2 【2】3 【3】30【4】10,x 【5】2,3 第11章 一、单选题 1 ~ 2:AA 二、填空题 【1】2 4 6 第12章 一、单选题 1 ~ 6:BCDDDA 二、填空题 【1】文本文件 【2】二进制文件 【3】非零值 - 【4】0 .可修编- 因篇幅问题不能全部显示,请点此查看更多更全内容- - printf(\"%c\ } 程序运行后的输出结果是( )。 A)15 B)16 C)12 D)59 15)有以下程序 point(char *p){p+=3;} main() { char b[4]={'a','b','c','d'},*p=b; point(p);printf(\"%c\\n\ } 程序运行后的输出结果是()。 A)a B)b C)c D)d 16)设有定义:int n1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是( )。 A)*p=*q; B)p=q; C)*p=&n1; D)p=*q; 17)若有定义:int x=0, *p=&x;,则语句printf(\"%d\\n\的输出结果是()。 A)随机值 B)0 C)x的地址 D)p的地址 18)有以下程序 main() {int a=7,b=8,*p,*q,*r; p=&a;q=&b; r=p; p=q;q=r; printf(\"%d,%d,%d,%d\\n\} 程序运行后的输出结果是( )。 A)8,7,8,7 B)7,8,7,8C)8,7,7,8D)7,8,8,7 第10章 结构体与共用体 一、单选题 1)以下选项中不能正确把cl定义成结构体变量的是()A)typedef struct B)struct color cl { int red; { int red; int green; int green; int blue; int blue; } COLOR; }; COLOR cl; C)struct color D)struct { int red; { int red; int green;int green; int blue;int blue; } cl; } cl; 2)在VC++编译环境下,如下定义的变量a所占存字节数是() union U - { char st[4]; int i; long l; }; struct a { int c; union U u; }a; A)4 B)5 C)6 D)8 3)下列程序段执行后的结果为() main() {union { char c[2]; int k; }r; r.c[0]= '4'; r.c[1]= '5'; r.k=34; printf(\"%d,%d,%d\\n\} A)34,3,4 B)45,4,5 C)34,34,0 D)34,34,34 4)设有以下定义: struct sk {int a; float b;} data,*p; 若有“p=&data;”,则对data中的a域的正确引用是()。A)(*p).data.a B)(*p).a C)p->data.a D)p.data.a 5)下列程序的输出结果是() A)5B)6 C)7D)8 struct abc { int a, b, c; }; main() { struct abc s[2]={{1,2,3},{4,5,6}};int t; t=s[0].a+s[1].b; printf(\"%d\\n\} 6)设有如下定义: struct sk {int a; float b; }data; int *p; 若要使p指向data中的a域,正确的赋值语句是() A)p=&a; B)p=data.a; C)p=&data.a;D)*p=data.a 7)在说明一个结构体变量时系统分配给它的存储空间是()。 A)该结构体中第一个成员所需存储空间 .可修编-