山东开放大学《C语言程序设计》期末考试复习题及参考答案_第1页
山东开放大学《C语言程序设计》期末考试复习题及参考答案_第2页
山东开放大学《C语言程序设计》期末考试复习题及参考答案_第3页
山东开放大学《C语言程序设计》期末考试复习题及参考答案_第4页
山东开放大学《C语言程序设计》期末考试复习题及参考答案_第5页
已阅读5页,还剩235页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计一、单选题(题数:20,共40.0分)1一个二维数组元素为a[i][j],它的指针访问方式不正确的是()。A、*(a[i]+j)B、(*(a+i))[j]C、*a[i]+jD、*(*(a+i)+j)正确答案:C2若一个文本文件的长度为n-1,当以"r"方式打开时,其读文件指针初始指向的字节位置编号为()。A、0B、1C、n-1D、n正确答案:A3要结束所在循环语句中循环体的一次执行,则在其中使用的语句为()。A、continueB、breakC、gotoD、return正确答案:A答案解析:4程序运行中需要从键盘上输入多于一个数据时,若不特别规定分隔符,则输入的各数据之间所使用的分隔符为()。A、空格或逗号B、逗号或回车C、逗号或分号D、空格或回车正确答案:D答案解析:5在函数体中把出现调用自身函数的情况称为()。A、非递归调用B、直接递归调用C、间接递归调用D、末尾递归调用正确答案:B6在结构类型的定义中,使用的关键字是()。A、structB、unionC、staticD、enum正确答案:A7每次先进行循环条件的判断,然后再执行循环体的语句为()。A、for和doB、for和whileC、while和doD、switch和break正确答案:B答案解析:8在定义指针变量的语句中,在指针变量名的前面标记的字符为()。A、&B、*C、#D、$正确答案:B9在循环语句“for(i=1;i<10;i+=2)S;”中,循环体S被执行的次数为()。A、10B、6C、4D、5正确答案:D答案解析:10要定义a和b为两个整型变量,则使用的定义语句为()。A、inta;b;B、inta,b;C、intab;D、inta:b;正确答案:B答案解析:11在scanf()函数调用的格式字符串中,每个格式符的先导字符为()。A、#B、%C、$D、@正确答案:B答案解析:12假定一个函数原型为intf1(inta[][N],intn),与数组参数等价的表示为()。A、int*aB、int**aC、int(*a)[N]D、int*a[N]正确答案:C13在一个数组中,数组元素a[i]前面的元素个数为()。A、iB、i+1C、i-1D、2*i正确答案:A答案解析:14在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为()。A、mainB、MAINC、nameD、function正确答案:A答案解析:15向一个二进制文件中写入数据的系统函数为fwrite(),它的参数有()。A、1B、2C、3D、4正确答案:D16使用“typedefintInteger;”语句把标识符Integer定义为一个()。A、整数变量B、整数类型C、数组变量D、数组类型正确答案:B答案解析:17假定二维数组的定义语句为“int*a[3][5];”,则该数组所占用的存储空间的字节数为()。A、120B、15C、30D、60正确答案:D答案解析:18一个无符号字符类型的值域范围是()。A、-128到+127B、0到255C、-127到255D、1到255正确答案:B答案解析:19流程控制类语句包括的3类语句为()。A、选择、循环、跳转B、选择、循环、输入C、选择、输入、输出D、循环、选择、函数正确答案:A答案解析:20假定一维数组的定义为“chara[8];”,则该数组所占用的存储空间的字节数为()。A、8B、16C、64D、32正确答案:A答案解析:二、填空题(题数:10,共30.0分)1假定以-1.0作为结束键盘输入的标志,此函数的功能是求出并返回从键盘上输入的一批实数的_____________。doublexk7(){doublex,y=0;intn=0;printf("请输入一批实数,直到-1.0为止!\n");do{scanf("%Lf",&x);if(x==-1.0)break;n++;y+=x;}while(1);if(n==0)returny;elsereturny/n;}(3.0分)正确答案第一空:平均值我的答案:2执行下面程序的输出结果为__________。#include<<stdio.h>#include<string.h>voidmain(){intc1,c2;chara[20]="String1234\n";charb[10]="str";c1=strlen(a);strcat(b,"245\0");intc2=strlen(b);printf("%d%d\n",c1,c2);}(3.0分)正确答案第一空:116我的答案:3下面函数的功能是从字节文件中依次读取每个整数并进行求和,返回求和结果。该字节文件名为参数fname所指向的字符串。请在横线处填写合适内容。intxw3(char*fname){FILE*fin=fopen(fname,__________);intc,x,s=0;while(1){c=fread(&x,sizeof(int),1,fin);if(c==0)break;s+=x;}fclose(fin);returns;}(3.0分)正确答案第一空:"rb"我的答案:4在C语言中,表示换行符的转义字符为_____________。(3.0分)正确答案第一空:\n我的答案:答案解析:5执行下面程序的输出结果为___________。#include<stdio.h>voidmain(){inta[8]={3,8,6,5,9,2,8,5};inti,s=0;for(i=0;i<8;i++)s+=a[i];printf("s=%d\n",s);}(3.0分)正确答案第一空:s=46我的答案:6此程序运行后,得到的输出结果为____________________。#include<stdio.h>structWorker{charname[15];intage;intpay;};voidxh1(structWorkerr){r.age+=12;printf("%d",r.age);};voidmain(){structWorkerr={"abc",25,420};xh1(r);r.age+=15;printf("%d\n",r.age);}(3.0分)正确答案第一空:3740我的答案:7此程序的功能是从键盘上输入两个__________,输出结果为它们的平方和。#include<stdio.h>voidmain(){intx,y;doscanf("%d%d",&x,&y);while(x<=0||y<=0);printf("%d\n",x*x+y*y);}(3.0分)正确答案第一空:正整数我的答案:答案解析:8执行下面程序的输出结果为__________。#include<stdio.h>voidmain(){inta[3][3]={{12,18,10},{8,6,14},{5,10,19}};inti,j,s[3]={0};for(i=0;i<3;i++)for(j=0;j<3;j++)s[a[i][j]%3]+=a[i][j];for(i=0;i<3;i++)printf("%d",s[i]);}(3.0分)正确答案第一空:363927我的答案:9此程序运行后,得到的输出结果为____________________。#include<stdio.h>#include<stdlib.h>#include<string.h>structCCC{char*a;intn;};voidmain(void){structCCCx;char*p="XxkComputer";x.n=strlen(p)+1;x.a=malloc(x.n);strcpy(x.a,p);printf("%s%d\n",x.a,x.n);}voidmain(){structWorkera[4]={{"abc",25,420},{"defa",58,638},{"ghin",49,560},{"jklt",36,375}};structWorkerx={"",49,0};inti;for(i=0;i<4;i++)if(xh2(a[i],x))break;for(i=0;i<4;i++)if(xh2(a[i],x))break;}(3.0分)正确答案第一空:XxkComputer12我的答案:10假定结构类型为“structstrNode{charname[15];structstrNode*next;};”,下面函数能够遍历以f为表头指针的单链表,请在横线处填写合适内容。voidxb1(structstrNode*f){while(f!=NULL){printf("%s",f->name);f=_______________;}printf("\n");}(3.0分)正确答案第一空:f->next我的答案:三、判断题(题数:15,共30.0分)1在C语言中,正弦、余弦或正切函数的参数的度量单位是度。正确答案:×答案解析:2break语句只能使用在循环语句中。正确答案:×答案解析:3一个函数必须返回一个值,不允许定义不返回任何值的函数。正确答案:×答案解析:4假定a是一个一维数组,则表达式*(a+i)所对应的元素为a[i]。正确答案:√5在函数定义中,存在着调用自身函数的函数调用表达式,则称此函数为递归函数。正确答案:√6在利用printf()函数向屏幕输出数据时,需要在参数表的开始位置使用相应的格式字符串。正确答案:√答案解析:7在一条变量定义语句中,定义的变量和赋给它的初值之间不需要使用等号(=)。正确答案:×答案解析:8C语言系统中提供一个用来描述文件属性的类型标识符为FILE,它与系统头文件stdio.h无关。正确答案:×9return语句只有保留字,没有其他成分。正确答案:×答案解析:10for循环是先判断循环条件,当条件为真时执行循环体。正确答案:√答案解析:11函数被调用执行中,形参变量的初值由调用该函数时对应的实参值给定。正确答案:√12常数3.26是双精度浮点数。正确答案:×答案解析:13在for循环语句的头部,for后面括号内的各表达式之间使用逗号分开。正确答案:×答案解析:14for循环语句的循环体,只能是复合语句,不能是简单语句。正确答案:×答案解析:15在C语言程序中,对于递归函数和非递归函数,其函数头部有区别标志。正确答案:×C语言程序设计一、单选题(题数:20,共40.0分)1假定一个链表中结点的结构类型为“structAA{intdata,structAA*next;};”,则next数据成员的类型为()。A、structAAB、structAA*C、AA*D、int正确答案:B2用于从键盘上为变量输入值的标准输入函数是()。A、printf()B、print()C、scanf()D、output()正确答案:C答案解析:3在switch语句中,每个保留字case后面的表达式必须是()。A、变量种B、常量C、一般表达式D、函数调用正确答案:B答案解析:4从一个文本文件中读取一个字符的系统函数为()。A、fputc()B、fgets()C、fputs()D、fgetc()正确答案:D5C语言中的选择类语句有两条,它们是()。A、if和switchB、if和elseC、switch和caseD、else和case正确答案:A答案解析:6在联合类型的定义中,使用的关键字是()。A、structB、unionC、staticD、enum正确答案:B7在结构类型的定义中,使用的关键字是()。A、structB、unionC、staticD、enum正确答案:A8在printf()函数调用的格式字符串中,若使用格式符为“%d”,则对应输出的数据类型为()。A、charB、intC、floatD、double正确答案:B答案解析:9已知“inta[10],x,*pa=a;”,若要把数组a[3]元素的值赋给x,则不正确的语句为()。A、x=pa[3];B、x=*(a+3);C、x=a[3];D、x=*pa+3;正确答案:D10在定义指针变量的语句中,在指针变量名的前面标记的字符为()。A、&B、*C、#D、$正确答案:B11对于每个进行动态存储分配的函数,其返回值类型为()。A、charB、char*C、voidD、void*正确答案:D12C语言源程序文件的扩展名为()。A、cppB、exeC、objD、c正确答案:D答案解析:13在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为()。A、mainB、MAINC、nameD、function正确答案:A答案解析:14在下面字符数组的定义语句中,有语法错误的是()。A、chara[20]="abcdefg";B、chara[]="x+y=55.";C、chara[15]={'1','2'};D、chara[10]='5';正确答案:D答案解析:15假定要访问一个结构变量x中的数据成员a,则表示方法为()。A、x.aB、x->aC、x:aD、x(a)正确答案:A16假定p是一个指向数据对象的指针,则通过p表示该数据对象为()。A、p*B、p&C、&pD、*p正确答案:D17设x和y均为逻辑值,则x&&y为真的条件是()。A、它们均为真B、其中一个为真C、它们均为假D、其中一个为假正确答案:A答案解析:18一个无符号字符类型的值域范围是()。A、-128到+127B、0到255C、-127到255D、1到255正确答案:B答案解析:19一个指针类型的简单变量占用内存中的字节数为()。A、2B、4C、8D、16正确答案:B20假定一维数组的定义为“chara[8];”,则该数组所占用的存储空间的字节数为()。A、8B、16C、64D、32正确答案:A答案解析:二、填空题(题数:10,共30.0分)1若需要定义一个符号常量,并且使C语言能够进行类型检查,则应在定义语句的开始使用保留字__________。(3.0分)正确答案第一空:const我的答案:答案解析:2char类型的长度为______字节。(3.0分)正确答案第一空:1我的答案:答案解析:3执行下面程序的输出结果为___________。#include<stdio.h>voidmain(){inti,f1=1,f2;for(i=2;i<6;i++){f2=3*f1;f1=f2;}printf("f2=%d\n",f2);}(3.0分)正确答案第一空:f2=81我的答案:答案解析:4此程序运行后,得到的输出结果为____________________。#include<stdio.h>structWorker{charname[15];intage;intpay;};voidmain(){structWorkerx={"wanghua",52,4266};structWorkery=x;printf("%d\n",x.pay+y.pay);}(3.0分)正确答案第一空:8532我的答案:5执行下面程序的输出结果为________。#includestdio.h>#include<stdio.h>voidmain(){inta=18,b=4,c=0;if(a/b){c+=a/b;c+=a%b;}if(a%b){a=a/b;b=a%b;}printf("%d",a+b+c);}(3.0分)正确答案第一空:10我的答案:答案解析:6执行下面程序的输出结果为___________。#include<stdio.h>voidmain(){inta[8]={3,8,6,5,9,2,8,5};inti,s=0;for(i=0;i<8;i++)s+=a[i];printf("s=%d\n",s);}(3.0分)正确答案第一空:s=46我的答案:7数值常量0x62的表示方式为_____________。(3.0分)正确答案第一空:十六进制我的答案:答案解析:8执行下面程序的输出结果为__________。#include<stdio.h>voidmain(){inta[3][3]={{12,18,10},{8,6,14},{5,10,19}};inti,j,s[3]={0};for(i=0;i<3;i++)for(j=0;j<3;j++)s[a[i][j]%3]+=a[i][j];for(i=0;i<3;i++)printf("%d",s[i]);}(3.0分)正确答案第一空:363927我的答案:9已知x=-25,则abs(x)的值为_________。(3.0分)正确答案第一空:25我的答案:答案解析:10若x=5,y=10,则计算y*=++x表达式后,y的值为__________。(3.0分)正确答案第一空:60我的答案:答案解析:三、判断题(题数:15,共30.0分)1增量表达式++y表示成赋值表达式为y=y+1。正确答案:√答案解析:2表达式sizeof(25)的值等于4。正确答案:√答案解析:3C语言中的标准输入和输出设备文件都属于字符文件。正确答案:×4在结构成员访问运算符中,点运算符(.)为双目运算符。正确答案:√5在程序文件中要进行动态存储分配和释放,则需要引入的系统头文件是stdio.h。正确答案:×6在结构成员访问运算符中,点运算符和箭头运算符的左边均为结构变量。正确答案:×7在C语言程序上机操作的过程中,编译程序的操作步骤之后是连接操作。正确答案:√答案解析:8访问一个链表时,必须从表头指针出发,依次访问每个结点。正确答案:√9在函数定义中,存在着调用自身函数的函数调用表达式,则称此函数为递归函数。正确答案:√10return语句只有保留字,没有其他成分。正确答案:×答案解析:11for循环语句的循环体,只能是复合语句,不能是简单语句。正确答案:×答案解析:12表达式x=x+y表示成复合赋值表达式为x=+y。正确答案:×答案解析:13在结构类型的定义中,其中的数据成员可以是本身类型的直接对象。正确答案:×14一个程序文件开始使用的每条预处理命令,其首字符必须是#。正确答案:√答案解析:15在C语言中,作为标识符的第一个字符只能是英文字母或下划线,不能是数字字符。正确答案:√答案解析:C语言程序设计一、单选题(题数:20,共40.0分)1表示文件结束符的符号常量为()。A、eofB、EofC、EOFD、feof正确答案:C答案解析:2字符串"It\'s\'"中包含的字符个数为()。A、8B、6C、7D、5正确答案:D答案解析:3程序运行中需要从键盘上输入多于一个数据时,若不特别规定分隔符,则输入的各数据之间所使用的分隔符为()。A、空格或逗号B、逗号或回车C、逗号或分号D、空格或回车正确答案:D答案解析:4在函数体中把出现调用自身函数的情况称为()。A、非递归调用B、直接递归调用C、间接递归调用D、末尾递归调用正确答案:B5在printf()函数调用的格式字符串中,若使用格式符为“%5d”,则规定对应输出的数据占用的字符位置个数为()。A、5B、4C、3D、6正确答案:A答案解析:6在printf()函数调用的格式字符串中,若使用格式符为“%d”,则对应输出的数据类型为()。A、charB、intC、floatD、double正确答案:B答案解析:7不符合C语言规定的复合语句是()。A、{}B、{;}C、{x=0;}D、{y=10}正确答案:D答案解析:8在C语言中,一条简单语句的结束符是()。A、逗号B、冒号C、分号D、空格正确答案:C答案解析:9假定一个函数的原型为intff(intx),一个整型变量为a,则下面函数调用表达式不正确的是()。A、ff(*a)B、ff(a)C、ff(a+10)D、ff(3)正确答案:A10在C语言中,用户定义的标识符分为4种作用域,下列选项中不属于这4种作用域的是()。A、全局B、语句C、文件D、局部正确答案:B11假定一个函数原型为intf1(inta[][N],intn),与数组参数等价的表示为()。A、int*aB、int**aC、int(*a)[N]D、int*a[N]正确答案:C12使用“typedefintABC[10];”语句把标识符ABC定义为()。A、简单变量B、符号常量C、整型数组类型D、字符数组正确答案:C答案解析:13向一个二进制文件中写入数据的系统函数为fwrite(),它的参数有()。A、1B、2C、3D、4正确答案:D14在下面字符数组的定义语句中,有语法错误的是()。A、chara[20]="abcdefg";B、chara[]="x+y=55.";C、chara[15]={'1','2'};D、chara[10]='5';正确答案:D答案解析:15在循环语句“for(i=0;i<n;i++)S;”循环体S的执行次数为()A、1B、n-1C、nD、n+1正确答案:C答案解析:16假定要访问一个结构变量x中的数据成员a,则表示方法为()。A、x.aB、x->aC、x:aD、x(a)正确答案:A17假定p是一个指向数据对象的指针,则通过p表示该数据对象为()。A、p*B、p&C、&pD、*p正确答案:D18若要结束所在函数的执行过程,返回到调用该函数所在位置,则使用的语句为()。A、continueB、breakC、gotoD、return正确答案:D答案解析:19使用“typedefintInteger;”语句把标识符Integer定义为一个()。A、整数变量B、整数类型C、数组变量D、数组类型正确答案:B答案解析:20C语言程序中的基本功能模块为()。A、表达式B、标识符C、语句D、函数正确答案:D答案解析:二、填空题(题数:10,共30.0分)1此函数的功能是把十进制正整数x转换为________进制数输出出来。voidxk10(intx){chara[10];inti=0,rem;do{rem=x%16;x=x/16;if(rem<10)a[i]=48+rem;//'0'字符的ASCII码为48elsea[i]=55+rem;//'A'字符的ASCII码为65i++;}while(x!=0);while(i>0)printf("%c",a[--i]);}(3.0分)正确答案第一空:十六我的答案:2若需要定义一个符号常量,并且使C语言能够进行类型检查,则应在定义语句的开始使用保留字__________。(3.0分)正确答案第一空:const我的答案:答案解析:3在执行下面程序的输出结果中,最后两个整数为______________。#include<stdio.h>voidmain(){inta[8]={25,18,36,42,17,54,30,63};int*p=a;while(p<a+8){printf("%d",*p++);p++;}}(3.0分)正确答案第一空:1730我的答案:4数值常量0x62的表示方式为_____________。(3.0分)正确答案第一空:十六进制我的答案:答案解析:5下面函数的功能是把数组a中的n个整数元素保存到字节文件中。该字节文件名为参数fname所指向的字符串。请在横线处填写合适内容。break(return)voidxw1(char*fname,inta[],intn){FILE*fout=fopen(fname,"wb");fwrite(a,sizeof(int),_______,fout);fclose(fout);}(3.0分)正确答案第一空:n我的答案:6已知'A'~'Z'的ASCII码为65~90,当执行“intx='C'+5;”语句后x的值为________。(3.0分)正确答案第一空:72我的答案:答案解析:7执行下面程序的输出结果为__________。#include<stdio.h>voidmain(){inti=0,s=0;do{i+=2;if(i%3==0)continue;s+=i*(i+1);}while(s<60);printf("s=%d\n",s);}(3.0分)正确答案第一空:s=98我的答案:答案解析:8执行下面程序的输出结果为____________。#include<stdio.h>voidmain(){inta[8]={12,15,20,8,25,30,28,36};inti,c[3]={0};for(i=0;i<8;i++){if(a[i]%2==0)c[0]++;if(a[i]%3==0)c[1]++;if(a[i]%4==0)c[2]++;}printf("%d%d%d\n",c[0],c[1],c[2]);}(3.0分)正确答案第一空:645我的答案:9此程序运行后,得到的输出结果为_____________。#include<stdio.h>intwr9(int*a,intn){inti,s=0;for(i=0;i<n;i++)s+=a[i];returns;}voidmain(){inta[]={5,10,8,7,20,15};printf("%d%d\n",wr9(a,4),wr9(a+2,3));}(3.0分)正确答案第一空:3035我的答案:10执行下面程序的输出结果为______________#include<stdio.h>voidmain(){intx=16,s=0;do{s+=x;x-=3;}while(x>0);printf("s=%d\n",s);}(3.0分)正确答案第一空:s=51我的答案:答案解析:三、判断题(题数:15,共30.0分)1在结构成员访问运算符中,点运算符(.)为双目运算符。正确答案:√2若要在程序文件中使用标准输入和输出函数,则需要引入的系统头文件为stdio.h。正确答案:√答案解析:3从文本文件中输入数据时,需要调用系统函数fputs()或fgets()。正确答案:×4在函数定义中,存在着调用自身函数的函数调用表达式,则称此函数为递归函数。正确答案:√5在C语言字符集中,一个大写英文字母和它的小写英文字母被视为不同的字符。正确答案:√答案解析:6while循环语句中的循环体至少被执行一次。正确答案:×答案解析:7对二进制文件进行读和写操作将使用不同的系统函数。正确答案:√8在一条变量定义语句中,定义的变量和赋给它的初值之间不需要使用等号(=)。正确答案:×答案解析:9continue语句只有保留字,没有语句体。正确答案:√答案解析:10在“printf("%d-%d=%d",x,y,x-y);”语句所使用的格式字符串中,包含有3个格式符。正确答案:√答案解析:11常数3.26是双精度浮点数。正确答案:×答案解析:12在C语言中,每条复合语句的开始标记字符为{。正确答案:√答案解析:13在C语言中,保留字是有专门含义和作用的,不能作为一般标识符使用。正确答案:√答案解析:14一个程序文件开始使用的每条预处理命令,其首字符必须是#。正确答案:√答案解析:15在定义指针变量的语句中,最前面的类型关键字仍然允许是指针类型。正确答案:√C语言程序设计一、单选题(题数:20,共40.0分)1表示文件结束符的符号常量为()。A、eofB、EofC、EOFD、feof正确答案:C答案解析:2若一个文本文件的长度为n-1,当以"r"方式打开时,其读文件指针初始指向的字节位置编号为()。A、0B、1C、n-1D、n正确答案:A3假定有结构定义为“structBook{chartitle[20];doubleprice;};”,则不正确的语句定义为()。A、structBook*x=calloc(sizeof(structBook));B、structBooka={"C++Programming",27.0};C、structBook*x=malloc(sizeof(structBook));D、structBooka,*x=&a;正确答案:A4程序运行中需要从键盘上输入多于一个数据时,若不特别规定分隔符,则输入的各数据之间所使用的分隔符为()。A、空格或逗号B、逗号或回车C、逗号或分号D、空格或回车正确答案:D答案解析:5在switch语句中,每个保留字case后面的表达式必须是()。A、变量种B、常量C、一般表达式D、函数调用正确答案:B答案解析:6用于输出表达式值的标准输出函数是()。A、printf()B、print()C、scanf()D、output()正确答案:A答案解析:7在函数体中把出现调用自身函数的情况称为()。A、非递归调用B、直接递归调用C、间接递归调用D、末尾递归调用正确答案:B8假定一个函数的原型为intff(intx),一个整型变量为a,则下面函数调用表达式不正确的是()。A、ff(*a)B、ff(a)C、ff(a+10)D、ff(3)正确答案:A9在一个程序文件中,若要使用#include命令包含一个系统头文件,则此头文件所使用的起止定界符为一对()。A、尖括号B、双引号C、单引号D、花括号正确答案:A答案解析:10在printf()函数调用的格式字符串中,每个格式符的先导字符为()。A、#B、%C、$D、@正确答案:B答案解析:11假定一个函数原型为intf1(inta[][N],intn),与数组参数等价的表示为()。A、int*aB、int**aC、int(*a)[N]D、int*a[N]正确答案:C12若x的值为5,则执行“if(x>10)x++;elsex--;”语句后,x的值为()。A、6B、5C、4D、3正确答案:C答案解析:13函数定义参数表中的每个形参变量,其作用域范围为所在的整个()。A、程序B、文件C、函数D、参数表正确答案:C14假定要访问一个结构变量x中的数据成员a,则表示方法为()。A、x.aB、x->aC、x:aD、x(a)正确答案:A15使用“typedefintInteger;”语句把标识符Integer定义为一个()。A、整数变量B、整数类型C、数组变量D、数组类型正确答案:B答案解析:16在C语言中,打开一个数据文件的系统函数为()。A、fopen()B、fclose()C、fread()D、fwrite()正确答案:A17假定二维数组的定义语句为“int*a[3][5];”,则该数组所占用的存储空间的字节数为()。A、120B、15C、30D、60正确答案:D答案解析:18一个指针类型的简单变量占用内存中的字节数为()。A、2B、4C、8D、16正确答案:B19在一个数组中,数组元素a[i]前面的元素个数为()。A、iB、i+1C、i-1D、2*i正确答案:A答案解析:20函数pow(4,3)的值为()。A、64.0B、12.0C、27D、56正确答案:A答案解析:二、填空题(题数:10,共30.0分)1此程序运行后,得到的输出结果为____________________。#include<stdio.h>structWorker{charname[15];intage;intpay;};intxh2(structWorkerr1,structWorkerr2){if(r1.age==r2.age)return1;elsereturn0;}voidmain(){structWorkera[4]={{"abc",25,420},{"defa",58,638},{"ghin",49,560},{"jklt",36,375}};structWorkerx={"",49,0};inti;for(i=0;i<4;i++)if(xh2(a[i],x))break;for(i=0;i<4;i++)if(xh2(a[i],x))break;}(3.0分)正确答案第一空:ghin560我的答案:2执行下面程序的输出结果为___________。#include<stdio.h>voidmain(){inta[3][3]={{13,18,16},{15,19,12},{8,15,22}};inti,j,x=a[0][0];for(i=0;i<3;i++)for(j=0;j<3;j++)if(a[i][j]<x)x=a[i][j];printf("x=%d\n",x);}(3.0分)正确答案第一空:x=8我的答案:3执行下面程序时,输出结果中的每个整数都大于从键盘上输入的8个整数的______________。#include<stdio.h>voidmain(){inta[8];intx=0,*p;printf("请输入8个整数:");for(p=a;p<a+8;p++)scanf("%d",p);for(p=a;p<a+8;p++)x+=*p;for(p=a;p<a+8;p++)if(*p>x/8)printf("%d",*p);}(3.0分)正确答案第一空:平均值我的答案:4若需要定义一个符号常量,并且使C语言能够进行类型检查,则应在定义语句的开始使用保留字__________。(3.0分)正确答案第一空:const我的答案:答案解析:5char类型的长度为______字节。(3.0分)正确答案第一空:1我的答案:答案解析:6在C语言中,表示换行符的转义字符为_____________。(3.0分)正确答案第一空:\n我的答案:答案解析:7执行下面程序后,假定从键盘上输入的两个字符串数据为123和456,则输出结果为__________。#include<stdio.h>#include<string.h>voidmain(){chara[20],b[20];scanf("%s%s",a,b);if(strcmp(a,b)>=0)printf("%s%s\n",a,b);elseprintf("%s%s\n",b,a);}(3.0分)正确答案第一空:456123我的答案:8执行下面程序的输出结果为_____________。#include<stdio.h>voidmain(){inti,s=0;for(i=1;i<10;i+=3)s+=i*(i+1);printf("s=%d\n",s);}(3.0分)正确答案第一空:s=78我的答案:答案解析:9执行下面程序的输出结果为___________。#include<stdio.h>voidmain(){inta[8]={3,8,6,5,9,2,8,5};inti,s=0;for(i=0;i<8;i++)s+=a[i];printf("s=%d\n",s);}(3.0分)正确答案第一空:s=46我的答案:10逻辑表达式(x>3&&x<10)的相反表达式为______________。(3.0分)正确答案第一空:x<=3||x>=10我的答案:答案解析:三、判断题(题数:15,共30.0分)1break语句只能使用在循环语句中。正确答案:×答案解析:2函数调用参数表中的每个实参只能是常量或变量。正确答案:×3在C语言字符集中,包含有全部26个英文大写字母和对应的小写字母。正确答案:√答案解析:4在函数定义中,存在着调用自身函数的函数调用表达式,则称此函数为递归函数。正确答案:√5对二进制文件进行读和写操作将使用不同的系统函数。正确答案:√6若要在程序文件中使用数学函数,则需要引入的系统头文件为math.h。正确答案:√答案解析:7执行“typedefintintType;”语句后,在使用int定义整型变量的地方都可以使用整数类型标识符intType来定义整型变量。正确答案:√答案解析:8在数据文件打开方式字符串中,字符加号(+)具有确定的含义,代表既允许读也允许写的打开方式。正确答案:√9在C语言中,打开一个数据文件的系统函数为fopen(),它带有一个字符串参数,用来给定待操作的文件名。正确答案:×10在“printf("%d-%d=%d",x,y,x-y);”语句所使用的格式字符串中,包含有3个格式符。正确答案:√答案解析:11在二维数组的定义语句中,数组名后带有两对中括号。正确答案:√答案解析:12进行动态存储分配的malloc()函数带有一个参数。正确答案:√13在C语言中,保留字是有专门含义和作用的,不能作为一般标识符使用。正确答案:√答案解析:14广义整数类型包括短整型、标准整型和长整型3种。正确答案:×答案解析:15在C语言程序中,对于递归函数和非递归函数,其函数头部有区别标志。正确答案:×C语言程序设计一、单选题(题数:20,共40.0分)1字符串"It\'s\'"中包含的字符个数为()。A、8B、6C、7D、5正确答案:D答案解析:2程序运行中需要从键盘上输入多于一个数据时,若不特别规定分隔符,则输入的各数据之间所使用的分隔符为()。A、空格或逗号B、逗号或回车C、逗号或分号D、空格或回车正确答案:D答案解析:3从一个文本文件中读取一个字符的系统函数为()。A、fputc()B、fgets()C、fputs()D、fgetc()正确答案:D4在printf()函数调用的格式字符串中,若使用格式符为“%5d”,则规定对应输出的数据占用的字符位置个数为()。A、5B、4C、3D、6正确答案:A答案解析:5每个C程序文件在编译时可能出现有警告性错误,其对应的标识符号为()。A、warningB、errorC、warnD、err正确答案:A答案解析:6若用数组名作为函数调用的实参,传递给形参的是()。A、数组的首地址B、数组中第一个元素的值C、数组中全部元素的值D、数组元素的个数正确答案:A7要定义a和b为两个整型变量,则使用的定义语句为()。A、inta;b;B、inta,b;C、intab;D、inta:b;正确答案:B答案解析:8在scanf()函数调用的格式字符串中,每个格式符的先导字符为()。A、#B、%C、$D、@正确答案:B答案解析:9每个C语言程序文件的编译错误的类型有()。A、1种B、2种C、3种D、4种正确答案:B答案解析:10对于每个进行动态存储分配的函数,其返回值类型为()。A、charB、char*C、voidD、void*正确答案:D11标准输入设备键盘的文件流标识符是()。A、stdinB、stdoutC、stderrD、stdio正确答案:A12C语言源程序文件的扩展名为()。A、cppB、exeC、objD、c正确答案:D答案解析:13利用一维字符数组存储一个字符串时,在其末尾自动存储的一个字符是()。A、空格B、'\0'C、回车D、'\n'正确答案:B答案解析:14在结构类型的定义中,不同数据成员的定义项之间采用的分隔符是()。A、句点B、冒号C、分号D、逗号正确答案:C15在printf()函数调用的格式字符串中,若使用格式符为“%f”,则对应输出的数据类型为()。A、charB、intC、floatD、double正确答案:C答案解析:16假定a为一个数组名,则下面表达式中错误的是()。A、a[i]B、*a++C、*aD、*(a+1)正确答案:B17C语言程序中的基本功能模块为()。A、表达式B、标识符C、语句D、函数正确答案:D答案解析:18在C语言中,打开一个数据文件的系统函数为()。A、fopen()B、fclose()C、fread()D、fwrite()正确答案:A19假定二维数组的定义语句为“int*a[3][5];”,则该数组所占用的存储空间的字节数为()。A、120B、15C、30D、60正确答案:D答案解析:20假定有一个定义语句为“inta[10]={3,4,2,8,6};”,则元素a[3]的值为()。A、4B、2C、8D、6正确答案:C答案解析:二、填空题(题数:10,共30.0分)1此程序运行后,得到的输出结果为____________________。#include<stdio.h>structWorker{charname[15];intage;intpay;};intxh2(structWorkerr1,structWorkerr2){if(r1.age==r2.age)return1;elsereturn0;}voidmain(){structWorkera[4]={{"abc",25,420},{"defa",58,638},{"ghin",49,560},{"jklt",36,375}};structWorkerx={"",49,0};inti;for(i=0;i<4;i++)if(xh2(a[i],x))break;for(i=0;i<4;i++)if(xh2(a[i],x))break;}(3.0分)正确答案第一空:ghin560我的答案:2执行下面程序的输出结果为__________。#include<<stdio.h>#include<string.h>voidmain(){intc1,c2;chara[20]="String1234\n";charb[10]="str";c1=strlen(a);strcat(b,"245\0");intc2=strlen(b);printf("%d%d\n",c1,c2);}(3.0分)正确答案第一空:116我的答案:3下面函数的功能是从字节文件中依次读取每个整数并进行求和,返回求和结果。该字节文件名为参数fname所指向的字符串。请在横线处填写合适内容。intxw3(char*fname){FILE*fin=fopen(fname,__________);intc,x,s=0;while(1){c=fread(&x,sizeof(int),1,fin);if(c==0)break;s+=x;}fclose(fin);returns;}(3.0分)正确答案第一空:"rb"我的答案:4char类型的长度为______字节。(3.0分)正确答案第一空:1我的答案:答案解析:5在执行下面程序的输出结果中,最后两个整数为______________。#include<stdio.h>voidmain(){inta[8]={25,18,36,42,17,54,30,63};int*p=a;while(p<a+8){printf("%d",*p++);p++;}}(3.0分)正确答案第一空:1730我的答案:6执行下面程序的输出结果为___________。#include<stdio.h>voidmain(){inta[8]={3,8,6,5,9,2,8,5};inti,s=0;for(i=0;i<8;i++)s+=a[i];printf("s=%d\n",s);}(3.0分)正确答案第一空:s=46我的答案:7数值常量0x62的表示方式为_____________。(3.0分)正确答案第一空:十六进制我的答案:答案解析:8常数120的数据类型为__________。(3.0分)正确答案第一空:整型我的答案:答案解析:9执行下面程序的输出结果为__________。#include<stdio.h>voidmain(){inta[3][3]={{12,18,10},{8,6,14},{5,10,19}};inti,j,s[3]={0};for(i=0;i<3;i++)for(j=0;j<3;j++)s[a[i][j]%3]+=a[i][j];for(i=0;i<3;i++)printf("%d",s[i]);}(3.0分)正确答案第一空:363927我的答案:10若x=5,y=10,则计算y*=++x表达式后,y的值为__________。(3.0分)正确答案第一空:60我的答案:答案解析:三、判断题(题数:15,共30.0分)1表达式sizeof(25)的值等于4。正确答案:√答案解析:2假定一维数组的定义为“doublea[M];”,则每个数组元素的下标取值范围在1~M之间。正确答案:×答案解析:3从文本文件中输入数据时,需要调用系统函数fputs()或fgets()。正确答案:×4浮点数包括单精度浮点数和双精度浮点数两种。正确答案:√答案解析:5在C语言字符集中,一个大写英文字母和它的小写英文字母被视为不同的字符。正确答案:√答案解析:6执行“typedefintintType;”语句后,在使用int定义整型变量的地方都可以使用整数类型标识符intType来定义整型变量。正确答案:√答案解析:7在数据文件打开方式字符串中,字符加号(+)具有确定的含义,代表既允许读也允许写的打开方式。正确答案:√8continue语句只有保留字,没有语句体。正确答案:√答案解析:9函数被调用执行中,形参变量的初值由调用该函数时对应的实参值给定。正确答案:√10假定二维数组的定义语句为“doublea[M][N];”,则每个数组元素的列下标取值范围在0~N-1之间。正确答案:√答案解析:11在if语句中,可以带有else子句,也可以省略它。正确答案:√答案解析:12表达式x=x+y表示成复合赋值表达式为x=+y。正确答案:×答案解析:13在一个链表中,表头结点无前驱结点,表尾结点无后继结点。正确答案:√14在一个磁盘数据文件的文件名中,文件主名是必须的,扩展名可任选使用。正确答案:√15在定义指针变量的语句中,最前面的类型关键字仍然允许是指针类型。正确答案:√C语言程序设计一、单选题(题数:20,共40.0分)1一个二维数组元素为a[i][j],它的指针访问方式不正确的是()。A、*(a[i]+j)B、(*(a+i))[j]C、*a[i]+jD、*(*(a+i)+j)正确答案:C2在switch语句中,每个保留字case后面的表达式必须是()。A、变量种B、常量C、一般表达式D、函数调用正确答案:B答案解析:3在函数体中把出现调用自身函数的情况称为()。A、非递归调用B、直接递归调用C、间接递归调用D、末尾递归调用正确答案:B4在联合类型的定义中,使用的关键字是()。A、structB、unionC、staticD、enum正确答案:B5要定义a和b为两个整型变量,则使用的定义语句为()。A、inta;b;B、inta,b;C、intab;D、inta:b;正确答案:B答案解析:6在printf()函数调用的格式字符串中,每个格式符的先导字符为()。A、#B、%C、$D、@正确答案:B答案解析:7在C语言中,为追加写操作打开一个二进制文件的方式为()。A、"w+"B、"rb"C、"wb"D、"ab"正确答案:D8对于每个进行动态存储分配的函数,其返回值类型为()。A、charB、char*C、voidD、void*正确答案:D9假定一个函数原型为intf1(inta[][N],intn),与数组参数等价的表示为()。A、int*aB、int**aC、int(*a)[N]D、int*a[N]正确答案:C10若x的值为5,则执行“if(x>10)x++;elsex--;”语句后,x的值为()。A、6B、5C、4D、3正确答案:C答案解析:11在C语言程序中,多行注释使用的结束标记符为()。A、//B、/*C、*/D、**正确答案:C答案解析:12在一个数组中,数组元素a[i]前面的元素个数为()。A、iB、i+1C、i-1D、2*i正确答案:A答案解析:13利用一维字符数组存储一个字符串时,在其末尾自动存储的一个字符是()。A、空格B、'\0'C、回车D、'\n'正确答案:B答案解析:14在printf()函数调用的格式字符串中,若使用格式符为“%f”,则对应输出的数据类型为()。A、charB、intC、floatD、double正确答案:C答案解析:15在循环语句“for(i=0;i<n;i++)S;”循环体S的执行次数为()A、1B、n-1C、nD、n+1正确答案:C答案解析:16使用“typedefintInteger;”语句把标识符Integer定义为一个()。A、整数变量B、整数类型C、数组变量D、数组类型正确答案:B答案解析:17假定二维数组的定义语句为“int*a[3][5];”,则该数组所占用的存储空间的字节数为()。A、120B、15C、30D、60正确答案:D答案解析:18下面正确的函数原型语句是()。A、intFunction(voida);B、voidFunction(int);C、intFunction(a);D、voidint(doublea);正确答案:B19设x和y均为逻辑值,则x&&y为真的条件是()。A、它们均为真B、其中一个为真C、它们均为假D、其中一个为假正确答案:A答案解析:20C语言中使用的字符常量,其起止标记符是()。A、单引号B、双引号C、中括号D、尖括号正确答案:A答案解析:二、填空题(题数:10,共30.0分)1此程序运行后,得到的输出结果为_________________。#include#includestructintNode{intvalue;structintNode*next;};voidmain(void){structintNodex={32,NULL},y={45,&x},*r;for(r=&y;r!=NULL;r=r->next)printf("%d",r->value);printf("\n");}(3.0分)正确答案第一空:4532我的答案:2执行下面程序时,输出结果中的每个整数都大于从键盘上输入的8个整数的______________。#include<stdio.h>voidmain(){inta[8];intx=0,*p;printf("请输入8个整数:");for(p=a;p<a+8;p++)scanf("%d",p);for(p=a;p<a+8;p++)x+=*p;for(p=a;p<a+8;p++)if(*p>x/8)printf("%d",*p);}(3.0分)正确答案第一空:平均值我的答案:3在C语言中,表示换行符的转义字符为_____________。(3.0分)正确答案第一空:\n我的答案:答案解析:4假定结构类型为“structstrNode{charname[15];structstrNode*next;};”,下面函数能够建立并返回以f为表头指针的单链表,请在横线处填写合适内容。structstrNode*xb2(){structstrNode*f=NULL,*r;chara[15];printf("输入每个字符串,用\"-1\"作为结束标志\n");do{scanf("%s",a);if(strcmp(a,"-1")==0)break;r=malloc(sizeof(structstrNode));strcpy(r->name,a);r->next=f;____________________;}while(1);returnf;}(3.0分)正确答案第一空:f=r我的答案:5x<=10的相反表达式为____________。(3.0分)正确答案第一空:x>=10我的答案:答案解析:6执行下面程序的输出结果为___________。#include<stdio.h>voidmain(){inta[8]={3,8,6,5,9,2,8,5};inti,s=0;for(i=0;i<8;i++)s+=a[i];printf("s=%d\n",s);}(3.0分)正确答案第一空:s=46我的答案:7逻辑表达式(x>3&&x<10)的相反表达式为______________。(3.0分)正确答案第一空:x<=3||x>=10我的答案:答案解析:8当使用xk4(2,4)调用此函数时,返回值为_____________。intxk4(intx,intn){//n为大于等于0的整数inti,p=1,s=1;for(i=1;i<=n;i++){p*=x;s+=i*p;}returns;}(3.0分)正确答案第一空:99我的答案:9若x=5,y=10,则计算y*=++x表达式后,y的值为__________。(3.0分)正确答案第一空:60我的答案:答案解析:10执行下面程序的输出结果为___________。#include<stdio.h>voidmain(){inti,j,s=0;for(i=1;i<3;i++)for(j=1;j<5;j++)s+=i*j;printf("s=%d\n",s);}(3.0分)正确答案第一空:s=30我的答案:答案解析:三、判断题(题数:15,共30.0分)1在结构成员访问运算符中,点运算符(.)为双目运算符。正确答案:√2在一个链表中,表尾结点指针域的值为空(NULL)。正确答案:√3访问一个链表时,必须从表头指针出发,依次访问每个结点。正确答案:√4浮点数包括单精度浮点数和双精度浮点数两种。正确答案:√答案解析:5在C语言字符集中,一个大写英文字母和它的小写英文字母被视为不同的字符。正确答案:√答案解析:6在一维数组的定义语句中,可以给数组中每个元素赋初值。正确答案:√答案解析:7在执行“scanf("%d%d",&x,&y);”语句时,需要从键盘上输入2个整数。正确答案:√答案解析:8在利用scanf()函数从键盘输入数据时,需要在参数表的开始位置使用相应的格式字符串。正确答案:√答案解析:9return语句只有保留字,没有其他成分。正确答案:×答案解析:10在C语言中,打开一个数据文件的系统函数为fopen(),它带有一个字符串参数,用来给定待操作的文件名。正确答案:×11在执行“printf("%d-%d=%d",x,y,x-y);”语句时,其输出的前两个数据值之间将采用逗号分开。正确答案:×答案解析:12在if语句中,可以带有else子句,也可以省略它。正确答案:√答案解析:13在for循环语句的头部,for后面括号内的各表达式之间使用逗号分开。正确答案:×答案解析:14表达式x=x+y表示成复合赋值表达式为x=+y。正确答案:×答案解析:15在结构类型的定义中,其中的数据成员可以是本身类型的直接对象。正确答案:×C语言程序设计一、单选题(题数:20,共40.0分)1若一个文本文件的长度为n-1,当以"r"方式打开时,其读文件指针初始指向的字节位置编号为()。A、0B、1C、n-1D、n正确答案:A2字符串"It\'s\'"中包含的字符个数为()。A、8B、6C、7D、5正确答案:D答案解析:3已知x的初值为15,则下列各表达式中的最小值为()。A、x%=20B、x+=10C、x/=2D、x*=2正确答案:C答案解析:4用于输出表达式值的标准输出函数是()。A、printf()B、print()C、scanf()D、output()正确答案:A答案解析:5假定一个函数的原型为intff(intx),一个整型变量为a,则下面函数调用表达式不正确的是()。A、ff(*a)B、ff(a)C、ff(a+10)D、ff(3)正确答案:A6若用数组名作为函数调用的实参,传递给形参的是()。A、数组的首地址B、数组中第一个元素的值C、数组中全部元素的值D、数组元素的个数正确答案:A7在scanf()函数调用的格式字符串中,若使用格式字符串为“%d,%d”,则规定输入的两个数据之间的分隔符为()。A、@B、#C、$D、,正确答案:D答案解析:8在scanf()函数调用的格式字符串中,每个格式符的先导字符为()。A、#B、%C、$D、@正确答案:B答案解析:9在C语言中,为追加写操作打开一个二进制文件的方式为()。A、"w+"B、"rb"C、"wb"D、"ab"正确答案:D10假定有一个定义语句为“inta[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为()。A、0B、4C、8D、6正确答案:A答案解析:11标准输入设备键盘的文件流标识符是()。A、stdinB、stdoutC、stderrD、stdio正确答案:A12假定一个函数原型为intf1(inta[][N],intn),与数组参数等价的表示为()。A、int*aB、int**aC、int(*a)[N]D、int*a[N]正确答案:C13向一个二进制文件中写入数据的系统函数为fwrite(),它的参数有()。A、1B、2C、3D、4正确答案:D14在下面字符数组的定义语句中,有语法错误的是()。A、chara[20]="abcdefg";B、chara[]="x+y=55.";C、chara[15]={'1','2'};D、chara[10]='5';正确答案:D答案解析:15假定要访问一个结构变量x中的数据成员a,则表示方法为()。A、x.aB、x->aC、x:aD、x(a)正确答案:A16在程序的一个文件中定义的函数,若要在另一个文件中调用,则必须在这另一个文件中给出该函数的()。A、原型语句B、参数表C、函数名D、返回类型正确答案:A17假定a为一个数组名,则下面表达式中错误的是()。A、a[i]B、*a++C、*aD、*(a+1)正确答案:B18使用“typedefintInteger;”语句把标识符Integer定义为一个()。A、整数变量B、整数类型C、数组变量D、数组类型正确答案:B答案解析:19C语言中使用的字符常量,其起止标记符是()。A、单引号B、双引号C、中括号D、尖括号正确答案:A答案解析:20假定一维数组的定义为“chara[8];”,则该数组所占用的存储空间的字节数为()。A、8B、16C、64D、32正确答案:A答案解析:二、填空题(题数:10,共30.0分)1执行下面程序的输出结果为____________。#include<stdio.h>voidmain(){inti=1,p=1,s=1;while(s<40){i++;p=p*i;s=s+p;}printf("s=%d\n",s);}(3.0分)正确答案第一空:s=153我的答案:答案解析:2char类型的长度为______字节。(3.0分)正确答案第一空:1我的答案:答案解析:3执行下面程序的输出结果为___________。#include<stdio.h>voidmain(){inti,f1=1,f2;for(i=2;i<6;i++){f2=3*f1;f1=f2;}printf("f2=%d\n",f2);}(3.0分)正确答案第一空:f2=81我的答案:答案解析:4此程序运行后,得到的输出结果为____________________。#include<stdio.h>structWorker{charname[15];intage;intpay;};voidxh1(structWorkerr){r.age+=12;printf("%d",r.age);};voidmain(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论