试卷编号:11831 所属语言:C语言 试卷方案:gl1 试卷总分:100分 共有题型:6种 ━━━━━━━━━━━━━━━ 一、填空 共10题 (共计20分) ━━━━━━━━━━━━━━━ 第1题 (2.0分) 题号:1500 调用 fopen 函数打开一文本文件,在"使用方式"这一项中, 为输出而打开需填入【1】. 答案: =======(答案1)======= w =========或========= w+ 第2题 (2.0分) 题号:958 若a,b和c均是int型变量,则计算表达式 a=(b=4)+(c=2) 后,a值为【1】, b值为【2】,c值为【3】. 答案: =======(答案1)======= 6 =======(答案2)======= 4 =======(答案3)======= 2 第3题 (2.0分) 题号:294 C语言的三种基本结构是【1】结构、选择结构、循环结构. 答案: =======(答案1)======= 顺序 第4题 (2.0分) 题号:291 下面程序段的输出结果是【1】. int a=12;a=a&052;printf("%o\n",a); 答案: =======(答案1)======= 10 第5题 (2.0分) 题号:1738 若有int a=3, b=4; 则a%=b的值为【1】 答案: =======(答案1)======= 3 第6题 (2.0分) 题号:1739 设有int a=0,b=1; x=(a=2,b=3,a*b);则x 的值为【1】 答案: =======(答案1)======= 6 第7题 (2.0分) 题号:1161 x=5,y=8时,c语言表达式5-2>=x-1<=y-2的值是【1】. 答案: =======(答案1)======= 1 第8题 (2.0分) 题号:640 设 x 的值为15,n 的值为2,则表达式 x*=n+3 运算后 x 的值是【1】. 答案: =======(答案1)======= 75 第9题 (2.0分) 题号:1444 变量的本质是代表内存中的一个存储单元的【1】。 答案: =======(答案1)======= 地址 第10题 (2.0分) 题号:1522 若有定义:int a=10,b=9,c=8;接着顺序执行下列语句后,变量b中的值是 【1】 . c=(a-=(b-5)); c=(a%11)+(b=3); 答案: =======(答案1)======= 3 ━━━━━━━━━━━━━━━ 二、判断 共10题 (共计10分) ━━━━━━━━━━━━━━━ 第1题 (1.0分) 题号:1556 字符串结束标志是'\0'. 答案:Y 第2题 (1.0分) 题号:32 若有说明int c;则while(c=getchar());是正确的C语句。 答案:Y 第3题 (1.0分) 题号:1562 关系运算符* 与 != 的优先级相同. 答案:N 第4题 (1.0分) 题号:14 用fopen("file","r+");打开的文件"file"可以进行修改。 答案:Y 第5题 (1.0分) 题号:37 C程序中有调用关系的所有函数必须放在同一个源程序文件中。 答案:N 第6题 (1.0分) 题号:15 整数 -32100可以赋值给int型和long int型变量。 答案:Y 第7题 (1.0分) 题号:10 函数strlen("ASDFG\n")的值是7。 答案:N 第8题 (1.0分) 题号:1576 C程序的注释不能是中文文字信息。 答案:N 第9题 (1.0分) 题号:33 int i,*p=&i;是正确的C说明。 答案:Y 第10题 (1.0分) 题号:27 char c[]="Very Good"; 是一个合法的为字符串数组赋值的语句。 答案:Y ━━━━━━━━━━━━━━━━━ 三、单项选择 共15题 (共计30分) ━━━━━━━━━━━━━━━━━ 第1题 (2.0分) 题号:3105 以下程序的执行结果是main() { int x = 0, s = 0; while( !x != 0 ) s += ++x; printf( "%d ",s ); } A:0 B:1 C:语法错误 D:.无限循环 答案:B 第2题 (2.0分) 题号:586 以下选项中合法的实型常数是()。 A:5E2.0 B:E-3 C:.2E0 D:1.3E 答案:C 第3题 (2.0分) 题号:702 对于基本类型相同的两个指针变量之间,不能进行的运算是()。 A:< B:= C:+ D:- 答案:C 第4题 (2.0分) 题号:3111 若变量已正确定义且 k 的值是 4,计算表达式 ( j =4, k--) 后,j和k的值为 A:j=3, k=3 B:j=3, k=4 C:j=4, k=4 D:j=4, k=3 答案:D 第5题 (2.0分) 题号:723 函数调用语句:fseek(fp,-20L,2);的含义是()。 A:将文件位置指针移到距离文件头20个字节处 B:将文件位置指针从当前位置向后移动20个字节 C:将文件位置指针从文件末尾处退后20个字节 D:将文件位置指针移到离当前位置20个字节处 答案:C 第6题 (2.0分) 题号:4557 设 float a=2, b=4, c=3;,以下 C 语言表达式与代数式 (a+b)c/2 计算结果不一致的是( ) A:(a+b)*c/2 B:(1/2)*(a+b)*c C:(a+b)*c*1/2 D:c/2.0*(a+b) 答案:B 第7题 (2.0分) 题号:202 设有如下定义: struct sk {int a; float b;} data,*p; 若要使p指向data中的a域,正确的赋值语句是()。 A:p=(struct sk*)&data.a; B:p=(struct sk*) data.a; C:p=&data.a; D:*p=data.a; 答案:A 第8题 (2.0分) 题号:213 C语言中,文件由()。 A:记录组成 B:由数据行组成 C:由数据块组成 D:由字符(字节)序列组成 答案:D 第9题 (2.0分) 题号:713 在说明语句:int *f();中,标识符f代表的是()。 A:一个用于指向整型数据的指针变量 B:一个用于指向一维数组的行指针 C:一个用于指向函数的指针变量 D:一个返回值为指针型的函数名 答案:D 第10题 (2.0分) 题号:729 当顺利执行了文件关闭操作时,fclose函数的返回值是()。 A:-1 B:TRUE C:0 D:1 答案:C 第11题 (2.0分) 题号:4397 在C语言程序中,表达式5%2的结果是( )。 A:2.5 B:2 C:1 D:3 答案:C 第12题 (2.0分) 题号:527 全局变量的定义不可能在()。 A:函数内部 B:函数外面 C:文件外面 D:最后一行 答案:A 第13题 (2.0分) 题号:4587 要使以下程序段输出10个整数,请填入一个整数. for(i=0;i<=___;printf("%d\n",i+=2)); A:17 B:18 C:20 D:21 答案:B 第14题 (2.0分) 题号:636 若二维数组a有m列,则在a[i][j]前的元素个数为()。 A:j*m+i B:i*m+j C:i*m+j-1 D:i*m+j+1 答案:B 第15题 (2.0分) 题号:3162 若变量已正确定义,执行语句scanf("%d,%d,%d ",&k1,&k2,&k3);时,___是正确的输入 A:2030,40 B:20 30 40 C:20, 30 40 D:20,30,40 答案:D ━━━━━━━━━━━━━━━━ 四、程序填空 共2题 (共计20分) ━━━━━━━━━━━━━━━━ 第1题 (10.0分) 题号:434 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:要求输出如下结果: b=-1 a=65535 a=65534 a=30 b=6 c=5 按要求在空中填入合适的变量完善程序。 -------------------------------------------------------*/ #include main() { /***********SPACE***********/ int b=-1,【?】;unsigned a; /***********SPACE***********/ a=【?】; printf("b=%d a=%u\n",b,a); /***********SPACE***********/ 【?】+=b; printf("a=%u\n",a); /***********SPACE***********/ b=(a=30)/【?】; printf("a=%d b=%d c=%d\n",a,b,c); } 答案: =======(答案1)======= c =======(答案2)======= b =======(答案3)======= a =======(答案4)======= (c=5) 第2题 (10.0分) 题号:457 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:功能:定义一个结构变量(包括年、月、日)计算给定日 期是该年的第几天。 -------------------------------------------------------*/ #include #include main() { /***********SPACE***********/ 【?】 date { int y,m,d; }da; int f,n,p,a[12]={31,28,31,30,31,30,31,31,30,31,30,31}; printf("y,m,d="); scanf("%d,%d,%d",&da.y,&da.m,&da.d); /***********SPACE***********/ f=da.y%4==0&&da.y%100【?】0||da.y%400==0; /***********SPACE***********/ if(da.m<1【?】da.d>12) exit(0); a[11]+=f; if(da.d<1||da.d>a[da.m-1]) exit(0); /***********SPACE***********/ for(n=【?】,p=1;p void sort(int a[],int n) { int i, j, temp; /***********FOUND***********/ for(i=0; ia[j+2]) { temp=a[j]; /***********FOUND***********/ a[j+2]=a[j]; a[j+2]=temp; } } void main(){ int a[10]={17, 15, 10, 14, 16, 17, 19, 18, 13, 12}, i; printf("\n"); for(i=0; i<10; i++) printf("%5d", a[i]); /***********FOUND***********/ sort(); printf("\n"); for(i=0; i<10; i++) printf("%5d", a[i]); } 答案: =======(答案1)======= for(i=0; i #define M 5 void wwjt(); int fun(int a[M][M]) { /**********Program**********/ /********** End **********/ } main() { int a[M][M]={{1,3,5,7,9},{2,4,6,8,10},{2,3,4,5,6},{4,5,6,7,8},{1,3,4,5,6}}; int y; y=fun(a); printf("s=%d\n",y); wwjt(); } void wwjt() { FILE *IN,*OUT; int iIN[M][M],iOUT; int i,j; IN=fopen("in.dat","r"); if(IN==NULL) { printf("Please Verify The Currernt Dir..it May Be Changed"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("Please Verify The Current Dir.. it May Be Changed"); } { for(i=0;i