C语言期末总复习习题第四套
c语言期末考试题库及详解答案
c语言期末考试题库及详解答案C语言期末考试题库及详解答案一、选择题1. 下列哪个选项是C语言中正确的整型常量?A. 0.1234B. 0x12ABC. 0b1010D. 1e10答案:B2. C语言中,以下哪个关键字用于定义变量的存储类别?A. staticB. constC. typedefD. volatile答案:A3. 在C语言中,以下哪个运算符用于求两个数的余数?A. /B. %C.D. ++答案:B4. 下列哪个选项是C语言中正确的字符常量?A. 'A'B. "A"C. AD. 65答案:A5. 在C语言中,以下哪个函数用于计算两个数的最大值?A. max()B. min()C. pow()D. sqrt()答案:A二、填空题6. C语言中,用于定义数组的关键字是______。
答案:int7. C语言中,用于输入输出的库函数分别是______和______。
答案:scanf(); printf()8. C语言中,若要定义一个指针变量,需要使用关键字______。
答案:int*9. C语言中,用于定义函数的关键字是______。
答案:void 或其他数据类型10. C语言中,若要实现字符串的复制,可以使用库函数______。
答案:strcpy()三、简答题11. 简述C语言中结构体的定义方式。
答案:在C语言中,结构体是一种用户自定义的数据类型,它允许将多个不同类型的数据项组合成一个单一的类型。
结构体的定义方式如下:struct 结构体名 {数据类型成员名1;数据类型成员名2;...};12. 解释C语言中的递归函数。
答案:递归函数是一种函数自己调用自己的特殊函数。
递归函数通常用于解决可以被分解为相似子问题的问题。
递归函数需要有一个明确的终止条件,以防止无限递归。
四、编程题13. 编写一个C语言程序,实现求一个整数的阶乘。
答案:```c#include <stdio.h>long factorial(int n) {if (n <= 1) return 1;else return n * factorial(n - 1);}int main() {int num;printf("Enter a number: ");scanf("%d", &num);printf("Factorial of %d = %ld", num, factorial(num)); return 0;}```14. 编写一个C语言程序,实现字符串的反转。
C综合练习-4附参考答案
C综合练习4 附参考答案(宏,结构体和文件)0.较为复杂的宏定义例题(1)定义一个宏,用于判断所给出的年份year是否为闰年:#define LEAP_YEAR(y)解:为闰年的条件是符合下面二者之一:(1)能被4整除,但不能被100整除。
(2)能被4整除,能被400整除。
#define LEAP_YEAR(y) (y%4==0 && y%100!=0)|| (y%400==0 )(2)定义带参数的宏为#define max(a,b) ((a)>(b)?(a):(b))对表达式max(a,max(b,max(c,d))) 作宏替换为(用文字描述):。
解:计算a、b、c、d中的最大值。
表达式是调用宏函数,两个参数分别是a,max(b,max(c,d)),其第二个参数又是一个调用宏函数,参数分别是b,max(c,d)。
(3)定义一个带参数的宏,将两个参数的值交换#define swap(a,b) { double t; }解:t=a; a=b; b=t;(4)定义一个带参数的宏,若变量中的字符为大写字母则转换成小写字母。
解:#define change(c) c=c>='A'&&c<='Z'? c:c+321. 单项选择题1.下面语句的输出结果是________。
#include “stdio.h”printf(“%d %d %d”,NULL,’\0’,EOF);A. 0 0 1B. 0 0 -1C. NULL EOFD. 1 0 EOF2.如果二进制文件a.dat已经存在,现要求写入全新的数据,应以________方式打开。
A.“w” B.”wb” C.”w+” D.”wb+”3.有以下的结构体变量定义语句:struct student { int num; char name[9]; } stu;则下列叙述中错误的是( )。
c语言程序设计c语言程序设计练习四(参考答案).docx
《C语言程序设计》练习四(参考答案)1. 输入一个学生的成绩(在o〜100分之间,超出此范围显示错),进行五级评分并显示。
答案:第一空:score>=0 && score<=100第二空:score/10第三空:break2. 使用二维数组形成并按下列形式输出数据0 12 3 412 3 4 52 3 4 5 63 4 5 6 74 5 6 7 8答案:第一空:a[5][5]第二空:i+j第三空:printf(n\n n)3. 对含有10个元素的数组“先按元素的存储次序倒序输入,再按其正序输出。
答案:第一空:N 10第二空:i>=0第三空:&a[i]4.学生成绩的字母等级和分数范围如下:字母等级分数范围9()〜100B 80-89C 70〜7960 〜690〜59输入错误输入字母等级之后,输出相应的分数范围。
答案:第一空:char score 第二空:break 第三空:default5.从键盘输入x 的值,根据以下公式计算并输岀x 和 J = <y 的值。
X 0<x<2 x 2 +l 2<x<6 Jx + l 6SxvlOY、in答案: 第一空:&X 第二空:break 第三空:sqrt(x-i-l)A 二IVU 2 +i6. 分别统计并输出17、18、19和20岁各年龄的学生人数。
答案:第一空:prim 廿(”输入年龄有\n”) 第二空:age 第三空:a[i]7. 将从键盘输入的字符串逆序显示。
答案: 第一空:str 第二空:n 第三空:p-E其它字母8. 输入100名学生的出生月份,统计并输出每个月份过生FI的学生人数。
答案:第一空:&month第二空:iv=12第三空:%d9. ........................................................................... 输入n(ndl),计算1+ (1+2) + (1+2+3) + ...................................................................... +(1+2+……+n)的值。
c语言程序设计(第四版)考试题
c语言程序设计(第四版)考试题C程序设计(第四版)期末考试题本卷共有4道大题:一、单项选择题(20道小题,共20分)1、以下对C语言函数的有关描述中,正确的是( )(1分)A、在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B、C函数既可以嵌套定义又可以递归调用C、函数必须有返回值,否则不能使用函数D、C程序中有关调用关系的所有函数必须放在同一个源程序文件中2、strcpy库函数用于复制一个字符串。
若有以下定义:char *str1="copy",str2[10],*str3="hijklmn";char *str4,*str5="abcd";则对strcpy库函数的错误调用是( )(1分)A、strcpy(str2,str1)B、strcpy(str3,str1)C、strcpy(str4,str1)D、strcpy(str5,str1)3、设有以下语句:char str[4][12]={"aaa","bbb","ccc","ddd"};char *strp[4]; int i;for(i=0;i<4;i++) strp[i]=str[i]; 若0<=k<4,下列选项中对字符串的非法引用是( )(1分)A、strpB、str[k]C、strp[k]D、*strp4、以下各选项企图说明一种新的类型名,其中正确的是( )(1分)A、typedef v1 int;B、typedef v2=int;C、typedef v1 int v3;D、typedef v4: int;5、若以下定义和语句:int a[]={1,2,3,4,5,6,7,8,9,0}; int *p,i;p=a;0<i<="" p="">A、&(a+1)B、a++C、&pD、&p[i]6、C语言标准库函数"fgets(string,n,fp)"的功能是( )(1分)A、从文件fp中读取长度为n的字符串存入指针string指向的内存B、从文件fp中读取长度不超过n-1的字符串存入指针string指向的内存C、从文件fp中读取n个字符串存入指针string指向的内存D、从文件fp中读取不超过长度为n的字符串存入指针string指向的内存7、以下叙述中不正确的是( )(1分)A、在函数中,通过return语句传回函数值B、在函数中,可以有多条return语句C、在C中,main后的一对圆括号中也可以带有形参D、在C中,调用函数,必需在一条独立的语句中完成8、若有以下定义:char a;int b; float c;double d; 则表达式a*b+d-c值的类型为( )(1分)A、floatB、intC、charD、double9、以下叙述中正确的是( )(1分)A、输入项可以是一个实型常量,如:scanf("%f",3.5);B、只有格式控制,没有输入项,也能正确输入数据到内存,例如:scanf("a=%d ,b=%d");C、当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:scanf("%4.2f",&d);D、当输入数据时,必须指明变量地址,例如:scanf("%f",&f);10、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是( )(1分)A、INPUT x、y、z;B、scanf("%d%d%d",&x,&y,&z);C、scanf("%d%d%d",x,y,z);D、read("%d%d%d",&x,&y,&z);11、若变量都已正确定义,a=2;b=3;printf(a>b?"* * *a=%d":"# # #b=%d",a ,b);则程序段( )(1分)A、没有正确的输出格式控制B、输出为:* * * a=2C、输出为:# # # b=2D、输出为:* * * a=2# # # b=212、设有如下的变量定义:int i=8,k,a,b;unsigned long w=5;double x=1.42,y=5.2;则以下符合C 语言语法的表达式是( )(1分)A、a=a-=(b=4)*(a=3)B、x%(--3);C、a=a*3=2D、y=float(i)13、假设所有变量均为整型,表达式(a=2,b=5,a>b? a++:b++,a+b)的值是( )(1分)A、7B、8C、9D、214、以下标识符中,不能作为合法的C用户定义标识符的是( )(1分)B、printC、WORDD、sizeof15、以下合法的赋值语句是( )(1分)A、x=y=100B、d--;C、x+y;D、c=int(a+b);16、在下列选项中,没有构成死循环的程序是( )(1分)A、int i=100;whine(1) {i=i%1001;if (i>100)break;}B、for (;;);C、int k=1000;do {k;}while(k>=1000);D、int s=36;while(s);--s;17、设a=1,b=2,c=3,d=4,则表达式:a<b?a:cA、4B、3C、2D、118、假定w、x、y、z、m均为int型变量,有如下程序段:w=1; x=2; y=3; z=4; m=(w<x)?w:x;< p="">m=(mA、4B、3C、2D、119、有定义语句:int a=4,b=5,c=6,x;,则以下选项中各程序段执行后,x的值不为6的是( )(1分)A、if (a<6) x=6; else if (a<5) x=5; else x=4;B、if (a<6) x=6; if (a<5) x=4; if (bD、if (c20、在宏定义#define PI 3.14159中,用宏名PI代替一个( )(1分)A、单精度数B、双数度数C、常量D、字符串二、填空题(12道小题,共40分)1、计算机中内存储器的最小存储单位是字节,一个整数占个字节(2分)--------------------------------------------------------------------------------2、一个算法应该具有以下特点:、确定性、有零个或多个输入、有一个或多个输出、有效性(2分)--------------------------------------------------------------------------------3、唯一的一个三目运算符是(2分)--------------------------------------------------------------------------------4、printf("%5.3f\n",123456.12345);输出为(2分)--------------------------------------------------------------------------------5、描述命题“A小于B或小于C”的表达式为(2分)--------------------------------------------------------------------------------6、int i=0,s=0,a[10];while (i<10)s+=a[i++];等价于int i,s,a[10];for()(2分)--------------------------------------------------------------------------------7、已知一数组:a[0]=10,a[1]=20,a[2]=30,a[3]=40,a[4]=50,s 是int型指针,s已指向a[4],现要使s指向a[2],则s=(2分)--------------------------------------------------------------------------------8、变量分为全局和局部两种,变量离开了其所定义的函数,其存储单元就会被释放。
C语言第四套
判断题第1题-1.0分#include”stdio.h"是每个程序中必须写的。
N第2题-1.0分在C程序中,语句之间必须要用分号";"分隔Y第3题-1.0分在一个C程序中,main函数必须出现在所有函数之前.N第4题- 1.0分若x为float型变量,则以下语句x=213.82631;printf("%-4.2f\n",x);的输出为213.82.N第5题- 1.0分一个变量可以同时被定义为多种类型.N第6题- 1.0分#define和printf都不是C语句,Y第7题-1.0分[3,6,18,23]是合法的表达式N第8题-1.0分表达式(j=3, j++)的值是4.N第9题-1.0分执行表达式(int)i后,的类型一定变为整型.N第10题-1.0分若a是实型变量,在执行了a= 5;后,a将变为整型变量.N第11题-1.0分若a和b类型相同,,在执行了赋值语句a= b;后b中的值将放入a中b中的值不变,Y第12题- 1.0分若a是实型变量C程序中允许以下赋值a= 10;因此实型变量中允许存放整型数据,N第13题- 1.0分int i=3,j=5; f(>j);j+ +; else i++;是正确的。
N第14题- 1.0分若有int i =10, j=0;则执行完语句if(j=0) i ++;elsei--;i的值为11. N第15题-1.0分if语句后面的控制表达式只能使用关系表达式或逻辑表达式,N第16题-1.0分int a=1,b=2,c=3;if(a>c)b=a;a=c;c= b;则c的值为2. Y第17题-1.0分若有int i=10, j=0;则执行完语句if(j=0)i+ +; else i--; i的值为11. N第18题-1.0分循环较套中,内外层循环控制变最可以使用相同名,不会造成混乱。
N第19题-1.0分for(i=0,k=-1;k=1;k+ +,i++ )printf("*\n");循环结束的条件不合法. N第20题-1.0分数组定义int a[10];占内存10个字节. N第21题- 1.0分数组说明int a[3,3]={1,2.3.4.5 .6}.是正确的. N第22题- 1.0分在调用函数时,实参把值传送给对应位置上的形参形参的值也能传给实参,N第23题-1.0分C语言中函数调用的方式只有函数做表达式一种. N第24题-1.0分在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量. Y第25题- 1.0分在C语言中,此定义和语句是合法的:enum aa { a=5,b,g}bb;bb=(enum aa)5; Y选择题第1题- 1.0分(共25题,共25.0分)求平方根函数的函数名为(D).(B)abs(C)pow(D)sqrt第2题- 1.0分(共25题,共25.0分)有以下定义和语句:struct student{ int age; int num; };struct student stu[3]={{1001,20};{1002,19},{1003,21}};void main(){ struct student *p;p=stu;则不正确的引用是( D) 。
c语言期末复习试题(附答案)
试卷编号:11201所属语言:C语言试卷方案:C语言期末考试试卷总分:100分共有题型:4种一、单项选择共30题(共计60分)第1题(2.0分)设有定义:intk=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是(A). A:k++B:k+=1C:++kD:k+1第2题(2.0分)已知inti=5,执行语句i+=++i后,i的值是(C).A:10B:11C:12D:A、B、C都不对第3题(2.0分)以下程序的功能是:给r输入数据后,计算半径为r的圆面积s.程序在编译时出错. #include<stdio.h>voidmain()/*Beginning*/{intr;floats;scanf("%d",&r);s=p*r*r;printf("s=%f\n",s);出错的原因是(D).A:注释语句书写位置错误B:存放圆半径的变量r不应该定义为整型C:输出语句中格式描述符非法D:计算圆面积的赋值语句中使用了非法变量第4题(2.0分)"\\\″ABC\″\\″的长度是(B).A:11B:7C:5D:3第5题(2.0分)已知intj,i=1;,执行语句j=–i++;后,j的值是(C).A:1B:2C:-1D:-2第6题(2.0分)有以下程序:#include<stdio.h>voidmain(){ints=0,a=1,n;scanf("%d",&n);do{s+=1;a=a–2;}while(a!=n);printf("%d\n",s);}若要使程序的输出值为2,则应该从键盘输入给n的值是(B). A:-1B:-3C:-5D:0第7题(2.0分)执行以下程序后,输出的结果是(D).#include<stdio.h>voidmain(){inty=10;do{y––;}while(––y);printf("%d\n",y––);}A:-1B:1C:8D:0第8题(2.0分)以下循环体的执行次数是(C).#include<stdio.h>voidmain(){inti,j;for(i=0,j=1;i<=j+1;i+=2,j––)printf("%d\n",i);}A:3B:2C:1D:0第9题(2.0分)有以下程序段:intk=0;while(k=1)k++;while循环执行的次数是(A).A:无限次B:有语法错误,不能执行C:1次也不执行D:执行1次第10题(2.0分)有以下程序#include<stdio.h>voidmain(){intm,n,p;scanf("m=%dn=%dp=%d",&m,&n,&p);printf("%d%d%d\n",m,n,p);}若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是(A). A:m=123n=456p=789B:m=123n=456p=789C:m=123,n=456,p=789D:123456789第11题(2.0分)设变量已正确定义,以下能正确计算f=n!的程序段是(D)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=1;for(i=n;i>=2;i––)f*=i;第12题(2.0分)在下列程序中,没有构成死循环的程序段是(B).A:inti=100;while(1){i=i%100+1;if(i>100)break;}B:intk=1000;do{++k;}while(k>=10000);C:for(;;);D:ints=36;while(s);--s;第13题(2.0分)有如下程序:#include<stdio.h>voidmain(){intn=9;while(n>6){n--;printf("%d",n);}}该程序段的输出结果是(B).A:987B:876C:8765D:9876第14题(2.0分)以下程序的输出结果是(D).#include<stdio.h>voidmain(){intx=10,y=10,i;for(i=0;x>8;y=++i)printf("%d%d",x––,y);}A:10192B:9876C:10990D:101091第15题(2.0分)有如下程序:#include<stdio.h>voidmain(){intn[5]={0,0,0},i,k=2;for(i=0;i<k;i++){printf("%d\n",n[k]);}}该程序的输出结果是(D).A:不确定的值B:2C:1D:0第16题(2.0分)下列程序执行后的输出结果是(A).#include<stdio.h>voidmain(){chararr[2][4];strcpy(arr,"you");strcpy(arr[1],"me"); arr[0][3]='&';printf("%s\n",arr);}A:you&meB:youC:meD:err第17题(2.0分)以下程序的输出结果是(C).#include<stdio.h>voidmain(){inti,x[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf("%d,",x[i][2–i]); }A:1,5,9,B:1,4,7,C:3,5,7,D:3,6,9,第18题(2.0分)以下数组定义中不正确的是(D).A:inta[2][3];B:intb[][3]={0,1,2,3};C:intc[100][100]={0};D:intd[3][]={{1,2},{1,2,3},{1,2,3,4}};第19题(2.0分)以下能正确定义数组并正确赋初值的语句是(D). A:intN=5,b[N][N];B:inta[1][2]={{1},{3}};C:intc[2][]={{1,2},{3,4}};D:intd[3][2]={{1,2},{3,4}};第20题(2.0分)有以下程序:inta=4;intf(intn){intt=0;staticinta=5;if(n%2){inta=6;t+=a++;}else{inta=7;t+=a++;}returnt+a++;}main(){ints=a,i=0;for(;i<2;i++)s+=f(i);printf("d\n",s);}程序运行后的输出结果是(B)A:24B:28C:32D:36第21题(2.0分)以下正确的函数定义形式为(A)A:doublefun(intx,inty)B:doublefun(intx;y)C:doublefun(intx;inty)D:doublefun(intx,y)第22题(2.0分)C语言规定,函数返回值的类型是由(D)A:return语句中的表达式类型所决定的B:调用该函数时的主调函数类型所决定的C:调用该函数时系统临时决定的D:在定义该函数时所指定的函数类型所决定的第23题(2.0分)有以下程序:输出结果是()(注:5353)voidswap1(intc0[],intc1[]){intt;t=c0[0];c0[0]=c1[0];c1[0]=t;}voidswap2(int*c0,int*c1){intt;t=*c0;*c0=*c1;*c1=t;}main(){inta[2]={3,5},b[2]={3,5};swap1(a,a+1);swap2(&b[0],&b[1]);printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]); }A:3553B:5335C:3535D:5353第24题(2.0分)以下程序的输出结果是(A).amovep(int*p,int(*a)[3],intn){inti,j;for(i=0;i<n;i++)for(j=0;j<n;j++){*p=a[i][j];p++;}}main(){int*p,a[3][3]={{1,3,5},{2,4,6}};p=(int*)malloc(100);amovep(p,a,3);printf("%d%d\n",p[2],p[5]);free(p);}A)56B)25C)34D)程序错误第25题(2.0分)有以下函数:fun(char*a,char*b){while((*a!='\0')&&(*b!='\0')&&(*a==*b)){a++;b++;}return(*a–*b);}该函数的功能是(D).A:计算a和b所指字符串的长度之差B:将b所指字符串复制到a所指字符串中C:将b所指字符串连接到a所指字符串后面D:比较a和b所指字符串的大小第26题(2.0分)有以下程序:fun(charp[][10]){intn=0,i;for(i=0;i<7;i++)if(p[i][0]=='T')n++;returnn;}main(){charstr[][10]={"Mon","Tue","Wed","Thu","Fri","Sat","Sun"}; printf("%d\n",fun(str));}程序执行后的输出结果是(B).A:1B:2C:3D:0第27题(2.0分)有以下程序:main(){charstr[][10]={"China","Beijing"},*p=str;printf("%s\n",p+10);}程序运行后的输出结果是(B).A:ChinaB:BeijingC:ngD:ing第28题(2.0分)有以下程序:#definef(x)(x*x)main(){inti1,i2;i1=f(8)/f(4)i2=f(4+4)/f(2+2)printf("%d,%d\n",i1,i2);}程序运行后的输出结果是(C).A:64,28B:4,4C:4,3D:64,64第29题(2.0分)有以下程序:结果是(A)voidchange(intk[]){k[0]=k[5];}main(){intx[10]={1,2,3,4,5,6,7,8,9,10},n=0;while(n<=4){change(&x[n]);n++;}for(n=0;n<5;n++)printf("%d",x[n]);printf("\n");}A)678910B)13579C)12345D)62345A:678910B:13579C:12345D:62345第30题(2.0分)在以下程序中,能够通过调用函数fun(),使main()函数中的指针变量p指向一个合法的整型单元的是(C). A:main()int*p;fun(p);…}intfun(int*p){ints;p=&s;}B:main(){int*p;fun(&p);…}intfun(int**p){ints;*p=&s;}C:#include<stdlib.h>main(){int*p;fun(&p);…}intfun(int**p){*p=(int*)malloc(2);}…D:#include<stdlib.h>main(){int*p;fun(p);…}intfun(int*p){p=(int*)malloc(sizeof(int));}二、程序填空共1题(共计10分)第1题(10.0分)/*------------------------------------------------------- 【程序填空】--------------------------------------------------------- 功能:计算平均成绩并统计90分以上人数。
C语言》课程期末考试第四套
C语⾔》课程期末考试第四套第四套期末考试题第⼀部分选择题单项选择题(本⼤题共20⼩题,每⼩题1分,共20分)在每⼩题列出地四个选项中只有⼀个选项是符合题⽬要求地,请将正确选项前地字母填在题后地括内1. 在计算机上可以直接运⾏地程序是_____________.A. ⾼级语⾔程序B.汇编语⾔程序C.机器语⾔程序D. C语⾔程序2. 不属于C语⾔地是__________.A. forB. gotoC. ifD. loop3. 正确地C语⾔⾃定义标识符是__________.A. num(10)B. file_bakC. continueD. class+24. 字符串”m\x43\\\np\102q”地长度是__________.A. 7B. 9C. 15D. 165. 设 int x=8, y, z; 执⾏y=z=x++; x=y==z后,变量x地值是__________.A. 0B. 1C. 8D. 96. 对于输⼊语句scanf(“%f,%f”, &a, &b); 要使变量a、b地值分别为1.78和2.48,则正确地输⼊是__________.A. 1.78, 2.48 后跟回车B. 1.78 2.48 后跟回车C. 1.782.48 后跟回车D. 1.78;2.48 后跟回车7. 设int a=8, b=7, c=6, x=1; 执⾏语句if(a>6) if(b>7) if(c>8) x=2; else x=3;后x地值是__________.A. 0B. 1C. 2D. 38. 执⾏下列程序段x=9;while(x>7) { printf(“*”); x--; }后输出地结果是__________.A. ****B. ***C. **D. *9. 定义⼀个具有10个元素地整数型数组,应当使⽤语句__________.A. int a[10];B. int a[2,5];C. int a[];D. int *a[10];10. 设char str1[10]=”ABCDE”, str2[10]=”xyz”;则执⾏语句printf(“%d”, strlen(strcpy(str1, str2)));后地输出结果是__________.A. 9B. 8C. 5D. 311. 设int x[]={1,3,5,7,9,11,13}, *p=x;则不能正确引⽤数组元素地表达式是__________.A. *(p--)B. *(--p)C. *(p++)D. *(++p)12. 设int x[]={1,2,3,4}, y, *p=&x[1];则执⾏语句 y=(*--p)++; 后变量y地值为__________.B. 2C. 3D.413. 函数调⽤时,下列说法中不正确地是__________.A. 若⽤值传递⽅式,则形式参数不予分配内存B. 实际参数和形式参数可以同名C. 主调函数和被调⽤函数可以不在同⼀个⽂件中D. 函数间传递数据可以使⽤全局变量14. 执⾏下列程序int fun(int x1, int x2){ int x; x1>x2 ? (x=3) : (x=4); return (x+x1); }main(){ printf(“%d\n”, fun(7,8)); }后输出地结果.A. 9B. 10C. 11D. 1215. 设typedef union {long x[2]; short y[4][5]; char z[10];} TYPE1;TYPE1 u1;则printf(“%d\n”, sizeof(u1)); 地输出是__________.A. 8B. 10C. 40D. 5816. 下列数据类型中不属于构造类型地是__________.A. 数组型B. 结构型C. 共⽤型D. 枚举型17. 存储整型数据-7856时,在⼆进制⽂件和⽂本⽂件中占⽤地字节数分别是__________.A. 2,2B. 2,5C. 5,518. 以只写⽅式打开⼀个⼆进制⽂件,应该选择地使⽤⽅式是__________.A. “a+”B. “w+”C. “rb”D. “wb”19. 计算平⽅数时不可能引起⼆义性地宏定义是A. #define SQR(x) x*xB. #define SQR(x) (x)*(x)C. #define SQR(x) (x*x)D. #define SQR(x) ((x)*(x))20. 执⾏下列程序#define M(a,b) (a)>(b) ? (a):(b)main(){ int i=10, j=15; printf(“%d\n”, 10*m(i,j)); }后输出地结果是__________.A. 10B. 15C. 100D. 150第⼆部分⾮选择题⼆、填空题(本⼤题共10⼩题,每⼩题2分,共20分)21. 以下分别是算术、位、关系和逻辑运算符+ & < !其优先级最低地是__________.22. 设int x=4; 表达式x+=x*=x+1地值是__________.23. 设int a, b=10;执⾏a=b<<2+1; 后a 地值是__________.24. 设short k=-1; 执⾏printf(“%o”,k); 输出为__________.25. 设int j,k; 执⾏for(j=k=0; j-11; k+=j++);后k 地值是__________.26. 函数调⽤时,若形、实参数均为数组,则其传递⽅式是__________.27. 在C 语⾔中,__________类型变量地所有成员以覆盖⽅式共享存储单元.28. 设FILE *fp; 关闭fp ⽂件地操作语句是__________.29. 设float *p, m=2.718; 根据下列图⽰,建⽴指针变量p 和变量m 之间地关系地赋值语句是__________.30. 设 int a[3][4], *p=a[1]; 该指针变量p 指向地元素是__________.三、程序分析题(本⼤题共5⼩题,每⼩题5分,共25分)阅读下列程序,将输出结果写到各题右侧地空⽩处31. int a=200;main(){ int i;for(i=1; i<=5; i++) {a++; printf(“%d,”, a); s();}}void s(){ static int a=20;a++; printf(“%d \n”, a);}32. #include “stdio.h”main(){ char c;c=getchar();if(c>=’a’ && c<=’w’ || c>=’A’ && c<=’W’) c=c+3;else if(c>=’x’ && c<=’z’ || c>=’X’ && c<=’Z’) c=c -23; printf(“%c \n”, c);}设从键盘上输⼊Next33. #define N 7main(){ int i, j, temp, a[N]={1, 2, 3, 4, 5, 6, 7};for(i=0; imj=N-1-i;temp=a[i]; a[i]=a[j]; a[j]=temp;}for(i=0; i}34. struct porb{ char *name; int count;} x[]={“Li ning”, 19, “Lang ping”, 21, “Zhu jian hua”, 20}; main(){ int i;for(i=0; i<3; i++)printf(“%s: %d \n”, x[i].name, x[i].count);}35. main(){ union {short a; char ch;} M;M.a=100; M.ch=’A’;printf(“%d,%d,%c \n”, sizeof(M), M.a, M.ch);}四、程序填充题(本⼤题共3⼩题,每⼩题6分,共18分)阅读下列程序,将横线处缺少地部分补上,使其能正确运⾏.36. 下⾯数pi()地功能是根据下列公式求π值(直到最后⼀上于10-6为⽌).(9)473523173523152313112++??+?++=π double pi(){ double s=0.0, t=1.0; int n;for(__________; t>=__________; n++) {s+=t; t=n*t/(2*n+1);}return(2.0*__________);}37. 将⼀字符串中地⼩写英⽂字母改成⼤写.main(){ int i=0; char str[80];scanf(“%s”, str);while(__________) {if(__________) str[i]-=’a’-‘A’;__________;}printf(“%s \n”, str);}38. 使⽤结构型计算复数x 和y 地和.main(){ struct comp {float re, im;};__________ x,y,z;scanf(“%f%f%f%f”, &x.re, &x.im, &y.re, &y.im);z.re=__________; z.im=__________;printf(“%6.2f, %6.2f\n”, z.re, z.im);}五、程序设计题(本⼤题共3⼩题,第39⼩题5分,第40、41⼩题各6分,共17分)39. 编写⼀程序,输出如下图形.* * * * ** * * * ** * * * ** * * * *40. 编写⼀程序,从键盘输⼊10个实数,计算输出算术平均值.41. 编写⼀个模拟简单计算器地程序,计算表达式:a1 op a2地值,要求a1、op、a2从键盘输⼊.其中a1、a2(作除数时不能为0)为数值,op为运算符+、-、*、/.版权申明本⽂部分内容,包括⽂字、图⽚、以及设计等在⽹上搜集整理.版权为个⼈所有This article includes some parts, including text, pictures, and design. Copyright is personal ownership.⽂档来源⽹络及个⼈整理,勿⽤作商业⽤途⽤户可将本⽂地内容或服务⽤于个⼈学习、研究或欣赏,以及其他⾮商业性或⾮盈利性⽤途,但同时应遵守著作权法及其他相关法律地规定,不得侵犯本⽹站及相关权利⼈地合法权利.除此以外,将本⽂任何内容或服务⽤于其他⽤途时,须征得本⼈及相关权利⼈地书⾯许可,并⽀付报酬.⽂档来源⽹络及个⼈整理,勿⽤作商业⽤途Users may use the contents or services of this article for personal study, research or appreciation, and othernon-commercial or non-profit purposes, but at the same time, they shall abide by the provisions of copyright law and other relevant laws, and shall not infringe upon the legitimate rights of this website and its relevant obligees. In addition, when any content or service of this article is used for other purposes, written permission and remuneration shall be obtained from the person concerned and the relevant obligee.⽂档来源⽹络及个⼈整理,勿⽤作商业⽤途转载或引⽤本⽂内容必须是以新闻性或资料性公共免费信息为使⽤⽬地地合理、善意引⽤,不得对本⽂内容原意进⾏曲解、修改,并⾃负版权等法律责任.⽂档来源⽹络及个⼈整理,勿⽤作商业⽤途Reproduction or quotation of the content of this article must be reasonable and good-faith citation for the use of news or informative public free information. It shall not misinterpret or modify the original intention of the content of this article, and shall bear legal liability such as copyright.⽂档来源⽹络及个⼈整理,勿⽤作商业⽤途本⽂部分内容,包括⽂字、图⽚、以及设计等在⽹上搜集整理.版权为个⼈所有This article includes some parts, including text, pictures, and design. Copyright is personal ownership.⽂档来源⽹络及个⼈整理,勿⽤作商业⽤途⽤户可将本⽂地内容或服务⽤于个⼈学习、研究或欣赏,以及其他⾮商业性或⾮盈利性⽤途,但同时应遵守著作权法及其他相关法律地规定,不得侵犯本⽹站及相关权利⼈地合法权利.除此以外,将本⽂任何内容或服务⽤于其他⽤途时,须征得本⼈及相关权利⼈地书⾯许可,并⽀付报酬.⽂档来源⽹络及个⼈整理,勿⽤作商业⽤途Users may use the contents or services of this article for personal study, research or appreciation, and othernon-commercial or non-profit purposes, but at the same time, they shall abide by the provisions of copyright law and other relevant laws, and shall not infringe upon the legitimate rights of this website and its relevant obligees. In addition, when any content or service of this article is used for other purposes, written permission and remuneration shall be obtained from the person concerned and the relevant obligee.⽂档来源⽹络及个⼈整理,勿⽤作商业⽤途转载或引⽤本⽂内容必须是以新闻性或资料性公共免费信息为使⽤⽬地地合理、善意引⽤,不得对本⽂内容原意进⾏曲解、修改,并⾃负版权等法律责任.⽂档来源⽹络及个⼈整理,勿⽤作商业⽤途Reproduction or quotation of the content of this article must be reasonable and good-faith citation for the use of news or informative public free information. It shall not misinterpret or modify the original intention of the content of this article, and shall bear legal liability such as copyright.⽂档来源⽹络及个⼈整理。
c语言第四版谭浩强著期末复习答案
c语言第四版谭浩强著期末复习答案选择题1.一个C程序的执行是从 a 。
A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序的main函数开始,到本程序文件的最后一个函数结束 D) 本程序文件的第一个函数开始,到本程序main函数结束 2.以下叙述正确的是 c 。
A) 在C程序中,main函数必须位于程序的最前面B) C程序的每行中只能写一条语句C) C语言本身没有输入输出语句D) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误 3.以下叙述不正确的是 d 。
A) 一个C源程序可由一个或多个函数组成B) 一个C源程序必须包含一个main函数C) C程序的基本组成单位是函数D) 在C程序中,注释说明只能位于一条语句的后面 4.C语言规定:在一个源程序中,main函数的位置 c 。
A) 必须在最开始 B) 必须在系统调用的库函数的后面 C) 可以任意 D) 必须在最后 5.一个C语言程序是由 b 。
A) 一个主程序和若干子程序组成 B) 函数组成C) 若干过程组成 D) 若干子程序组成 6.C语言中的语句需要 b 符号作为结尾。
A) : B) ; C) 。
D) //7. C 语言程序中可以对程序进行注释,注释部分用符号_c _括起来。
A)‘{‘ 和’}’ B)‘[‘和’]’ C)“/*”和”*/” D)“*/”和”/*” 8.C语言中注释的位置 c 。
A) 必须在程序的最开始 B) 必须在程序的结尾 C) 可以在程序的任何位置 D) 不可以写到main函数里面 9.C语言程序能够在不同的操作系统下面运行,这说明c语言具有很好的 c 。
A) 适应性 B)移植性 C)兼容性 D) 操作性110.C语言经过编译后生成的文件的后缀是 b 。
A).c B) .cpp C) .exe D) .obj 11.C语言编译程序的首要工作是 a 。
C语言期末考试试卷及答案4
C语言期末考试试卷及答案4一、单项选择题 (本大题共20小题,每小题1分,共20分)1. 构成一个可执行的C程序的是A. 一个主函数和若干个非主函数B. 若干个主函数和若干个非主函数C. 一个主函数和最多一个非主函数 C. 若干个主函数和最多一个非主函数2. 下面那一个是合法的C语言标识符: ()A. abcB. longC. 4thD. a-33. 用十进制数表示表达式“12|012”的运算结果是()A. 1B. 0C. 14D. 124. 以下哪一个不是C语言合法的运算符()A. *B. &C. @D. +5. 按照结构化程序设计的概念,C语言程序设计的基本单位是( )A. 过程B. 函数C. 子程序D. 语句6. 下面哪个表达式的值为4. ( )A. 11/3B. 11.0/3C. (float)11/3D. (int)(11.0/3+0.5)7.下面C代码的输出结果是()int answer,result;answer=100;result=answer-10;printf(“The result is %d”, result+5);A. The result is 90B. The result is 95C. The result is 10D. The result is 1008. 设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;}A. 2.B. 4C. 6D. 89.有如下程序,输出结果是()main(){float x=4.0,y;if(x<0.0)y=0.0;else if(x<8.0) y=1.0/x;else y=1.0;printf(“%f\n”,y);}A. 0.000000B.0.250000C. 0.500000D. 1.00000010.合法的数组定义是()A. int a[]={“String”};B. int a[5]={0,1,2,3,4,5}C. char a={“String”};D. char a[]={0,1,2,3,4,5}11.语句printf(“%d\n”,strlen(“ats\n\\g”));的输出结果是()A. 5B. 6C. 7 D 8所占的字节数为:s则; ”}Good morning“char s[20]={.设有定义:12.A. 20B. 12C. 13D. 21( )13. C语言规定,函数返回值的类型由什么决定调用该函数时的主调函数类型B A return语句中的表达式类型在定义该函数时所指定的函数类型调用该函数时的形参类型 D C 语言中函数的隐含存储类型是14.C 无存储类型A. auto B. static C. extern D.的值,不正确的是:x和y15.以下函数的功能是交换funa(int *x,int *y) B. funb(int x,int y)A.{ int *p; { int t;*x;*x=*y;*y=*p;} t=x;x=y;y=t;}=*pfunc(int *x,int *y) D. fund(int *x,int *y)C.*x-*y; x=x=*x+*y;*y=*x-*y; *{ int p; { *p=*x;*x=*y;*y=p; }}的值为()后,z16.设有以下宏定义,则执行语句z=2*(N+Y(5+1));#define N 3#define Y(n) ((N+1)*n)B. 42C. 48D. 54 出错A.) 17.以下程序的输出结果是( #define ADD(x) (x)+(x)main(){ int a=4,b=6,c=7,d=ADD(a+b)*c;,d); }d=%d”“ printf( A d=70 B d=140 C d=280 D d=807}}; 则printf(“%d\n”int 句 struct {int x; y;} , 定18.设有义语d[0].y/d[0].x*d[1].x);的输出是()A. 0B. 1C. 3D. 619. 设int b[20]; 则对b数组元素的错误引用是:A. b[5]B. *(b+1)C. b[20%2]D. b(5)20.若文件型指针fp已指向某文件的末尾,则函数feof(fp)返回值是()A. 0B. –1C. 非零值D. NULL二、填空题 (本大题共10小题,每小题2分,共20分)1.若自定义函数要求返回一个值,则应在该函数体中有一条_______________语句,若自定义函数要求不返回值,则应该在定义该函数时的返回类型是__________________.2. 当a=3,b=4,c=5时,写出下列各式的值。
c语言模拟题目第四套
第四套若有说明:int a[3][4];则数组a中各元素()。
A、不能得到确定的初值B、可在程序的编译阶段得到初值0C、可在程序的运行阶段得到初值0D、可在程序的编译或运行阶段得到初值0【参考答案】错误A【学生答案】[未答此题]已定义float a; int i;选择正确的输入语句( ).A、scanf("%6.2f%3d", &a,&i);B、scanf("%f%s", &a,&i);C、scanf("%6f%3d",&a,&i);D、scanf("%f%d", a,i);【参考答案】错误C【学生答案】[未答此题]执行下面程序段后,k的值是:( )int k=2;switch(k+1){case 3:k+=1;case 4:k--;break;case 5:k*=3;case 6:++k;}A、10B、2C、28D、27【参考答案】错误B【学生答案】[未答此题]执行下列语句后的输出为()。
int j=-1;if(j<=1) printf("****\n");else printf("%%%%\n");A、%%%%B、****C、有错,执行不正确D、%%%%c【参考答案】错误B【学生答案】[未答此题]以下程序段中,能够正确地执行循环的是( )。
A、int s=6; m:if(s<100) exit(0); else s-=2; goto m:B、int s=6; do s-=2; while(s);C、for(i=1;i>10;i++)D、static int a; while(a)【参考答案】错误B【学生答案】[未答此题]运行结果是" 11 12"的程序段是:请在A处填写正确内容( )。
for(i=1;i<=2;i++)___A___A、for(j=1;j<=2;j++)printf("%3d",10*i+j);break;B、{for(j=1;j<=2;j++)printf("%3d",10*i+j);break;}C、for(j=1;j<=2;j++)printf("%3d",10*i+j);continue;D、{for(j=1;j<=2;j++)printf("%3d",10*i+j);continue;}【参考答案】错误B【学生答案】[未答此题]对以下说明语句 int a[10]={6,7,8,9,10}; 的正确理解是()。
C语言期末考试复习题及答案完整可编辑版
C语言期末考试复习题及答案一、选择题:以下各题A〕、B〕、C〕、D〕四个选项中只有一个是正确的,请将正确的选项涂写在答案纸上。
答在试卷上不得分。
(1〕C语言规定:在一个源程序中,main函数的位置 D 。
A〕必须在最后B〕必须在系统调用的库函数的后面。
C〕必须在最开场。
D〕可以任意(2) C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符 A 。
A〕必须为字母或下划线。
B〕必须为下划线。
C〕必须为字母D〕可以是字母、数字和下划线中的任一种字符。
(3)下面四个选项中,均是正确的八进制数或十六进制数的选项是B 。
A〕-10 0x8f -011 B) 010 -0x11 0xf1C) 0abc -017 0xc D) 0a12 -0x123 -0xa(4) C语言中int型数据在内存中占两个字节,那么unsegned int取值范围是 A 。
A〕0 ~ 65535 B〕0 ~ 32767C〕-32767 ~ 32768 D〕-32768 ~ 327687(5) 假设有定义:int a = 7; floa x = 2.5 , y = 4.7 ;那么表达式 x + a % 3 * (int) (x + y) % 2/4 的值是D 。
A) 2.750000 B) 0.00000 C) 3.500000 D) 2.500000(6)ch是字符型变量,下面不正确的赋值语句是 B 。
A〕ch = 5 + 9 ; B) ch= ' a + b '; C) ch = ' \ 0 '; D) ch= '7' + '6' ;(7) 设x , y和z是int型变量,且x = 3, y = 4 , z = 5 那么下面表达式中值为0的是 A 。
A〕!((x < y )&&!z || 1) B) ' x ' && ' y ' C) x || y+z && y - z D)x <= y(8〕设有程序段int k = 10 ;while ( k = 0 ) k = k - 1 ;以下描述正确的选项是 A 。
在c语言期末考试题库及详解答案
在c语言期末考试题库及详解答案在C语言期末考试题库及详解答案C语言作为一门广泛应用的编程语言,其期末考试通常包括对基础语法、数据结构、算法设计、程序调试等方面的考察。
以下是一些典型的C语言期末考试题库题目及其详解答案,供同学们复习参考。
1. 题目:编写一个程序,实现两个整数的加法运算,并输出结果。
答案:```c#include <stdio.h>int main() {int a, b, sum;printf("请输入两个整数:");scanf("%d %d", &a, &b);sum = a + b;printf("两个整数的和是:%d\n", sum);return 0;}```2. 题目:使用循环结构实现1到100的累加,并输出结果。
答案:```c#include <stdio.h>int main() {int i, sum = 0;for (i = 1; i <= 100; i++) {sum += i;}printf("1到100的累加和是:%d\n", sum);return 0;}```3. 题目:编写一个程序,实现字符串的逆序输出。
答案:```c#include <stdio.h>#include <string.h>int main() {char str[100];printf("请输入一个字符串:");fgets(str, sizeof(str), stdin); // 使用fgets读取一行输入,包括空格int len = strlen(str) - 1; // 计算字符串长度,减去最后的换行符for (int i = len; i >= 0; i--) {printf("%c", str[i]);}printf("\n");return 0;}```4. 题目:使用函数实现求一个数的阶乘。
C语言第四套题
C语言第四套题一、选择题1、下列数据结构中,属于非线性结构的是()。
A) 循环队列B) 带链队列C) 二叉树D) 带链栈参考答案:C【解析】树是简单的非线性结构,所以二叉树作为树的一种也是一种非线性结构。
2、下列数据结构中,能够按照"先进后出"原则存取数据的是()。
A) 循环队列B) 栈C) 队列D) 二叉树参考答案:B【解析】栈是按先进后出的原则组织数据的。
队列是先进先出的原则组织数据3、对于循环队列,下列叙述中正确的是()。
A) 队头指针是固定不变的B) 队头指针一定大于队尾指针C) 队头指针一定小于队尾指针D) 队头指针可以大于队尾指针,也可以小于队尾指针参考答案:D【解析】循环队列的队头指针与队尾指针都不是固定的,随着入队与出队操作要进行变化。
因为是循环利用的队列结构所以对头指针有时可能大于队尾指针有时也可能小于队尾指针。
4、算法的空间复杂度是指()。
A) 算法在执行过程中所需要的计算机存储空间B) 算法所处理的数据量C) 算法程序中的语句或指令条数D) 算法在执行过程中所需要的临时工作单元数参考答案:A【解析】算法的空间复杂度是指算法在执行过程中所需要的内存空间。
所以选择A)。
5、软件设计中划分模块的一个准则是()。
A) 低内聚低耦合B) 高内聚低耦合C) 低内聚高耦合D) 高内聚高耦合参考答案:B【解析】一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。
6、下列选项中不属于结构化程序设计原则的是()。
A) 可封装B) 自顶向下C) 模块化D) 逐步求精参考答案:A【解析】结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A)。
7、软件详细设计生产的图如下:该图是()A) N-S图B) PAD图C) 程序流程图D) E-R图参考答案:C【解析】N-S图提出了用方框图来代替传统的程序流程图,所以A)不对。
C语言期末总复习习题第四套
一、单选(共90分)1. _________是构成C语言的基本单位。
A、函数B、子过程C、过程D、子函数标记此题2. 在C语言的环境中头文件的后缀名是;A、*.hB、C程序的源文件C、*.bakD、*.obj标记此题3. 在嵌套使用if语句时,C语言规定else总是________。
A、和之前与其具有相同缩进位置的if配对B、和之前的第一个if配对C、和之前与其最近的且不带else的if配对D、和之前与其最近的if配对标记此题4. 以下程序x=-1;do{x=x*x;}while(!x);循环体的执行次数是:()A、死循环B、执行零次C、执行两次D、执行一次标记此题5. C语言源程序名的后缀是A、exeB、cpC、objD、c标记此题6. 下列叙述中正确的是( )。
A、break语句只能用于switch语句B、在switch语句中,不一定使用break语句C、break语句必须与switch语句中的case配对使用D、在switch语句中必须使用default标记此题7. 阅读以下程序:#include <stdio.h>main(){int s;scanf("%d",&s);switch(s==!s){case 0:printf("The number is not 0");break;case 1:printf("The number is 0"); break;}}程序运行后,如果从键盘上输入?9,则输出结果是()。
A、The number is not 0B、0C、程序出错D、The number is 0标记此题8. 对下面三条语句(其中s1和s2为内嵌语句),正确的论断是()。
(1)if (a) s1;else s2;(2) if (a==0) s2;else s1;(3)if (a!=0) s1;else s2;A、三者相互等价B、(1)和(3)等价,但与(2)不等价C、三者互不等价D、(1)和(2)等价,但与(3)不等价标记此题9. 在以下给出的表达式中,与while(E)中的(E)不等价的表达式是( )A、(!E==0)B、(E==0)C、(E>0||E<0)D、(E!=0)标记此题10. 以下程序段所对应的数学关系表示式是:if(x<0) y=-1;elseif(x==0) y=0;else y=1;A、y=-1 (x<0)y=1 (x>0)y=1 (x=0)B、y=-1 (x<0)y=1 (x>0)y=0 (x=0)C、y=-1 (x<0)y=1 (x>0)y=0 (x≠0)D、y=-1 (x>0)y=1 (x<0)y=0 (x=0)标记此题11. 以下程序的输出结果是( )。
C语言试卷第4套 含答案
第四套一、判断题第1题:只有在使用时才为该类型变量分配内存的存储类说明是auto和static (错)第2题:在标准C语言中,枚举元素作为常量,它们是有确定的值的,它们的值按顺序从0开始依次增加且不可以改变。
参考答案:错第3题:在C语言中,合法的长整型常数是216D 。
参考答案:错第4题:在标准C中,语句必须以“;”结束。
参考答案:对第5题:定义char *string=”string?”是将字符串的值赋给指针变量string。
参考答案:错第6题:函数调用在main之后出现必须先定义后使用。
参考答案:对第7题:在C语言中,存储一个汉字的国标码所需要的字节数为2 。
参考答案:对第8题:在标准C语言中,共用体变量中的各成员可以分布在不同的存储空间中。
(错)第9题:在标准C中,所有关系运算符的优先级都相同。
参考答案:错第10题:C语言中的文本文件以ASCII码形式存储数据。
参考答案:对二、选择题(请选择正确的选项)第1题:当a=1,b=3,c=5,d=4时,执行下面语句后,x的值为if(a<b)if(c<d) x=1; elseif(a<c)if(b<d)x=2;else x=3;else x=6;else x=7; 参考答案:BA、1B、2C、3D、6第2题:若fp是指向某文件的指针,且已读到该文件的末尾,则C语言函数feof(fp)的返回值是参考答案:BA、EOFB、1C、非D、NULL第3题:下面程序段的运行结果是:int n=0; while(n++<=2); printf("%d",n) 参考答案:C A、2 B、3 C、4 D、有语法错第4题:C语言规定,函数返回值的类型是由参考答案:D A、return语句中的表达式类型所决定B、调用该函数时的主函数类型所决定C、调用该函数时系统临时决定D、在定义该函数时所指定的函数类型所决定第5题:下面程序的输出是#include "stdio.h"#include "string.h"main(){char s[ ]="Hangzhou China";printf("%d,%d\n",sizeof(s),strlen(s));} 参考答案:AA、15,14B、15,15C、14,14D、14,15第6题:循环for(i=1,j=6; ++i!=--j; ) s=i+j; 将执行参考答案:DA、2次B、3次C、4次D、以上均不是第7题:在函数间传递数据的四种方式中,不能把被调函数的数据带回到主调函数的是参考答案:A A、值传递B、地址传递C、返回值传递D、全局外部变量第8题:若x是整型变量,pb是整型指针变量,则正确的赋值表达式是参考答案:A A、pb=&x B、pb=x; C、*pb=&x; D、*pb=*x第9题:表示关系x≤y≤z的c语言表达式为参考答案:AA、(x<=y)&&(y<=z)B、(x<=y)and(y<=z)C、(x<=y<=z)D、(x<=y)&(y<=z)第10题:一个C语言程序是由参考答案:B A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成三、填空题(请把正确的选项填入试题前的空格中)第1题:2、下列程序利用函数求两个数的最大值,请在____处补上必要的代码:_____;main(){float a,b,c;scanf("%f,%f",&a,&b);c = max (a,b);printf("max = %f\n",c);}float max(float x, float y){float z;_____;return(z) ;}参考答案:float max(float,float)参考答案:z = x>y ? X : y第2题:读入一批正整数(以零或负数为结束标志),输出其中的素数。
C语言程序的设计课后复习题答案第四版谭浩强
第1章程序设计和C语言11.1什么是计算机程序11.2什么是计算机语言11.3C语言的发展及其特点31.4最简单的C语言程序51.4.1最简单的C语言程序举例61.4.2C语言程序的结构101.5运行C程序的步骤与方法121.6程序设计的任务141-5 #include <stdio.h>int main ( ){ printf ("**************************\n\n");printf(" Very Good!\n\n");printf ("**************************\n");return 0;}1-6#include <stdio.h>int main(){int a,b,c,max;printf("please input a,b,c:\n");scanf("%d,%d,%d",&a,&b,&c);max=a;if (max<b)max=b;if (max<c)max=c;printf("The largest number is %d\n",max); return 0;}第2章算法——程序的灵魂162.1什么是算法162.2简单的算法举例172.3算法的特性212.4怎样表示一个算法222.4.1用自然语言表示算法222.4.2用流程图表示算法222.4.3三种基本结构和改进的流程图262.4.4用N S流程图表示算法282.4.5用伪代码表示算法312.4.6用计算机语言表示算法322.5结构化程序设计方法34习题36第章最简单的C程序设计——顺序程序设计373.1顺序程序设计举例373.2数据的表现形式及其运算393.2.1常量和变量393.2.2数据类型423.2.3整型数据443.2.4字符型数据473.2.5浮点型数据493.2.6怎样确定常量的类型513.2.7运算符和表达式523.3C语句573.3.1C语句的作用和分类573.3.2最基本的语句——赋值语句593.4数据的输入输出653.4.1输入输出举例653.4.2有关数据输入输出的概念673.4.3用printf函数输出数据683.4.4用scanf函数输入数据753.4.5字符数据的输入输出78习题823-1 #include <stdio.h>#include <math.h>int main(){float p,r,n;r=0.1;n=10;p=pow(1+r,n);printf("p=%f\n",p);return 0;}3-2-1#include <stdio.h>#include <math.h>int main(){float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;p=1000;r5=0.0585;r3=0.054;r2=0.0468;r1=0.0414;r0=0.0072;p1=p*((1+r5)*5); // 一次存5年期p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后将本息再存3年期p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后将本息再存2年期p4=p*pow(1+r1,5); // 存1年期,到期后将本息存再存1年期,连续存5次p5=p*pow(1+r0/4,4*5); // 存活期存款。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C、x=8 D、x=12 标记此题 16. C语言中目标文件的后缀名是 : A、.c B、.exe C、.obj D、.h 标记此题 17. 设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; } A、1 B、6 C、4 D、2 标记此题 18. 如果x和y都是整数,而已正确定义。 )
。
D、**** 标记此题 37. 以下程序的输出结果为( )。 #include <stdio.h> main() { int i; for(i=1;i<=5;i++) { if(i%2) printf("*"); else continue; printf("#"); } printf("$\n"); } A、*#*#*#$ B、*#*#$ C、#*#*#*$ D、#*#*$ 标记此题 38. 若x,i,j和k都是int型变量,则执行下面表达式后x的值为 x=(i=4,j=16,k=32) A、4
D、以上说法都不对 标记此题 26. int a=5,b=0; printf(“%d,%d\n”, a&&b,a||b); 输出值为:( ) A、5,0 B、1,0 C、1,5 D、0,1 标记此题 27. 下述程序的输出结果是( )。 #include <stdio.h> main() { int k=0,m=0; int i,j; for(i=0;i<2;i++) { for(j=0;j<3;j++) k++; k-=j; } m=i+j; printf("k=%d,m=%d",k,m); } A、k=0,m=3 B、k=1,m=3
D、4 标记此题 29. 有以下程序 main() { int i=0,s=0; do{ if(i%2) { i++; continue; } i++; s+=i; } while(i<7); printf("%d\n",s); } 执行后输出结果是( )。 A、16 B、28 C、12 D、21 标记此题
一、单选(共90分) 1. _________是构成C语言的基本单位。 A、函数 B、子过程 C、过程 D、子函数 标记此题 2. 在C语言的环境中头文件的后缀名是; A、*.h B、C程序的源文件 C、*.bak D、*.obj 标记此题 3. 在嵌套使用if语句时,C语言规定else总是________。 A、和之前与其具有相同缩进位置的if配对 B、和之前的第一个if配对 C、和之前与其最近的且不带else的if配对 D、和之前与其最近的if配对 标记此题 4. 以下程序 x=-1; do{ x=x*x; }while(!x); 循环体的执行次数是:( ) A、死循环 B、执行零次 C、执行两次 D、执行一次 标记此题
#include <stdio.h> main() { int i,sum; for(i=1;i<6;i++) sum+=i; printf("%d\n",sum); } A、15 B、不确定 C、14 D、0 标记此题 24. 设以下变量均为int类型,则值不等于7的表达式是( )。 A、(x= y= 6, x+y,x+1) B、(x= 6,x+1,y= 6,x+y) C、(x= y= 6,x+y,y+1) D、(y=6,y+l,x = y,x+1) 标记此题 25. 已知 int t=0; while (t=1) {...} 则以下叙述正确的是 A、循环控制表达式的值为0 B、循环控制表达式不合法 C、循环控制表达式的值为1
B、8 C、7 D、9 标记此题 15. 有以下程序 #include <stdio.h> main() { int i,j,x=0; for(i=0;i<2;i++) { x++; for(j=0;j<=3;j++) { if(j%2) continue; x++; } x++; } printf("x=%d\n",x); } 程序执行后的输出结果是: A、x=4 B、x=6
for(x=0,y=0; !x&&y<=5;y++)语句执行循环的次数是( ) A、0 B、6 C、5 D、无数次 标记此题 19. 定义 char a=‘A’; printf(“%d”,a); A、65 B、A C、97 D、a 标记此题 20. 已知字母A的ASCII码为十进制65,且c2为字符型,则执行 c2=‘A’+‘6’-‘3’后,c2中的值为( )。 A、D B、不确定的值 C、68 D、C 标记此题 21. 若一个int型数据在内存中占2个字节,则unsigned int 型数据的取值 范围为( )。 A、0~255 B、0~65535 C、0~32767 D、0~2147483647 标记此题 22. 以下叙述中正确的是 A、用C语言实现的算法必须要有输入和输出操作 B、用C语言实现的算法可以没有输出但必须要有输入 C、用C语言实现的算法可以没有输入但必须要有输出 D、用C程序实现的算法可以既没有输入也没有输出 标记此题 23. 以下程序执行后sum的值是( )。
C、程序出错 D、The number is 0 标记此题 8. 对下面三条语句(其中s1和s2为内嵌语句),正确的论断是( )。 (1)if (a) s1;else s2; (2) if (a==0) s2;else s1; (3)if (a!=0) s1;else s2; A、三者相互等价 B、(1) 和 (3) 等价 , 但与 (2) 不等价 C、三者互不等价 D、(1) 和 (2) 等价 , 但与 (3) 不等价 标记此题 9. 在以下给出的表达式中,与while(E)中的(E)不等价的表达式是( ) A、(!E==0) B、(E==0) C、(E>0||E<0) D、(E!=0) 标记此题 10. 以下程序段所对应的数学关系表示式是: if(x<0) y=-1; else if(x==0) y=0; else y=1; A、y=-1 (x<0) y=1 (x>0) y=1 (x=0) B、y=-1 (x<0)
B、32 C、16 D、52 标记此题 39. 若有说明语句:char c='\72'则变量c是( )。 A、包含1个字符 B、包含3个字符 C、包含2个字符 D、说明不合法,c的值不确定 标记此题 40. 下面说法不正确的是: A、一个C源程序可由一个或多个函数组成 B、C程序的基本组成单位是函数 C、一个C源程序必须包含一个main函数 D、在C程序中,注释说明只能位于一条语句的后面 标记此题 41. 负数在计算机的存储形式: A、原码 B、 补码 C、反码 D、原码 、 反码 、 补码任意一种 标记此题 42. 结构化程序由三种基本结构组成,三种基本结构组成的算法 A、可以完成任何复杂的任务 B、只能完成符合结构化的任务 C、只能完成部分复杂的任务 D、只能完成一些简单的任务 标记此题 43. 执行下列程序段后,I值是( for(I=1,x=1;I<=20;I++) { break; if(x%2==1) x+=5; continue; x-=3; } )。 int I,x; if(x>=10) { }
C、k=0,m=5 D、k=1,m=5 标记此题 28. 有以下程序 #include <stdio.h> main() { int a=15,b=21,m=0; switch(a%3) { case 0:m++; break; case 1:m++; switch(b%2) { default:m++; case 0:m++;break; } } printf("%d\n",m); } 程序运行后的输出结果是( ) A、1 B、3 C、2
35. 若a为整型变量,则下面语句 a=-2L; printf(“%d\n”,a); A、赋值不合法 B、输出为不确定值 C、输出值为-2.0 D、输出值为-2 标记此题 36. 下面程序的执行结果是:() #include<stdio.h> void main() { int i=0; while(1) { printf("*"); i++; if(i<3) break; } printf("\n"); } A、* B、** C、***
else x=3; else x=6; else x=7; A、1 B、3 C、2 D、6 标记此题 13. 设变量x和y均已正确定义并赋值,以下if语句中,在编译时将产生错 误信息的是( ) A、if(x++); B、if(x>y) x--; else y++; C、if(x>y&&y!=0); D、if(y<0)x++;y++; else x++; 标记此题 14. 下列程序运行结果是: main() { int x=9,y=5,z=8; if(x<y) if(y<0) z=0; else z+=1; printf("%d\n",z); } A、6
5. C语言源程序名的后缀是 A、exe B、cp C、obj D、c 标记此题 6. 下列叙述中正确的是( )。 A、break语句只能用于switch语句 B、在switch语句中,不一定使用break语句 C、break语句必须与switch语句中的case配对使用 D、在switch语句中必须使用default 标记此题 7. 阅读以下程序: #include <stdio.h> main() { int s; scanf("%d",&s); switch(s==!s) { case 0:printf("The number is not 0");break; case 1:printf("The number is 0"); break; } } 程序运行后,如果从键盘上输入?9,则输出结果是( )。 A、The number is not 0 B、0