608小行动

一、判断题(F)1.C程序总是从程序的第一条语句开始执行。(T)2.在C程序中,语句之间必须要用分号“;”分隔。(T)3.一个C程序必须由一个或一个以上的函数组成。(T)4.字符常量的长度肯定为1。(T)5.一个字符变量只能储存一个字符。(T)6.整数-32100可以赋值给int型和long int型变量。(T)7.在C程序中,逗号运算符的优先级最低。(F)8.式子7&3+12的值是15。(F)9.执行表达式(int)i后,i的类型一定变为整型。(F)10.若a是实型变量,在执行了a=5后,a将变为整型变量。(F)11.若a和b的类型相同,在执行a=b;后b中的值将丢失。(T)12.若a和b类型相同,在执行了赋值语句a=b;后b中的值将放入a中;b中的值不变。(F)13.若有int i=10,j=0;则执行完语句if(j=0)i++;else i–;i的值为11。(F)14.若int a=1,b=2,c=3;if(a>b)a=b;if(a>c)a=c;则a的值为3。(T)15.若int a=1,b=2,c=3;if(a>c)b=a;a=c;c=b;则c的值为2。(T)16.int i=3,j=5;if(i>j);是正确的。(T)17.在C语言中,逻辑“真”等价于不等于0的数。(T)18.for(i=0,k=-1;k++,i++)printf(“\n”);是无限循环。(F)19.for(m=22;m<1000;m++)if(m%3==0&&m%7!=0)break;是当m能被3整除或m不能被7整除时,结束本次循环进入下次循环。(T)20.int n;scanf(“%d”,&n);int a[n];是不合法的。(F)21.数组说明int a[3][]={1,2,3,4,5};是正确的。(T)22.C语言规定,函数返回值的类型是由在定义该函数时所指定的函数类型所决定的。(T)23.一个#include命令只能指定一个被包含文件。(T)24.结构体类型的定义允许嵌套。(T)25.在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量。二、选择题(C)1.以下叙述中正确的是?A.C语言比其他语言高级B.C语言可以不用编译就能被计算机识别执行C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D.C语言出现的最晚,具有其他语言的一切优点(D)2.求平方根函数的函数名为?A.cosB.absC.powD.sqrt(D)3.以下标识符中,不能作为合法的C用户定义标识符的是?A.ForB.PrintfC.WORDD.sizeof(C)4.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符?A.必须为字母B.必须为下划线C.必须为字母或下划线D.可以是字母、数字和下划线(C)5.不合法的十六进制数是?A.0xffB.0X11C.0x1gD.0Xabc(D)6.下列字符序列中,可用作C标识符的一组字符序列是?A.S.b,sum,average,_aboveB.class,day,lotus_1,2dayC.#md,&12x,month,student_n!D.D56,r_1_2,name,_st_1(D)7.下列变量说明语句中,准确的是?A.char:a b c;B.char a;b;c;C.int x;z;D.int x,z;(D)8.逻辑运算两侧运算对象的数据类型:A.只能是0或1B.只能是0或非0正数C.只能是整型或字符型数据D.可以是任何类型的数据(B)9.若有说明:double a;则正确输入语句是?A.scanf(“%If”,a)B.scanf(“%If”,&a)C.scanf(“%if”,&a)D.scanf(“%lo”,&a)(D)10.以下运算符中,优先级最高的运算符是?A.=B.!=C.(乘号)D.()(B)11.若变量a与i已正确定义,且i已正确赋值,合法的吾句是?A.a1B.++i;C.a=a++=5;D.a=int(0);(D)12.以下程序的输出结果是?Main(){int i,j,k,a=3,b=2;i=(–ab++)?–a:++b;j=a++;k=b;printf(“i=%d,j=%d,k=%d\n"ij,k);}A.i=2j=1,k=3B.i=1j=1,k=2C.i=4,j=2,k=4D.i=1,j=1,k=3(C)13.为了使输出结果为:t=4,则给a和b输入的值应满足的条件是?void main(){int s,t,a,b;scanf(”%d,%d",&a,&b);s=1;t=1;if(a>0)s=s+1;if(a>b)t=s+1;else if(ab)t=5;else t=2s;printf(“%d\n”,t);}A.a>bB.a<b<0C.0<a<bD.0>a>b(D)14.下面的for语句的循环次数为?for(x=1,y=0;(y!=123)&&(x<4);x++);A.是无限循环B.循环次数不定C.循环执行4次D.循环执行3次(A)15.下面程序段的输出结果是?a=1;b=2;c=2;while(a<b<c)   {t=a;a=b;b=t;c–}printf(“%d,%d,%d”,a,b,c);A.1,2,0B.2,1,0C.1,2,1D.2,1,1(A)16.有以下程序段:int k=0;while(k=1)k++;while循环执行的次数是?A.无限次B.有语法错误,不能执行C.一次也不执行D.执行一次(B)17.设和k都是int类型,则for循环语句:for(j=0,k=-1;k=1;j++,k++) prtnt(“***\n”);A.循环结束的条件不合法B.是无限循环C.循环体一次也不执行D.循环体只执行次(C)18.已知int p();p是?A.int型变量B.函数p的调用C.一个函数声明,该函数的返回值是int型的值D.强制类型转换表达式中的变量(B)19.分析一下程序的运行结果:#include<stdio.h>int func(int n){ if(n1)return 1;elsereturn(nfunc(n-1));}void mian(){ intx;x=func(3);printf("%d\n",x);}A.5B.6C.7D.8(A)20.当执行下面的程序时,如果输入ABC,则输出结果是?#include<stdio.h>#include<string.h>void main(){ char ss[10]=“1,2,3,4,5”;gets(ss);strcat(ss,“6789”);printf("%s\n",ss);}A.ABC6789B.ABC67C.12345ABC6D.ABC456789(D)21.若有说明:int a[10];则对a数组元素的正确引用是:A.a[10]B.a[3,5]C.a(5)D.a[10-10](A)22. C语言程序中,当调用函数时 :A.实参和虚参各占一个独立的存储单元B.实参和虚参可以共用存储单元C.可以由用户指定是否共用存储单元D.计算机系统自动确定是否共用存储单元(A)23.以下函数调用语句中实参的个数是:exce((v1,v2),(v3,v4,v5),v6);A.3B.4C.5D.6(B)24.相同结构体类型的变量之间,可以:A.相加B.赋值C.比较大小D.地址相同(B)25.以下对结构体变量stu1中成员age的非法引用是?struct student{int age; int num;}stu1,p;p=&stu1;A.stu1.ageB.student.ageC.p->ageD.(p).age三、程序填空1.题目:以下程序按每行5个数的格式输出1至n范围内能被7或17整除的整数,并求出其和。如输入:50  则输出:7      14      17      21      2834     35      42      49Sum=247 -----------------------------------------------------------------/#include<stdio.h>Void main(){        Int i,n,ct=0,sum=0;        Scanf(“%d”,&n);        for (i=1;i<=n;i++)/SPACE/             If (i%70||i%170)             {                   Printf(“%d\t”,i);/SPACE/                   Sum+=I;                   ct++;/SPACE/                   If(ct%5==0)                         Printf(“\n”);             }        Printf(“\nSum=%d\n”,sum);} -----------------------------------------------------------------/ 2.题目:阅读以下程序并填空,该程序是求阶乘的累加和。         S=0!+1!+2!+……+n! -----------------------------------------------------------------/#include<stdio.h>Long f(int n){ int I; Long s;/SPACE/ s=1; for(i=1;i<=n;i++)/SPACE/ s=si; return s;}void main(){ long s; Int k,n; scanf(“%d”,&n);/SPACE/ s=0; for(k=0;k<=n;k++)/SPACE/ s=s+f(k); printf(“%1d\n”,s)-----------------------------------------------------------------/ 3.题目:功能:求一个二维数组中每行的最大值和每行的和。 -----------------------------------------------------------------/#include<stdio.h>main(){ Int a[5][5],b[5],c[5],i,j,k,s=0; for(i=0;i<5;i++)  for(j=0;j<5;j++)   a[i][j]=rand()%(40)+20;for(i=0;i<5;i++){/SPACE/  k=a[i][0];s=0;  for(j=0;j<5;J++)  {/SPACE/if (k<a[i][j]) k=a[i][j];s=s+a[i][j];  }  b[i]=k/SPACE/  c[i]=s;}for(i=0;i<5;i++){for(j=0;j<5;j++)/SPACE/     printf(“%5d”,a[i][j]);  printf(“%5d%5d”,b[i],c[i]);  printf(“\n”); }}-----------------------------------------------------------------/ 四、程序设计1.题目:写程序求1-3+5-7+……-99+101的值。要求:使用程序中定义的变量。-----------------------------------------------------------------/#include<stdio.h>int fun(int n){int i,s=0,f=1;//i定义为循环变量,s为1-3+5-7+……-n的值/Program/for (i = 1; i<=n;i+=2){s += f * i;f = -f;}/End/return s;}void main(){       printf("%d",fun(101));}   2.题目:根据图J所示流程图编程-----------------------------------------------------------------//Program /#include<stdio.h>void main(){ int i, n; scanf("%d", &n); i = 2; if (i < n) if (n%i != 0) i++; else printf(“i=%d\n”, i); else printf(“i=%d\n”, i); if (i > n - 1) printf(“yes”); else printf(“no”);}/End/          第二套一、判断1. 正确在C语言程序设计中,"/“和”/“之间的内容是C语言的注释.   2. 错误定义结构体的保留字是struc.   3. 错误用户定义的函数也可调用main函数.   4. 正确一个C程序中至少有一 对大花括号0.  5. 正确如果函数值的类型和return语句中表达式的值不致,则以函数类型为准.   6. 错误只有数字1代表逻辑值"真”.   7. 正确r- 1-2是C语言合法的用户定义标识符.  8. 错误若有int i=10j= 2;则执行完i=j+ 8;后i的值为28.   9. 错误if语句后面的控制表达式只能使用关系表达式或逻辑表达式   10.错误sqr(m)是求m平方的函数.    11.正确共用体类型变量不能被初始化。   12.错误int a=7,b=9,t;t=(a> b)?a:b;t的值为7.    13.正确#include“文件名“可以将另外一个源文件的全部内容包含进来。   14.正确C语言中"%"运算符的运算对象必须是整型。    15.错误若有int i=10, j=0;则执行完语句if(j=0)i+ +; else i- ; i的值为11.   16.正确x =y+8等价于x=x(y+ 8).    17.正确break语句只能用于循环语句和switch-case语句中    18.错误逻辑表达式–5&&!8的值为1.    19.正确int a[10],I= 3;scanf("%d",&a[T]);是正确的.    20.正确在C程序中j+ +;是条赋值语句.    21.正确do-while循环是先执行循环体语句,后判断表达式的值   22.错误if后面的控制表达式可以不用括号括起来   23.错误int i= 20;switch(i/10)(case 2:printf(“A”);case 1print(“B”)的输出结果为A.   24.错误与if(E)语句中的(E)等价的表达式是(E==0).   25.错误int a[2][3]按照它在内存的持列次序数的所有元素是a[0][0]  a [1 ][0]  a[1][1]  a[0][2] a[1][2]  二、选择题1.C语言程序中必须有的函数是(B)(A)#include “stdio.h”(B)main(O)printf(D)scanf2.在C语言中,下列合法的字符常量是(B)(A)\039()\x76’©ab’(D)\o’3…以下选项中合法的用户标识符是(B)(A)long(B) 2Test©3Dmax(D)A.dat4.语句printf(" a\bre\hi\y\bou\n ):的输出结果是(说明:\b’是退格符)(C)(A)abre’\hiy\bou(B)a\bre’hi’y\bou©re’hiyou(D)abre’hiy\bou 5…若已定义x和y为double类型则表达式"x=1.y=x+3/2"的值是(C)(A)1(B)2©2.0(D)2.56.以下选项中合法的C语言字符常量是(A)(A)\t’(B)"A"©67(D)A7…设a.b.c.d. m n因int型变量,且a=5,b=6.c=7.d=8.m=2.n=2则罗相表达式(m=a> b)&in=c>d运算后n的值为(C)(A)0(B)1©2(D)38…a,b为整型变量,者均不为0以下关系表达式中恒成立的是(C)(A)ab/ab==1(B)a/bb/a==1©a/bb+ a%b==a(D)a/bba9.在C珸言中.要求返算数必須是整型的返算符是(B)(A)^
(B)%
©!(D)>10.下列语句的输出结果是©printf("%d\n" ,(int)(2.5+ 3.0)/3);(A)有语法错误不能通过编译(B)2©1(D)011.如下程序的输出结果是(A)#include <stdio.h>void main(){ int a,b,c =246;a=c/100%9;;b=(-1)& &(-1);printf(" %d,%d\n",a,b); }(A)2,1(B)3,2©4,3(D)2,-112…结构化程序设计所规定的三种基本控制结构是(C)(A)输入、处理、输出(B)树形、网形、环形©顺序、选择、循环(D)主程序、子程序、函数13…若变量均已正确定义并赋值,以下合法的C语言赋值语句是(A)(A)x=n/2.5;(B)x
5;(Cx+n=l;(D)5=x=4+1;14.C语言的if语句嵌套时,if与else的配对关系是(A)(A)每个else总是与它上面的最近的并且尚末与其他else匹配的配对(B)每个else总是与最外层的if配对©每个else与的配对是任意的(D)每个else总是与它上面的if对15.下列程序的运行结果是(D)#include <stdio.h>void main(){ intx=8; ?for(x>0;x–){if(x%3 ){printf(“%d,”x–);continue;)printf(“%d;”,–x);}}(A)7,4,2(B)8,7,5,2©9,7,6,4(D)8,5,4,216.以下程序的执行结果是(A)#include <stdio.h>inta=3;void main(){int s=0;{inta=5;s+=a++;}s+=a+ +;print("%d\n",s);}(A)8(B)10©7(D)1117.有以下程序段int n=0,p;do{scanf(
%d" ,&p);n++;}while(p!=12345&&n<3);此处do-while循环的结束条件是(D)(A)p的值不等于12345并且n的值小于3(B)p的值等于12345并且n的值大于等于3©p的值不等于12345或者n的值小于3(D)p的值等于12345或者n的值大于等于318.C语言中函数返回值的类型是由(D)决定的.(A)return语句中的表达式类型(B)调用该函数的主调函数类型©调用函数时临时(D)定义函数时所指定的函数类型19.分析以下程序的运行结果(A)#include<stdio.h>func(int a,int b){ int temp=a;a=b;b=temp; }void mainO{ int xy;x=10;y=20;func(x.y);printf("%d,%\n",xy); }(A)10,20(B)10,10©20,10(D)20,2020.若有说明:int a[][4]={0.0},则下面不正确的叙述是(D)(A)数组a的每个元素都可得到初值0(B)二维数组的第一维 大小为1©因为二维数组a中初值的个数不能被第二维大小的值整除 则第一维的大小等于所得函数再加1, 故数组a的行教为1(D)只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值021.以下对维整型数组a的正确说明是(D)(A)int a(10);(B)int n=10,a[n];(Cintn; scanf(
%d",&n; int a[n];(D)j#define SIZE 10 (换行) int a[SIZE]22…以下不正确的说法是:C语言规定(B).(A)实参可以是常量,变量或表达式(B)形参可以是常量,变量或表达式©实参可以为任何类型(D)形参应与其对应的实参类型致23.关于return语句,下列正确的说法是(C)(A)不能在主函数中出现且在其他函数中均可出现(B)必须在每个函数中出现©可以在同一个函数中出现多次(D)只能在除主函数之外的函数中出现次24.C语言结构体类型变量在程序执行期间(A)(A)所有成员直驻留在内存中(B)只有一个成员驻留在内存中©部分成员驻留在内存中(D)没有成员驻留在内存中25.使用共用体变量,不可以(D)(A)节省存储空间(B)简化程序设计©进行动态管理(D)同时访问所有成员三、程序填空1.题目:下列程序从键盘输入所需数据,求出z的值并输出,要求输出结果保留2位小数。 -------------------------------------------------------
/#include <stdio.h>/SPACE/#include<math.h>          main()        {  int x;double y,z;/SPACE/           scanf("%d%f",&x,&y);           z=2
xsqrt(y);/SPACE/           printf(“z=%.2f”,z);        }  2:功能:以每行5个数来输出300以内能被7或17整除的偶数,并求出      其和。 -------------------------------------------------------/ #include <stdio.h>#include <conio.h>main(){  int i,n,sum;  sum=0;  /SPACE/  n=0;  /SPACE/  for(i=1; i<=300 ;i++)  /SPACE/    if(i%70||i%170)      if(i%20)      {         sum=sum+i;         n++;         printf("%6d",i);         /SPACE/         if(n%50)              printf("\n");      }   printf("\ntotal=%d",sum);}  3:功能:以下程序是用选择法对10个整数按升序排序。 -------------------------------------------------------/#include <stdio.h>/SPACE/#define N 10 main(){   int i,j,k,t,a[N];   for(i=0;i<=N-1;i++)   scanf("%d",&a[i]);   for(i=0;i<N-1;i++)   {     /SPACE/     k=i;     /SPACE/     for(j=i+1; j<N;j++)       if(a[j]<a[k]) k=j;     /SPACE/     if(k!=i)     {       t=a[i];       a[i]=a[k];       a[k]=t;     }  }  printf(“output the sorted array:\n”);  for(i=0;i<=N-1;i++)  printf("%5d",a[i]);  printf("\n");}  四、程序设计1:题目:请编写函数fun,函数的功能是查找x在s所指数组中下标的位置,并作为函数值返回,      若x不存在,则返回-1。 注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入      你编写的若干语句。 -------------------------------------------------------/ #include  <stdio.h>#include  <stdlib.h> #define   N   15 int  fun( int s, int x){/Program/ int i=0; while(i<N) { if(s[i]x) return i; i++; } if(iN) return -1;/*********  End  /}void main(){          int a[N]={ 29,13,5,22,10,9,3,18,22,25,14,15,2,7,27},i,x,index;        printf(“a数组中的数据 :\n”);        for(i=0; i<N; i++) printf("%4d",a[i]);         printf("\n");        printf(“给x输入待查找的数 :  “);          scanf(”%d”,&x);        index=fun( a, x );        printf(“index=%d\n”,index);}  2:题目:根据下面图C所示流程图编写程序。 -------------------------------------------------------/ /Program/#include<stdio.h>void main(){ int i, a, b, x; scanf("%d", &b); b = b * b; x = 10; for (i = 1; i <= 8; i++) { scanf("%d", &a); if (a > b) x += a; } printf(“x=%d\n”, x);}/*  End  /   第三套一.判断题1. (F)1.在C程序中,每行中只能写一条语句。2. (T)在C程序中,语句之间必须要用分好”;”分割。3. (F)C语言规定,在一个源程序中,main函数的必须是最开始。4. (F)一个变量可以同时被定义为多种类型。5. (F)若X为float型变量,则以下语句x=213.82631;printf(“%-432f\n”,x);的输出为213.82.6. (F)当输入数值数据时,对于整型变量只能输入整型值;对于实型变量只能输入实型值。7. (T)在C程序汇总,%是只能用于整数运算的运算符。8. (F)关系运算符<=与的优先级相同。9. (T)在C程序中,逗号运算符的优先级最低。10. (T)在C程序中,j++;是一条赋值语句。11. (F)若a和b的类型相同,在执行了a=b;后,b中的值将丢失。12. (T) a=(b=4)+(c=6)是一个合法的赋值表达式。13. (F) if语句后面的控制表达式只能使用关系表达式或逻辑表达式。14. (F) If后面的控制表达式可以不用括号括起来。15. (F)Int a=1.b=2,c=3;if(a>b);if(a>c)a=c;则a的值为3。16. (F)Int i=20;switch(i/10{case 2:printf(“A”);case 1:printf(“B”);)的输出结果为A。17. (F)与if(E)语句中的(E)等价的表达式是(E0)。18. (F) For(m=22;m<1000;m++)if(m%3==0&&m%7!=0)break;是对m能被3整除或m不能被7整除时,结束本次循环进入下次循环。19. (T)do-while循环是先执行循环体语句,后判断表达式的值。20. (T)数组名是一个不可变的地址常量,不能对它进行赋值运算。21. (T)同一数组的元素在内存中存储是连续存放的,占有连续的存储单元。22. (T)return语句,可以在同一函数中出现多次。23. (T)如果函数值的类型和return语句中表达式的值不一致,则以函数类型为准。24. (T)对结构体类型的变量的成员可以像普通变量一样参与各种运算。25. (F)结构体类型只有一种。二、选择题1. 一个C语言程序总是从0开始执行的。(B)A.主过程 B.主函数C.子程序D.主程序2.求平方根函数的函数名(D)A.cosB.absC.powD.sqrt3.假定w、x、y、z均为int型变量,有如下程序段:w=1;x=2;y=3;z=4;M=(w<x)?w:x;m=(m<y)?m:y;m=(m<z)?m:z;则该程序运行后,m的值是(D)A.4B.3C.2D.14. 以下叙述正确的是(B)A. 可以把define和if定义为用户标识符B. 可以把define定义为用户标识符,但不能把if定义为用户标识符C. 可以把if定义为用户标识符,但不能把define定义为用户表示符D. Define和if都不能定义为用户标识符5. 已知int a-4,b-5;,则执行表达式a=a>b后,变量a的值为(A)A. 0B. 1C. 4D. 56. 判断char类型数据c1是否为大写字母的最简单且正确的表达式为(D)A. ‘A’<=c1<=’Z’B. (c1>=’A’)&(c1<=’Z’)C. (‘A’<=c1)AND(‘Z’>=c1)D. (c1>=’A’)&&(c1<=’Z’)7. 能正确表示逻辑关系”a>=10或a<=10”的C语言表达式是(D)A. A>=10 or a<=0B. A>=0丨a<=10C. A>=10&&a<=0D. A>=10丨丨a<=08. 已知int a;int b;float c;double d;,则表达式ab==c-d结果为(B)型A. DoubleB. IntC. FloatD. Char9. . 若a为int类型,且其值为3,则执行完表达式a+=a-=aa后,a的值是(C)A. -3B. 9C. -12D. 610. 下述程序的输出结果是(A)       #include<stdio.h>       void main()       { printf(“%f”,2.5+17%2/4); }A. 2.500000B. 2.750000C. 3.375000D. 3.00000011. 执行下列语句后变量x和y的值是(C)    y=10;x=y++;A. X=10,y=10B. X=11,y=11C. X=10,y=11D. X=11,y=1012. 下列程序的输出结果为(A)main(){int m=7,n=4;float a=38.4,b=6.4,x;x=m/2+na/b+1/2;printf(“%f\n”,x);}A. 27.000000B. 27.500000C. 28.000000D. 28.50000013. 结构化程序由三种基本结构组成,三种基本结构组成的算法(A)A. 可以完成任何复杂的任务B. 只能完成部分复杂的任务C. 只能完成符合结构化的任务D. 只能完成一些简单的任务14. 有以下程序段:         Int k=0;         while(k=1)k++;   while循环执行的次数是(A)A. 无限次B. 有语法错误,不能执行C. 一次也不执行D. 执行一次15. 下列程序的输出结果是(B)   main()   {int x=1,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;         Case 3:a++;b++;break;        }        Printf(“a=%d,b=%d\n”,a,b);       }A. a=1,b=0B. a=2,b=1C. a=1,b=1D. a=2,b=216. 为了避免在嵌套的条件语句if-else中产生二义性,C语言规定else子句总是与(B)配对A. 缩排位置相同的ifB. 其之前最近的ifC. 其之后最近的ifD. 同一行上的if17. 在C语言中,能代表逻辑值“真”的是(D)A. TrueB. 大于0的数C. 非0整数D. 非0的数18. 若i为整型变量,则以下循环执行次数是(B)   For(i=2;i==0;) printf(“%d”,i–)A. 无限次B. 0次C. 1次D. 2次19. 以下程序段中,能够正确地执行循环的是(C)A. for(i=1;i>10;i++)B. Static int a;while(a)C. Int s=6;do s-=2;while(s);D. Int s=6;m:if(s<100)exit(0);else s-=2;goto m;20. 以下对一维整型数组a的正确说明是(D)A. Int a(10);B. Int n=10,a[n];C. Int n;scanf(“%d”,&n);int a[n];D. #define SIZE 10 (换行) int a[SIZE];21. 在C语言中,一维数组的定义方式为:类型说明符数组名(D)A. [常量表达式]B. [整型表达式]C. [整型常量]或[整型表达式]D. [整型常量]22. 若有说明:intp,m=5,n;以下正确的程序段是(D)A. P=&n;scanf(“%d”,&P);B. P=&n;scnaf(“%d”,p);C. Scanf(“%d”,&p);p=n;D. P=&n;p=m;23. 全局变量的定义不可能在(A)A. 函数内部B. 函数外面C. 文件外面D. 最后一行24. 当说明一个结构体变量时系统分配给它的内存是(A)A. 各成员所需内存量的总和B. 结构中第一个成员所需内存量C. 成员中占内存量最大者所需的容量D. 结构中最后一个成员所需内存量25. 结构体类型的定义允许嵌套是指(A)A. 成员是已经或正在定义的结构体型B. 成员可以重名C. 结构体型可以派生D. 定义多个结构体型三、程序填空 1:功能:求出二维数组中的最大元素值。 -------------------------------------------------------/ #include <stdio.h> max_value(m,n,array)/SPACE/int m,n,array[][4];{  int i,j,max;  max=array[0][0];  for(i=0;i<m;i++)    for(j=0;j<n;j++)      /SPACE/      if(max<array[i][j])max=array[i][j];  return(max);} void main(){  int a[3][4]={{1,3,5,7},{2,4,6,8},{15,17,34,12}};  /SPACE/  printf(“max value is %d\n”,max_value(3,4,a);//?} 2:功能:产生10个[30,90]区间上的随机整数,然后对其用选择法      进行由小到大的排序。 -------------------------------------------------------/#include <stdio.h>main(){  /SPACE/  int t;   int i,j,k;   int a[10];   for(i=0;i<10;i++)     a[i]=rand()%(61)+30;   for(i=0;i<9;i++)   {      /SPACE/      k=i;      for(j=i+1;j<10;j++)        /SPACE/      if(a[k]>a[j]) k=j;      if(k!=i)       {           t=a[k];           a[k]=a[i];           a[i]=t;      }   }    /SPACE/   for(i=0;i<10;i++)     printf("%5d",a[i]);   printf("\n");} 3:题目:在数组内指定位置i插入元素x -------------------------------------------------------/#include<stdio.h>void main(){  int a[11],i,j,x;   for(i=0;i<10;i++)     scanf("%d",&a[i]);   scanf("%d%d",&i,&x);/SPACE/   for(j=9;  j>=i  ;j–)/SPACE/       a[j+1]=a[j] ;   a[i]=x;   for(i=0;i<11;i++)    printf("%d",a[i]);  }  四、程序设计 1:题目:m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。例如:当score数组中的数据为10、20、30、40、50、60、70、80、90时,函数返回的      人数应该是4,below中的数据应为10、20、30、40。注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。-------------------------------------------------------/#include <conio.h>#include <stdio.h>#include <string.h>#include <stdlib.h>int fun(int score[],int m, int below[]){/Program/int i,j=0;    double average,sum=0;    for(i=0;i<m;i++)      sum+=score[i];    average=sum/m;    for(i=0;i<m;i++)    {        if(score[i]<average)             below[j++]=score[i];    }    return j;/*******  End  /}void main(){                int i, n, below[9];        int score[9]={10,20,30,40,50,60,70,80,90};        system(“CLS”);        n=fun(score, 9, below);        printf("\nBelow the average score are: “);        for(i=0;i<n;i++)                  printf(”% d",below[i]);} 2:题目:根据如图P所示流程图编程。 -------------------------------------------------------/ /Program/#include<stdio.h>void main(){ int m, x, i; scanf("%d", &x); m = x; for(i = 0;i <10;i++) scanf("%d", &x); if (m < x) m = x; printf(“m=%d\n”, m);}/*  End  /  第四套一. 判断题(T)1.C语言本身不提供输入输出语句,输入输出操作是由函数来实现的(F)2.#include”stdio.h”是每个程序中必须写的(F)3.C程序总是从程序的第一条语句开始执行(F)4.C程序中的关键字必须小写,其他标识符不区分大小写(T)5.putchar(‘\n’);与printf(“\n”);作用相同(F)6.用scanf函数输入数据可以规定精度,所以scanf(“%6.2f”,&x)是正确的(F)7.逻辑表达式-5&&!8的值为1.(F)8. int a=7,b=9,t;t=(a>b)?a:b;t的值为7(T)9. C语言中“%”运算符的运算对象必须是整型(T)10.设x、t均为int型变量,则执行语句“x=10;t=x&&x>10;”后,t的值为0(F)11.若有int i=10,j=2;则执行完i=j+8;后i的值为28(F)12.若a是实型变量,在执行了a=5;后a将变为整型变量(F)13.与if(E)语句中的(E)等价的表达式是(E==0)(T)14.在C语言中,逻辑“真”等价于不等于0的数(T)15.int a=1,b=2,c=3;if(a>c)b=a;a=c;c=b;则c的值为2(F)16.若有int i=10,j=0;则执行完语句if(j=0)i++;else i–;i的值为11(F)17.若有int i=10,j=0;则执行完语句if(j=0)i++;else i–;i的值为11(F)18.在C语言中,为了结束由while语句构成的循环,whlie后一对圆括号中达式的值应该是1(T)19.三种循环(whlie语句、for语句、do-while语句)都可以用来处理同一个问题,一般它们可以相互代替(F)20.数组说明int a[3][]={1,2,3,4,5};是正确的(T)21.int n;scanf(“%d”,&n);int a[n];是不合法的(F)22.C程序在执行过程中对预处理命令进行处理(F)23.进行宏定义时,宏名必须使用大写字母表示(F)24.结构体类型只有一种(F)25.任何结构体类型的变量都可以互相赋值二. 选择题(B)1.下列选项中,不是C语言提供的合法关键字的是?A.switchB.cherC.defaultD.case(A)2.一个C程序的执行是从:A.本程序的main函数开始,到main函数结束B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序文件的第一个函数开始,到本程序main函数结束(D)3.C语言中表达逻辑“真”值的是?A.TB.0C.TureD.非0的数(B)4.若变量a,i已正确定义,且i已正确赋值,则合法的语句是:A.i=int(a)B.++iC.a=a++=5D.a=int(i)(C)5.以下程序段的执行结果是?double x;x=218.82631; printf("%-6.2e\n",x);A.输出格式描述符的域窝不够不能输出B.输出为21.38e+01C.输出为2.2e+02D.输出为-2.14e2(B)6.下列四个选项中,均是C语言关键字的选项是?A. auto enum includeB. switch typedef continueC. signed union scanfD. if struct type(D)7.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是?A.1B.2C.2.0D.2.5(C)8.下列语句的输出结果是?printf(%d\n (int(25+ 3.0)/3);A.有语法错误不能通过编译B.2C.1D.0(D)9.语句pint(%d"(a=2)&(b= 2)的输出结果是A.无输出B.结果不确定C.-1D.1(A)10.设有int x=11;则表达式(x++1/3)的值是?A.3B.4C.11D.12(B)11.为了避免在嵌套的条件语句if….else中产生二义性,C语言规定:else子句总是与(?)配对A.缩排位置相同的ifB.其之前最近的ifC.其之后最近的ifD.同一行上的if(B)12.设有说明语句"int a=1,b=0;"则执行以下语句后,输出为(?).
switch(a){case 1:
switch(b)
{case 0:printf(“0”);break;
  case 1:prntf(“1“):breakcase 2:printf(“2”);break; }A.0B. **0
2**C. **0
12**D.有语法错误(B)13. 执行下列语句后,a和b的值分别为?int a,b;a=l+’a’;
b=2+7%-4-’A’;A.-63,-64B.98,-60C.1,-60D.79,78(B)14.下列程序执行后的输出结果是?void main0{ intij.x=0;for(i=0;i<2;i++){ x++;for(j=0j<=3j++){if(j%2) continue;x++;}x++;}print(“x=%dn”,x); )A.x=4B.x=8C.x=6D.x=12(B)15.假定所有变量均已正确定义,下列程序段运行后x的值是?k1=1;k2=2;k3=3;x=15;if(!k1) x–;else if(k2)  x=4;else x=3;A. 14B. 4C.15D.3(B)16.下列程序的输出结果是?main(){ int x=1,y=0,a=0.,b=0;switch(x){case 1:switch(y){case 0:a+ +;break;case 1b+ +;break;}case 2:a+ +;b+ +;break;case 3:a++;b+ +;break;}printf(“a=%d,b=%d\n”,a,b);}A.a=1,b=0B.a=2,b=1C.a=2,b=1D.a=2,b=2(A)17. 以下语句中,循环次数不为10次的语句是?A.for(i=1;i<10;i++);B.i=1;do{i+ +;}while(i<=10);C.i=10;while(i>0){–I;}D.i=1;m:if(i<=10){i++;goto m;}(D)18.以下程序的运行结果是?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.i=9,sum=9C.i=2,sum=1D.运行出现错误(A)19.C语言中while和do-while循环的主要区别是?A.do-while的循环体至少无条件执行一次B.while的循环控制条件比do-while的循环条件更严格C.do-while允许从外部转到循环体内D.do-while的循环体不能是复合语句(D)20.若有说明:int a[10];则对a数组元素的正确引用是?A.a[10]B.a[3,5]C.a(5)D.a[10-10](C)21.在C语言中引用数组元素时其数组下标的数据类型允许是?A.整型常量B.整型表达式C.整型常量或整型表达式D.任何类型的表达式(D)22.若调用个函数且此函数中没有return语句则正确的说法是:该函数?A.没有返回值B.返回若干个系统默认值C.能返回个用户所希望的值D.返回个不确定的值(C)23.关于retum语句,下列正确的说法是?A.不能在主函数中出现且在其他函数中均可出现B.必须在每个函数中出现C.可以在同个函数中出现多次D.只能在除主函数之外的函数中出现一次(C)24.设有以下说明和定义语句:struct stu{ int a;float b;)stutype;则下面的叙述正确的是?A.struct是结构体类型名B.struct stu是用户定义的结构体变量名C.stutype是用户定义的结构体变量名D.a和b都是结构体类型名(A)25.对结构体类型的变量的成员的访问,无论数据类型如何都可使用的运算符是?A.“.”B.“->”C.“
”D.“&”三.程序填空1.功能:企业发放的奖金根据利润提成。利润(i)低于或等于10万元      时,奖金可提10%;利润高于10万元,低于20万元时,低于      10万元的部分按10%提成,高于10万元的部分,可可提成7.5%      ;20万到40万之间时,高于20万元的部分,可提成5%;40万      到60万之间时高于40万元的部分,可提成3%;60万到100万      之间时,高于60万元的部分,可提成1.5%,高于100万元时,      超过100万元的部分按1%提成,从键盘输入当月利润i,求      应发放奖金总数? -------------------------------------------------------
/#include <stdio.h>main(){  long int i;  double bonus1,bonus2,bonus4,bonus6,bonus10,bonus;  scanf("%ld",&i);  bonus1=100000
0.1;bonus2=bonus1+100000
0.75;  bonus4=bonus2+2000000.5;  bonus6=bonus4+2000000.3;  bonus10=bonus6+4000000.15;  if(i<=100000)    bonus=i0.1;  /SPACE/  else if(i<=200000)                                    bonus=bonus1+(i-100000)0.075;  /SPACE/  else if(i<=600000)                                    bonus=bonus2+(i-200000)0.05;  /SPACE/  else if(i<=1000000)                                    bonus=bonus4+(i-400000)0.03;  else if(i<=1000000)    bonus=bonus6+(i-600000)0.015;  else    bonus=bonus10+(i-1000000)0.01;  /SPACE/  printf(“bonus=%d”,bonus);} --------------------------------------------------------- 2.功能:下面的程序是求1!+3!+5!+……+n!的和。 -------------------------------------------------------/#include <stdio.h>main(){  long int f,s;  int i,j,n;  /SPACE/  s=0;  scanf("%d",&n);   /SPACE/  for(i=1;i<=n; i+=2)   {      f=1;                       /SPACE/     for(j=1; j<=i;j++)     /SPACE/     f=fj;      s=s+f;  }  printf(“n=%d,s=%ld\n”,n,s);} --------------------------------------------------------- 3.题目:下面程序将二维数组a的行和列元素互换后存放到另一个二维数组b中,请填空。 -------------------------------------------------------/#include<stdio.h>void main( ){  int a[2][3]={{1,2,3},{4,5}},b[3][2],i,j;   for(i=0;i<2;i++)   {   for(j=0;j<3;j++)/SPACE/         b[j][i]=a[i][j] ;  }for(i=0;i<3;i++)   {   for(j=0;j<2;j++)/SPACE/    printf("%d  “,b[i][j]);    printf(”\n"); } }四.程序设计1.题目:请编写函数fun,其功能是:计算并输出下列多项式的值。S=1/(1×2)+1/(2×3)+…+1/(n×(n+1))例如:当n=10时,函数值为0.909091。注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 -------------------------------------------------------/ #include<conio.h>#include<stdio.h>#include<stdlib.h> double fun(int n){/Program/    int i;    double s,t;    for(s=0,i=1;i<=n;s+=1.0/i/(1+i++));    return s;/*********  End  /}void main(){         system(“CLS”);        printf("%f\n",fun(10));}  --------------------------------------------------------- 2.题目:根据图N所示流程图编程。 -------------------------------------------------------/ /Program/#include<stdio.h>void main(){ int x, i, n, m; float s, ave; s = 0; m = 0; scanf("%d", &n); for(i = 1;i <=n;i++) { scanf("%d", &x); if ((x >= 70) && (x <= 90)) { m++; s = s + x; } } ave = s / m; printf(“s=%f,m=%d,ave=%f\n”, s,m,ave);}/*  End  /   第五套一、判断题(F)在一个c程序中,main函数必须出现在所有函数之前。(F)#include”stdio.h”是每个程序中必须写的。(F)c程序总是从程序的第一条语句开始执行的。(F)以下各数均不是合法的八进制数:256,03A2,-0127。(F)语句scanf(“%7.2f”,&a):是一个合法的scanf函数。(T)整数-32100可以赋值给int型和long int型变量。(F)表达式(j=3,j++)的值是4. (F)在c程序中,赋值运算符的优先级最低。(F)7&3+12的值是15. (F)若a是实型变量,在执行了a=5后,a将变为整型变量。(F)若有i=10,j=2:则执行完i=j+8:后i的值是28. (F)若a是实型变量,c程序中允许以下赋值a=10:因此实型变量中允许存放整型变量。(T)在c语言中,逻辑“真”等价于不等于0的数。(F)开关语句switch最多可以形成3个分支.(T)Int a=1,b=2,c=3:if(a>c)b=a:a=c:c=b:则c的值是2. (T)Int i=3,j=5:if(i>j):是正确的。(F)若有i=10,j=0:则执行完语句if(j=0):i++:elsei - -:i的值为11(T)break语句只能用于循环语句switch-case语句中。(T)若有说明int c:则while(c=getchar()):是正确的c语句。(T)Int a[10]:for(i=1:i<10:i++)a[i-1]=i:能使数组元素分别取值{1,2,3,4,5,6,7,8,9,10}.(F)二维数组在内存中储存以列为主序方式存放。(T)c程序中#include和#define均不是c语句(F)通过return语句,函数可以带回一个或一个以上的返回值(T)在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量(T)对结构体类型的变量的成员可以象普通变量一样参与各种运算 二、选择题(A)是构成c语言程序的基本单位。A函数 B变量 C子程序 D语句(B)以下叙述中正确的是A.c语言的源程序不必通过遍译就可以直接运行。B.语言中的每条可执行语句最终都将被转换成二进制的机器指令C.c源程序经编译形成的二进制代码可以直接运行D.c语言中的函数不可以单独进行编译(C)c语言中的标识符只能有字母,数字和下划线三种字符组成,且第一个字符(?)A必须为字母B必须为下划线C必须为字母或下划线D可以是字母,数字和下划线中任一字符(A)没有说明语句:char a=’\72’;则变量a(?)A包含1个字符B包含2个字符C包含3个字符D说明不合法5.(B)为了提高程序的运行速度,在函数中对于整型或指针可以使用什么型的变量?A.auto B.register C.static D.extern6.(C)以下字符中不是转义符的是?A、\a’ B.\b’ C.\c’ D.’\’7. (D)putghar函数可以向终端输出一个(?)A整型变量表达值B实型变量值C字符串D字符或字符型变量值(D)以下关于单目运算符++、–的叙述值正确的是?A它们的运算对象可以是任何变量和常量B它们的运算对象可以是char型变量和int型变量,但不能是float型变量C它们的运算对象可以是int型变量,但不可能是double型变量和float型变量 D它们的运算对象可以是char型变量、int型变量和float型变量(D)逻辑运算符两侧运算对象的数据类型(?)A只能是0或1 B只能是0或非0正数 C只能是整型或字符型数据D可以是任何类型的数据10.(D)下列运算符正是c语言关系运算符的是?A.~B.!C.&D.!=11.(B)下列关于switch语句和break语句的结论中,正确的是?A.break语句是switch语句中的一部分B.在switch语句中可以根据需要使用或不使用break语句C在switch语句必须使用break语句D.break语句只能用于switch语句中12.(A)结构化程序由三种基本结构组成的算法(?)A可以完成任何复杂的任务 B只能完成部分复杂的任务 C只能完成符合结构化的任务 D只能完成一些简单的任务(C)用下列语句定义a,b,c,然后执行b=a、c=’b’+b,则b,c的值是? Long a=0xffffff,int b:char c: A.0ffffff和0x61  B.-1和98 C。-1和97  D指向同一地址(A)下列程序执行后的输出结果是?Void main(){ int k=5:While(–k)     printf(“%d”.k=3)Printf(“\n”):}A.1   B.2  C.4  D.死循环(B)若变量已经正确定义,有下列程序段输出结果是?i=0:Do printf(“%d”,i):  while(i++):Printf(“%d\n”,i):A.0,0  B.0,1  C.1,1   D.程序进入无限循环(D)设变量已经正确定义,则以下能正确计算f=n!的程序段是?A.f=0:For(i=1:i<=n:i++)f=i:B.f=1:For(i=1:i<n:i++)f=i:C.f=1:For(i=n:i>1:i++)f=i:D.f=i:For(i=n:i>=2:i–)f=i:(B)t为int类型,进入下面的循环之前,t的值为0While(t=1){…}则以下叙述中正确的是?A.循环控制表达式的值为0   B.循环控制表达式的值为1B.循环控制表达式不合法      D.以上说法都不对(D)以下不正确的说法是?A.在不同函数中可以相同名字的变量B.形式参数是局部变量C.在函数内定义的变量只在本函数范围内有效D.在函数内的复合语句中定义的变量在本函数范围内有效(B)以下程序的执行结果(?){int x=0,s=0;While(!X!=0)s+=++x;Printf(“%d”,s);}A.0   B.1   C.语法错误   D.无限循环20.(B)int a[10];给数组a的所有元素分别赋值为1、2、3、…的语句是?A.for(i=1;i<11;i++)a[i]=i;B.for(i=1;i<11;i++)a[i-1]=i;C.for(i=1;i<11;i++)a[i+1]=i;D.for(i=1;i<11;i++)a[0]=1;21.(D)Int i,j,a[2][3]按照数组a的元素在内存的排列列次序不能将数1,2,3,4,5,6存入a数组的是?A.for(i=0; i<2:;i++)for(=0: j<3: j++)a[0l=i3+j+1;B.for(i=0; 1<3: i++)for(=0 j<2: j++)a[j][i]=j3+i+1;C.for(i=0;i<6;i++)a[i/3][i%3]=i+1;D.for(i=1;i<6;i++)a[i][i]=i;22.(B)以下不正确的说法是c语言规定:A.实参可以是常量,变量或表达式B.形参可以是常量,变量或表达式C.实参可以为任何类型D形参应与其对应的实参类型一致23.(A)以下正确的说法是在C语言中:”A实参和与其对应的形参各占用独立的存储单元B实参和与其对应的形参共吉用一个存储单元C只有当实参相与其对应的形参科名时共占用存储单元D形参是虚拟的不占用存储单元24.(D)在定义构造数据类型时不能:A说明变量B说明存储类型C初始化D未尾不写分号25.(D)使用共用体变量不可以:A节省存储空间B简化程序设计C进行动态管理D同时访问所有成员 三、程序填空--------------------------------------------------------- 1.功能:输出1到100之间每位数的乘积大于每位数的和的数。例如:数字26,数位上数字的乘积12大于数字之和8。 -------------------------------------------------------/#include <stdio.h>main(){  int n,k=1,s=0,m;  for(n=1;n<=100;n++)  {    k=1;    s=0;    /SPACE/    m=n ;                                    /SPACE/    while( m>0 )                            {      k=m%10;      s+=m%10;      /SPACE/      m=m/10;                                    }      if(k>s)      printf("%d ",n);  }} --------------------------------------------------------- 2.功能:计算并输出500以内最大的10个能被13或17整除的自然数之和。 -------------------------------------------------------/ #include <conio.h>#include <stdio.h>/SPACE/int fun(int k){  int m=0,  mc=0;  /SPACE/  while (k >= 2 && mc<10)   {  /SPACE/    if (k%13 == 0 || k%170)    {       m=m+k;       mc++;     }    k–;  }  /SPACE/  return m;}main ( ){   printf("%d\n", fun (500));} --------------------------------------------------------- 3.题目:用折半查找法在有序数组中查找指定元素x -------------------------------------------------------*/#include<stdio.h> void main() {  int a[10],x,i,start,end,flag=0;    printf(“输入10个有序数:\n”);    for(i=0;i<10;i++)      scanf("%d",&a[i]);    printf(“please enter the number:\n”);    scanf("%d",&x); /SPACE/   for(start=0,end=9;  start<=end 😉 /SPACE/   {    i=(start+end)/2 ;       if (xa[i])       {   flag=1;   break;  } /SPACE/      else if (x>a[i])   start=i+1 ;           else   end = i-1;  }    if(flag1)  printf(“found:a[%d]”,i);    else         printf(" not found");   } 四、程序设计--------------------------------------------------------- 1.题目:请编写函数fun,其功能是:将一组得分中,去掉一个最高分和一个最低分,然后求平均值,并通过函数返回。函数形参a指向存放得分的数组,形参n中存放得分个数(n>2)。例如:若输入9.9  8.5  7.6  8.5  9.3  9.5  8.9  7.8  8.6  8.4十个得分,则输出结果为:8.687500。 注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入      所编写的若干语句。 -------------------------------------------------------/ #include  <stdio.h> double fun(double  a[ ] , int  n){/Program/int i;
double total,min,max;if(n<3) //如果数组大小小于3,那么直接返回0(去掉最大和最小后没有数据了)
return 0;
total=0;//保存成绩的和
min = 1000;//保存最小成绩
max = 0; //保存最大成绩
for(i=0; i<n; i++)
{
if(min > a[i])
min=a[i];
if(max < a[i])
max=a[i];
total+=a[i];
}
total -=min+max; //和减去最大最小成绩
total /=n-2; //和除以得分的数量得到平均值
return total; //返回平均值/
*********  End  / } void main(){          double  b[10],  r;          int  i;        printf(“输入10个分数放入b数组中 :  “);        for (i=0; i<10; i++)                 scanf(”%lf”,&b[i]);        printf(“输入的10个分数是 :  “);        for (i=0; i<10; i++)                  printf(”%4.1lf “,b[i]);           printf(”\n”);        r = fun(b, 10);        printf(“去掉最高分和最低分后的平均分 :  %f\n”, r );} --------------------------------------------------------- 2.题目:根据如图Z所示流程图编程。 -------------------------------------------------------/ /Program/#include<stdio.h>void main(){ int x, n, m; float p; m = 0; n = 0; scanf("%d", &x); while ((x >= 0) && (x <= 100)) { n++; if (x < 60) m++; scanf("%d", &x); } p = m / n; printf(“m=%d,n=%d,p=%f\n”, m,n,p);} /*  End  *****/   第六套一、判断题1. 【正确】一个C程序中至少有一个大话括号{}    2. 【错误】在一个C程序中,main函数必须出现在所有函数之前。        3. 【正确】#include“文件名”可以将另外一个源文件的全部内容包含进来。        4. 【错误】Long int a[10];scanf(“%ld”,a);可从键盘上给a数组的所有元素输入值。    5. 【错误】若i=3,则printf(“%d”,-i++);输出的值为-4。6. 【错误】C程序中的关键字必须小写,其他标识符不区分大小写。7. 【正确】若a=3,b=2,c=1,则关系表达式”(a>b)c”的值为“真”。8. 【错误】[3,6,18,23]是合法的表达式。9. 【错误】表达式(j=3,j++)的值为4。10. 【错误】若a是实型变量,c程序中允许以下赋值a=10;因此,实型变量中允许存放整型数据。11. 【错误】Int a=10;printf(“%d”,a++);输出11.12. 【正确】设x、t均为int型变量,则执行语句“x=10;t=x&&x<=10;”后,t的值为1.13. 【错误】Int i=3,j=5;if(i>j);j++;else i++;是正确的。14. 【错误】开关语句switch最多可形成三个分支。15. 【错误】Int a=1,b=2,c=3;if(a>b)a=b;if(a>c)a=c;则a的值为3.16. 【错误】C语言的if语句嵌套时,if与else的匹配关系是每个else与if的匹配是任意的。17. 【正确】Int i=3,j=5;if(i>j);是正确的。18. 【错误】for(;😉;是错误的。19. 【错误】Continue语句不只用于循环语句中。20. 【正确】数组名是一个不可变的地址常量,不能对它进行赋值运算。21. 【错误】数组说明 int a[3,3]={1,2,3,4,5,6};是正确的。22. 【正确】Fabs()是C语言取绝对值的数学函数。23. 【正确】在C语言程序中,函数的定义不可以嵌套,但函数的调用可以嵌套。24. 【正确】结构体类型的定义允许嵌套。25. 【正确】工用体类型变量不能被初始化。  二、选择题1.一个C语言程序总是从(B)开始执行的?(A)主过程
(B)主函数
©子程序
(D)主程序2.在一个C程序中(B)。(A)main函数必须出现在所有函数之前。
(B)main函数可以在任何地方出现。
©main函数必须出现在所有函数之后。
(D)main函数必须出现在固定位置。3.在C语言中,要求参加运算的数必须是整数的运算符是(A)(A)%
(B)/
©!
(D)**4.下列四个选项中,均是C语言关键字的选项是(B)(A)auto enum include
(B)switch typedef continue
©signed union scanf
(D)if struct type5.在C语言中,int、char和short三种类型在内存中所占用的字节数(D)(A)由用户自己定义。
(B)均为2个字节。
©是任意的。
(D)由所用机器的机器字长决定。6.若变量已正确定义并赋值,符合C语言语法的表达式是(B)。(A)a=a+1.
(B)a=7+b+c,a++
©int(12.3/4)
(D)a=a+7=c+b7.已知int i,float f,正确的是(D)(A)(int f)%i
(B)int(f)%i
©int(f%i)
(D)(int)f%i8.下列关于单目运算符++、–的叙述中正确的是(D)(A)它们的运算对象可以是任何变量和常量
(B)它们的运算对象可以是char型变量和int型变量,但不能是float型变量
©它们的运算对象可以是int型变量,但不能是double型变量和float型变量
(D)它们的运算对象可以是char型变量、int型变量和float型变量
9.若有以下程序其输出结果是(B)
    int a=0,b=0,c=0;
    c=(a-=a-5),(a=b,b+3);
    printf("%d,%d,%d\n",a,b,c);
(A)3,0,-10
 (B)0,0,5
 ©-10,3-10
 (D)3,0,3
10.设a、b、c、d、m、n均为int型变量且a=5、b=6、c=7、d=8、m=2、n=2
则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为©。
 (A)o
 (B)1
 ©2
 (D)3 11. 如下程序的输出结果是(A)
#include <stdio.h>
void main()
{ int a,b,c=246;
a=c/100%9;
b=(-1)&&(-1);
printf("%d,%d\n",a,b);}(A)2,1(B)3,2©4,3(D)2,-112. 若有以下定义:char s=’\092’;则语句(B)(A)使s的值包含一个字符(B)定义不合法,s的值不确定©使s的值包含4个字符(D)使s的值包含3个字符13. 以下程序的输出结果为(B)   main()   {int i=010,j=10;   printf(“%d,%d\n”,++i,j–);}(A)11,10
(B)9,10
©010,9
(D)10,914. int a=1,b=2,c=3;   if(a>b)a=b;   If(a>c)a=c;则a的值为(A)(A)1
(B)2
©3
(D)不一定 
15.下列程序的运行结果是(B)
#include <stdio.h>
void  main()
{ int i,j,m=55;
for(i=l;i<=3;i++)
for(j=3;j<=i;j++)m=m%j;
printf("%d\n",m);}
(A)O
(B)1 ©2(D)316.在while(x)语句中的x与下面条件表达式等价的是(D)(A)x= =0
(B)x= =-1©x!=1(D)x!=017.C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递方式是(D)(A)地址传递
(B)值传递©由实参传给形参,并由形参传回来给实参(D)由用户指定传递方式18.分析下程序的运行结果(B)
#include<stdio.h>
int func(int n)
{if(n
1)
  return 1;
else
  return(n
func(n-1);}
void main()
{int x;
x=func(3);
printf("%d\n",x);} (A)5
(B)6©7(D)819.以下说法正确的是(C)(A)定义函数时,形参的类型说明可以放在函数体内
(B)return后边的值不能为表达式
(O如果函数值的类型与返回值表达式类型不一致以函数值类型为准
(D如果形参与实参的类型不一致,以实参类型为准 20. 对以下说明语句int a[10]=(6,7,8,9,10);的正确理解是(B)
 (A)将5个初值依次赋给a[1]至a[5]
 (B)将5个初值依次赋给a[0]至a[4]
 ©将5个初值依次赈给a[6]至a[10]
 (D)因为数组长度与初值的个数不相同,所以此语句不正确 21. 若二维码数组a有m 列,则在a[i][j]前的元素个数为(B)(A)j
m+i
(B)i
m+j©i
m+j-1(D)i
m+j+122.C语言允许函数类型缺省定义,此时函数值隐含的类型是(B)(A)float
(B)int©long(D)double23.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是(D)
(A)函数调用可以作为独立的语句存在
(B)函数调用可以作为一个函数的实参
©函数调用可以出现在表达式中
(D)函数调用可以作为一个函数的形参 24.C语言中,定义结构体的保留字是(B)(A)union
(B)struct©enum(D)typedef25.使用共用体变量,不可以(D);(A)节省存储空间
(B)简化程序设计
©进行动态管理
(D)同时访问所有成员  三、程序填空1.功能:输入数组,最大的与最后一个元素交换,最小的与第一个元      素交换,输出数组。 #include  <stdio.h> input(number)int number[10];{  int i;  /SPACE/  for(i=0;【i<9】;i++)    scanf("%d,",&number[i]);    scanf("%d",&number[9]);} max_min(array)int array[10];{  int *max,*min,k,l;  int *p,*arr_end;  arr_end=array+10;  max=min=array;  for(p=array+1;p<arr_end;p++)    if(*p>*max)       max=p;  else if(*p<*min)     /SPACE/    【min=p】;  k=*max;  l=*min;  *p=array[0];  array[0]=l;  /SPACE/  【l=*p】;  *p=array[9];  /SPACE/  【array[9]=k】;  k=*p;} output(array)int array[10];{  int *p;  for(p=array;p<array+9;p++)  printf("%d,",p);  printf("%d\n",array[9]);} main(){  int number[10];  input(number);  max_min(number);  output(number);} 2.题目:以下函数用以求x的y次方,请填空。  int fun(int  x,int y){  int i;   int z=1;/SPACE/   for(i=1;i  【<=y】  ;i++)/SPACE/        z=  【zx】  ;   return z;  } main(){ int x;   int y;  scanf("%d",&x);  scanf("%d",&y);  printf("%d,%d\n",x,y);  printf("%d\n",fun(x,y));} 3.题目:下面程序中的数组a包括10个整数元素,从a中第二个元素起,分别将后项      减前项之差存入数组b,并按每行4个元素输出数组b,请填空。 #include<stdio.h>void main(){  int a[10],b[10],i;   for(i=0;i<10;i++)     scanf("%d",&a[i]);   for(i=1;i<10;i++)/SPACE/      【b[i-1]=a[i]-a[i-1]】 ;   for(i=1;i<10;i++)/SPACE/   {  printf("%d ", 【b[i-1]】  );      if(i%4
0)   printf("\n");  }} 四、程序设计--------------------------------------------------------- 1.题目:完成n个数的选择排序,按照由小到大的顺序排列。 -------------------------------------------------------/#define  N 10#include <stdio.h>void main(){ int a[N], i, j, min, temp; printf(“please input the ten data:”); for (j = 0; j < N; j++) scanf("%d", &a[j]); /Program/ { int temp, i, j; for (i = 0; i < N; i++) for (j = 0; j < N - 1; j++) { if (a[j] > a[j + 1]) { temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; }  } } /*********  End  **********/ printf(“the sorted number is :”); for (i = 0; i < N; i++) printf("%d  “, a[i]); printf(”\n");}  2.题目:根据如图所示流程图编程#include<stdio.h>void main(){ int i, sum, x; sum = 0; for (i = 0; i < 10; i++) { scanf("%d", &x); if (x < 10) sum += x; } printf(“sum=%d\n”, sum);}

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值