C语言第七套题
C语言答案谭浩强第7章
C语言答案谭浩强第7章<i>C语言答案谭浩强</i>77.1 100N-S 7.1#include math.hmain(){int i, j, n, a;for (i=1; i=100; i++)a[i]=i;for (i=2; i=sqrt(100); i++)for (j=i+1; j=100; j++)if (a[i]!=0 a[j]!=0)if (a[j]%a[i]==0)a[j]=0;printf(“\n”);for (i=2; i=100; i++){if (a[i]!=0){printf(“%5d”, a[i]);n++;<i>C语言答案谭浩强</i>}if (n%10==0)printf(“\n”);}}2 3 5 7 11 13 17 19 23 2931 37 42 43 47 53 59 61 67 7173 79 83 89 977.2 10 ( )10 a~a a a~a a a~a a~a a a a 10 a a~a a a~a a~a a a a 10 9 a a N-S 7.2main(){int i, j, min, temp, a;printf(“ : \n”);for (i=1; i i++){printf(“a[%d]=”, i);scanf(“%d”, a[i]); /* 10 */}printf(“\n”);for (i=1; i i++)printf(“%5d”, a[i]); /* 10 */printf(“\n”);for (i=1; i i++) /* 7 10 */<i>C语言答案谭浩强</i>{min=i;for (j=i+1; i j++)if (a[min]a[j]) min=j;temp=a[i]; a[i]=a[min]; a[min]=temp; /* a[i+1]~a a[i] */}printf(“ : \n”);for (i=1; i i++)printf(“%5d”, a[i]); /* 10 */}:a=6a=45a=56a=1a=15a=44a=78a=58a=1016 90 45 56 1 15 44 78 58 101 :1 6 15 44 45 56 58 78 90 101 7.3 3 3main(){int a, i, j, sum=0;printf(“ : \n”);for (i=0; i i++)for (j=0; j j++)scanf(“%d”, a[i][j]);for (i=0; i i++)sum+=a[i][i];pr intf(“sum=%5d”, sum);}:1 2 3 4 5 6 7 8 9sum= 157.4N-S 7.3<i>C语言答案谭浩强</i>{int a={1, 4, 6, 9, 13, 16, 19, 28, 40, 100}; int temp1, temp2, number, end, i, j;printf(“a : \n”);for (i=0; i i++)printf(“%5d”, a[i]);printf(“\n”);printf(“ : ”);scanf(“%d”, number);end=a;if (numberend)a=number;else{for (i=0; i i++)if (a[i]number){temp1=a[i]; a[i]=number;for (j=i+1; j j++){temp2=a[j]; a[j]=temp1; temp1=temp2; } }}printf(“ : \n”);for (i=0; i i++)printf(“%5d”, a[i]);}a :1 4 6 9 13 16 19 28 40 100<i>C语言答案谭浩强</i>:51 4 5 6 9 13 16 19 28 40 1007.5 , 8,6,5,4,1 1,4,5,6,8N-S 7.4#define N 5main(){int a[N], i, temp;printf(“ a : \n”);for (i=0; i i++)scanf(“%d”, a[i]);printf(“a :\n”);for (i=0; i i++)printf(“%5d”, a[i]);for (i=0; i i++){temp=a[i]; a[i]=a[N-i-1]; a[N-i-1]=temp; } printf(“ a : \n”);for (i=0; i i++)printf(“%5d”, a[i]);printf(“\n”);}a :8 6 5 4 1a :8 6 5 4 1a :1 4 5 6 87.6 ( 10 )11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1 ………………<i>C语言答案谭浩强</i> (a+b)113N-S 7.5 1 2 3 n:#define N 11main(){int i, j, a[N][N];for (i=1; i i++){a[i][i]=1;a[i]=1;}for (i=3; i i++)for (j=2; j j++)a[i][j]=a[i-1][j-1]+a[i-1][j]; for (i=1; i i++){for (j=1; j j++)printf(“%6d”, a[i][j]);printf(“\n”);}}11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 11 6 15 20 15 6 11 7 21 35 35 21 7 11 8 28 56 70 56 28 8 11 9 36 84 126 126 84 36 9 17.7<i>C语言答案谭浩强</i>8 1 63 5 74 9 21~n1 12 2 n1 13 1 n 14 n 1 15 nN-S 7.622main(){int a, i, j, k, p, m, n;p=1;while (p==1) /* 1~15 */ {printf(“ n(n=1~15, ): ”);s canf(“%d”,if (n!=0 n=15 n%2!=0)p=0;}for (i=1; i i++) /* */<i>C语言答案谭浩强</i> for (j=1; j i++)a[i][j]=0;j=n/2+1;a[j]=1;for (k=2; k=n*n; k++){i=i-1;j=j+1;if (i1 jn){i=i+2;j=j-1;}else{if (i1) i=n;if (jn) j=1;}if (a[i][j]==0)a[i][j]=k;else{i=i+2;j=j-1;a[i][j]=k;}}for (i=1; i i++) /* */{for (j=1; j i++)printf(“%4d”, a[i][j]);printf(“\n”);}n(n=1~15, ):517 24 1 8 1523 5 7 14 164 6 13 20 2210 12 19 21 311 18 25 2 97.8N-S 7.7<i>C语言答案谭浩强</i>#define N 10#define M 10main(){int i, j, k, m, n, flag1, flag2, a[N][M], max, maxi, manj; prin tf(“\n n: ”);scanf(“%d”,printf(“\n m: ”);scanf(“%d”,for (i=0; i i++){printf(“ %d ? \n”, i);for (j=0; j j++)scanf(“%d”, a[i][j]);}for (i=0; i i++){for (j=0; j j++)printf(“%5d”, a[i][j]);printf(“\n”);<i>C语言答案谭浩强</i>flag2=0;for (i=0; i i++){max=a[i]; maxj=0;for (j=1; j j++)if (a[i][j]max){max=a[i][j];maxj=j;}for (k=0,flag1=1; kn flag1; k++)if (max a[k][maxj]) flag1=0;if (flag1!=0){printf(“\n %d , %d %d .\n”, i, maxj, max); flag2=1;}}if (flag2==0)printf(“\n !\n”);}(1)n: 3m: 40 ?1 2 3 41 ?4 5 5 62 ?3 5 6 71 2 3 44 5 5 63 5 6 70 , 3 4 .(2)n:3m: 40 ?2 4 90 71 ?3 4 5 82 ?9 1 2 3<i>C语言答案谭浩强</i>2 4 90 73 4 5 89 1 2 3!7.9 159 a~a 1 3 5 7 9 11 13 15 17 3 3 a3 a a=9 a3 3 a a a a a a=5 a3 3 a a a a a a=3N-S 7.8#define N 15main(){int i, j, number, top, bott, mid, loca, a[N], flag=1, sign=1; char c;<i>C语言答案谭浩强</i>printf(“ , :\n”);scanf(“%d”, a);i=1;while (iN){scanf(“%d”, a[i]);if (a[i]a[i-1])i++;elseprintf(“ : ”);}printf(“\n”);printf(“ :\n”);for (i=0; i i++)printf(“%4d”, a[i]);printf(“\n”);flag=1;while (flag){printf(“ :”);scanf(“%d”, number);loca=0;top=0;bott=N-1;if (numbera || numbera[N-1]) loca=-1;while (sign==1 top=bott){mid=(top+bott)/2;if (number==a[mid]){loca=mid;printf(“ %d, %d\n”, number, loca+1); sign=0;}else if (numbera[mid])bott=mid-1;elsetop=mid+1;}if (sign==1 || loca=-1) printf(“ %d.\n”, number); printf(“ (Y/N)?”);scanf(“%c”,if (c== ‘n’ || c== ‘N’)flag=0;}}<i>C语言答案谭浩强</i> , :132:45681223344445565758681 3 4 5 6 8 12 23 34 44 45 56 57 58 68 :77.(Y/N)?y:1212, 7(Y/N)?n7.10 , 3 80N-S 7.9<i>C语言答案谭浩强</i>#include stdio.hmain(){int i, j, upp, low, dig, spa, oth;char text;upp=low=dig=spa=oth=0;for (i=0; i i++){printf(“\n %d : \n”, i+1);gets(text[i]);for (j=0; j80 text[i][j]!= ‘\0’; j++){if (text[i][j]= ‘A’ text[i][j]= ‘Z’)upp++;else if (text[i][j]= ‘a’ text[i][j]= ‘z’)low++;else if (text[i][j]= ‘0’ text[i][j]= ‘9’)dig++;else if (text[i][j]= ‘ ’)spa++;elseoth++;}}for (i=0; i i++) printf(“%s”, text[i]); printf(“ : %d”, upp); printf(“ : %d”, low); printf(“ : %d”, dig); prin tf(“ : %d”, spa); printf(“ : %d”, oth); }1 :I am a student.2 :*****3 :ASDFGI am a student.*****ASDFG: 6: 10: 6: 3:1。
C语言的疑难问题 及全概括
1程序通过定义学生结构体变量,存储了学生的学号,姓名和3门课的成绩。
函数fun的功能是将形参a所指结构体变量中的数据赋给函数中的结构体变量b,并修改b中的学号和姓名,最后输出修改后的数据。
列如:a所指变量中的学号,姓名,和三门课的成绩依次是:10001、”ZhangSan”、95、80、88则修改后输出中的数据应为:10002、”LiSi”、95、80、88请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:原程序存在考生文件夹下的BLANK1。
C中。
不得增行或删行,也不得更改程序的结构!第一个空:a第二个空:或&[0]第三个空:score[i]2给定程序的功能是把一个字符串的字符复制到另外一个字符串中。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!注意(考生文件夹:D:\SowerKS\CbtesExam\VC001)参考答案:第一个空:ps=ps+1第二个空:’0’第三个空: strcpy (pa,pb);3给定程序中,函数fun的功能是:找出100至x(x<=999)之间各位上的数字之和为15的所有整数,然后输出;符合条件的整数个数作为函数值返回。
例如,当n值为500时,各位数字之和为15的整数有:159、168、177、186、195、249、258、267、276、285、294、339、348、357、366、375、384、393、429、438、447、456、465、474、483、492。
共有26个。
参考答案:第一空:0第二空:x第三空:t++04给定函数countValue(int n),它的功能是:求n以内(不包括n)同时能被7与11整除的所有自然数的平方根之和s,s作为函数返回值。
主程序调用该函数输出n为1000时的函数值。
C语言第七章习题带答案
选择题1.已知:int *p, a;,则语句“p=&a;”中的运算符“&”的含义是( D )。
A.位与运算B.逻辑与运算C.取指针内容D.取变量地址2.已知:int a, x;,则正确的赋值语句是( C )。
A.a=(a[1]+a[2])/2; B.a*=*a+1; C.a=(x=1, x++, x+2); D.a="good"; 3.已知:int a, *p=&a;,则下列函数调用中错误的是( D )。
A.scanf("%d", &a); B.scanf("%d", p); C.printf("%d", a); D.scanf("%d", *p); 4.已知:char *p, *q;,选择正确的语句( C )。
A.p*=3; B.p/=q; C.p+=3; D.p+=q;5.已知:int x;,则下面的说明指针变量pb的语句( C )是正确的。
A.int pb=&x; B.int *pb=x; C.int *pb=&x; D.*pb=*x;一、选择题1.设有说明int (*ptr)[M];,其中的标识符ptr是( C )。
A.M个指向整型变量的指针B.指向M个整型变量的函数指针C.一个指向具有M列的二维数组的一行的指针D.具有M个指针元素的一维数组的指针2.已知:double *p[6];,它的含义是( C )。
A.p是指向double型变量的指针B.p是double型数组C.p是指针数组D.p是数组指针3.已知:char s[10], *p=s,则在下列语句中,错误的语句是( B )。
A.p=s+5; B.s=p+s; C.s[2]=p[4]; D.*p=s[0];4.已知:char s[100]; int i;,则在下列引用数组元素的语句中,错误的表示形式是( D )。
大学生C语言程序设计(第四版 谭洪强)实验7 答案
实验七 参考答案(参考答案)(1) (sy7-1.c )请编写函数fun ,它的功能是:计算并输出n (包括n )以内能被5 或9 整除的所有自然数的倒数之和。
例如,若主函数从键盘给n 输入20后,则输出为s=0.583333。
注意:n 的值要求不大于100。
算法分析:使用for 循环i ,遍历n 包含n 以内的所有整数,逐一判断每个i ,是否满足条件(能被5 或9 整除),如果满足,则把它的倒数累加到累加器里。
注意:i 的倒数要表示成:1.0/i;参考子函数如下:double fun(int n){double sum=0;int i;for(i=5;i<=n;i++)if(i%5==0||i%9==0)sum=sum+1.0/i;return sum;}(2) (sy7-2.c ) 请编写函数fun ,其功能是:根据以下公式计算s ,并计算结果作为函数值返回,n 通过形参传入。
n s ⋯++++⋯++++++=321132112111例如:若n 的值为11时,函数的值为1.83333算法分析:等式右边从第二项(i=2)开始,其分母等于前一项的分母加上i ;一共有n 项;求出每项的分母,然后把每项进行累加。
参考子函数如下:float fun(int n){float sum=1; //sum 中已经累加了第一项的值int i,m=1; //m 表示每项的分母;for(i=2;i<=n;i++){ m=m+i;sum=sum+1.0/m;}return sum;}(3) (sy7-3.c)请编写函数fun,其功能是:将两个两位数的正整数a、b 合并形成一个整数放在c 中。
合并的方式是:将 a 数的十位和个位依次放在c 数的十位和千位上,b 数的十位和个位数依次放在c 数的个位和百位上。
例如,当a=45,b=12,调用该函数后,c=5241。
算法分析:对一个两位数n,它的各位可以通过n%10求的,它的十位数可以通过n/10求的;所以分别用上述方法求的a和b的个位和十位,同时按照要求累加到c里。
(完整版)专升本C语言真题
05年C语言六、单项选择(10分,每题1分)1.下列变量定义正确的是________A. int 2ab; B。
float a〉b; C。
char $123 D. int *per;2.若有说明int a=1,x=2,y=3;下列不是C语言合法表达式的是A. ++9B. (float)(x) C。
a++ D. (float)x+y3.若有说明int i=1,j=2,k=3;表达式i&&j&&k的值为A。
1 B。
2 C。
3 D. 44.若有说明int a,b; 下面输入函数调用语句正确的是A。
scanf(“%d%d”,a,b); B. scanf(“%d%d”,&a,&b);C。
scanf(%d%d,a,b); D。
scanf(%d%d,&a,&b);5.下列不是关系表达式的是A。
3>5 B. 1<2〉3 C. !3〉5 D.1+2〉36。
下列对数组的定义正确的是A. int a(10);B. int a[10];C. int a{10};D.int a10;7。
下列对C程序结构的说法不正确的是A。
C程序是由一系列函数构成的 B.C程序可以有多个main()函数C.C程序中函数名不可以和变量名相同 D。
C程序中可以定义函数8.若有说明int *p,a[10],j=3;下列指针变量赋值错误的是A.p=&j;B.p=&a[j];C.p=a; D。
p=0x1000;9.若有说明int a=4;执行语句a>〉1后,变量a的值A.1B.2 C。
3 D。
410。
以只读的方式打开文本文件“test。
txt”的正确方法是A。
fopen(“test.txt",”r”); B. fopen(“test。
txt",”rb”);C。
fopen(“test”,"r”); D. fopen(“test.txt");七、填空题(10分,每题1分)a)若有说明a=-1;printf(“%d,%x,%o\n",a,a,a)的输出结果是______________。
二级C语言试题总结(八套)
第一套1.若变量已正确定义并赋值,对库函数错误调用的是A) k=scanf("%d%d",&i,&j);B) printf("\\%d\\\n",k);C) getchar(ch);D) putchar(ch);2.要求定义一个返回值为double类型的名为mysum的函数,其功能为求两个double类型数的和值,正确的定义是:A) mysum(double a,b){ return (a+b); }B) mysum(double a, double b){ return a+b; }C) double mysum(int a, intb);{return a+b; }D) double mysum(double a, double b){ retrun (a+b); }3.以下是对fun函数的正确调用:fun(a+b,fun(a+b,(a,b)));则fun函数有______个形参。
4.若有以下函数定义:myfun(double a, int n){…… }则myfun函数值的类型是A) void B) doubleC) int D) char5.若各选项中所用变量已正确定义,函数fun中通过return语句返回一个函数值。
以下选项中错误的程序是A) double fun( int a,int b ){…… }main(){ ┇fun( i,k );┇}B) main(){printf( "%f\n",fun( 2,10 ));┇}double fun( int a,int b ){ …… }C) double fun( int, int );main(){ ┇x=fun( i,k );┇}double fun( int a,int b ){ …… }D) main(){ double fun(int i,int y);┇x=fun( i,k );┇}double fun(int a,int b){ ……}6.若有以下函数:int fun(int x){ return (1+x*x); }则语句printf(" %d\n",fun(fun(fun(fun( 1 )))) );的输出结果____________第二套1.若有以下定义:floatx;inta,b,c=2;,则正确的switch语句是()A)switch(x){ case1.0∶printf("*\n");case2.0∶printf("**\n");}B)switch(int(x)){ case1∶printf("*\n");case2∶print f("**\n");}C)switch(a+b){ case1∶printf("*\n");case1+2∶printf("**\n");}D)switch(a+b){ case1∶printf("*\n");casec∶printf("**\n");}2.执行下面程序片段的结果是()int x=123;do{ printf("=\n",x--);}while(!x);A)打印出321 B)打印出123C)不打印任何内容 D)陷入死循环3.以下程序的输出结果是()# includemain(){ int i=0,a=0;while(i<20){ for(;;){ if((i)==0)break;else i--; }i+=11;a+=i;}printf("%d\n",a);}A)21 B)32 C)33 D)114.下列与表达式“b=(a<0?-1∶a>0?1∶0)”的功能等价选项是()A)b=0;if(a>=0)if(a>0) b=1;else b=-1;B)if(a>0)b=1;else if(a<0)b=-1;elseb=0C)if(a)if(a<0) b=-1;else if(a>0)b=1;else b=0;D) b=-1;if(a)if(a>0)b=1;else if(a==0)b=0;else b=-1;5.若有以下定义:char a; int b; float c; double d; 则表达式“a*b+d-c”值的类型为()A)float B)intC)char D)double6.以下叙述中正确的是()A)在函数中必须要有return语句B)在函数中可以有多个return语句,但只执行其中的一个C)return语句中必须要有一个表达式D)函数值并不总是通过return语句传回调用处7.有以下程序float fun(int x,int y){ return(x+y);}main(){int a=2,b=5,c=8;printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}程序运行后的输出结果是()A)编译出错 B)9C)21 D)9.08.若已定义:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,I;其中0≤i≤9,则对a数组元素不正确的引用是()A)a[p-a] B)*(&a[i])C)p[i] D)a[10]9.以下叙述中正确的是()A)全局变量的作用域一定比局部变量的作用域大B)静态(static)类型变量的生存期贯穿于整个程序的运行期间C)函数的形参都属于全局变量D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值10.若有如下程序:main(){char a[][9]={"china","Japan","USA","France"};printf("\′%s\′\n",a[2]);}则程序运行后的输出结果是()A)′Japan′B)′USA′C)USA D)′inaJapanUSAFrance′第三套1.若变量c为char类型,能正确判断出c为小写字母的表达式是()A)′a′<=c<=′z′B)(c>=′a′)||(c<=′z′)C)(′a′=C)D)(c>=′a′)&&(c<=′z′)2.下面程序的输出结果是()main(){ int x=2,y=0,z;x+=3+2;printf("%d",x);x*=y=z=4;printf("%d",x); }A)728 B)无法计算C)7,4 D)8,43.有如下程序main(){int x=1,a=0,b=0;switch(x){case 0∶b++;case 1∶a++;case 2∶a++;b++;}printf("a=%d,b=%d\n",a,b);}程序运行后的输出结果是()A)a=2,b=1 B)a=1,b=1C)a=1,b=0 D)a=2,b=24.以下选项中,正确的if-else语句是()A)if(x!=0)printf("%d",x)elseprintf("%d",-x);B)if(x!=0){x=x+y;printf("%d",x); }elseprintf("%d",-x);C)if(x!=0)x=x+y;printf("%d",x);elseprintf("%d",-x);D)if(x!=0){x=x+y;printf("%d",x)};elseprintf("%d",-x);5.有以下程序段int n=0,p;do {scanf("%d",&p);n++;}while(p!=12345 &&n<3);此处do-while循环的结束条件是()A)p的值不等于12345并且n的值小于3B)p的值等于12345并且n的值大于等于3C)p的值不等于12345或者n的值小于3D)p的值等于12345或者n的值大于等于36.若有如下程序段:main(){ int n=0;while(printf("*")){ n++;if(n<3)break; }}则下列描述正确的是()A)其中循环控制表达式与0等价B)其中循环控制表达式与’0’等价C)其中循环控制表达式是不合法的D)以上说法都不对7.C语言中main函数参数的非法表示形式是()A)main(char *argv[],int argc)B)main(int a,char**b)C)main(int y,char *x[])D)main(int argv,char *argc[])8.设有如下枚举类型定义:enum language {Basic=3,Assembly,Ada=100,COBOL,Fortran};枚举类型Fortran的值为()A)4 B)7C)102 D)1039.阅读下述程序段:y=-1;if (x!=0)if (x>0)y=1;elsey=0;该程序段所描述的数学关系是()A)y=-1(x<0)0(x=0)1(x>0)B)y=1(x<0)0(x=0)-1(x>0)C)y=0(x<0)-1(x=0)1(x>0)D)y=-1(x<0)1(x=0)0(x>0)10.设有数组定义:char array[]="China";蚴 閍rray所占的空间为()A)4个字节 B)5个字节C)6个字节D)7个字节第四套1.有以下程序:main(){intx=0xFFFF;printf("%d\n",x--);}执行后的输出结果是()A)32767 B)FFFEC)-1 D)-327682.以下程序的输出结果是()#include#includemain(){ char str[12]={′s′,′t′,′r′,′i′,′n′,′g′};printf("%d\n",strlen(str));}A)6 B)7C)11 D)123.若有以下定义:char s[20]="programming",*ps=s;则不能代表字符o的表达式是()A)ps+2 B)s[2]C)ps[2] D)ps+=2,*ps4.关于语句“for(表达式1;表达式2;表达式3)”,下面说法中错误的是()A)for语句中的三个表达式可以同时省略B)for语句可以用于循环次数不确定的情况C)for语句中表达式2只能是关系表达式或逻辑表达式D)for语句中表达式1和表达式3可以是逗号表达式5.执行下面程序片段的结果是()int x=23;do{ printf("-",x--);}while(!x);A)打印出321 B)打印出23C)不打印任何内容 D)陷入死循环6.与y=(x>0?1∶x<0?-1∶0);的功能相同的if语句是()A)if(x>0)y=1;else if(x<0)y=-1;else y=0;B)if(x)if(x>0) y=1;else if(x<0) y=-1;else y=0;C)y=-1;if(x)if(x>0)y=1;else if(x==0) y=0;else y=-1;D)y=0;if(x>=0)if(x>0) y=1;else y=-1;7.标准库函数fgets(s,n,f)的功能是()A)从文件f中读取长度为n的字符串存入指针s所指的内存B)从文件f中读取长度不超过n-1的字符串存入指针s所指的内存C)从文件f中读取n个字符串存入指针s所指的内存D)从文件f中读取长度为n-1的字符串存入指针s所指的内存8.若有如下函数调用语句:sub(a,1,fun(b,c),d+c,(a+d,c*f));则在该函数调用语句中含有实参的个数是()A)5 B)7C)10 D)69.若要定义a为3×4的二维数组,正确的定义语句是()A)float a(3,4); B)float a[3][4];C)float a(3)(4); D)float a[3,4];10.有以下程序main(){intaa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};int i,s=0;for (i=0;i<4;i++)s+=aa[i][1];printf("%d\n",s);}程序运行后的输出结果是()A)11 B)19C)13 D)20第五套1.以下程序的输出结果是()#includemain (){int a,b,d=241;a=d/100%9b=(-1)&&(+1);printf("%d,%d,a,d"); }A)6,1 B)2,1C)6,0 D)2,02.关于if后一对圆括号中的表达式,以下叙述中正确的是()A)只能用逻辑表达式B)只能用关系表达式C)既可用逻辑表达式也可用关系表达式D)可用任意表达式3.有以下程序main(){ int a,b;for(a=1,b=1;a<=100;a++){if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;}printf("%d\n",a);}程序运行后的输出结果是()A)7 B)8C)9 D)104.C语言中()A)不能使用do-while语句构成的循环B)do-while语句构成的循环必须用break语句才能退出C)do-while语句构成的循环,当while语句中的表达式值为非零时结束循环D)do-while语句构成的循环,当while语句中的表达式值为零时结束循环5.当a=1、b=3、c=5、d=4时,执行下面一段程序:if(a if(c elseif(a if(b elsex=3;elesx=6;elsex=7;程序执行后,x的值为()A)1 B)2C)3 D)66.设有如下的函数funct(x)float x;{ x*=x;printf("\n%d",x);return(x);}则函数的类型()A)与参数x的类型相同 B)voidC)int D)无法确定7.在C语言中,不适用于局部变量的存储类说明符是()A)auto B)registerC)static D)extern8.有以下程序intf(intn){if(n==1)return1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=1;i<5;i++)j+=f(i);printf("%d\n",j);}程序运行后的输出结果是()A)15 B)10C)6 D)39.有以下程序intb=2;int func(int*a){b+=*a;return(b);}main(){inta=2,res=2;res+=func(&a);printf("%d\n",res);}程序运行后的输出结果是()A)4 B)6C)8 D)10第六套1.下面叙述正确的是()A)define和auto都不能定义为用户标识符B)可以把define和auto定义为用户标识符C)可以把define定义为用户标识符,但auto是C语言的关键字D)可以把auto定义为用户标识符,但define是C语言的关键字2.以下的for循环()for(x=0,y=0;(y!=123)&&(x<4);x++)A)是无限循环 B)循环次数不定C)执行4次 D)执行3次3.下述对C语言字符数组的描述中错误的是()A)字符数组可以存放字符串B)字符数组中的字符串可以整体输入、输出C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值D)不可以用关系运算符对字符数组中的字符串进行比较4.设有定义:int a,*p=&a,**pp= &p;,则与a=100;等价的语句为()A)**p=100; B)**pp=100;C)&*p=100; D)*pp=10;5.有以下程序int x=3;do {printf("%d",x-=2);}while(!(--x));程序运行后的输出结果是()A)1 B)30C)1-2 D)死循环6.执行下面程序的正确结果是()main(){ float a=1.9;switch(a){ case 0∶printf("0000");case 1∶printf("1111");case 2∶printf("3333");}printf("%f",a);}A)1.900000 B)111133331.900000C)33331.900000 D)00001111233331.9000007.对下述程序,正确的判断是()main (){ int a, b;scanf("%d,%d",&a,&b);if(a>b)a=b;b=a;else a++;b++;printf("%d,%d",a,b);}A)有语法错误不能通过编译B)若输入4,5则输出5,6C)若输入5,4则输出4,5D)若输入5,4则输出5,58.若有如下程序:sub(int n){intt;if(n==1)returnt=5;else t=sub(n-1)+3;returnt;}main(){printf("%d\n",sub(5));}则程序运行后的输出结果是()A)17 B)18C)19 D)209.下面各被调用函数首部书写正确的是()A)void sub(float x;float y);B)void sub(float x,y)C)void sub(float x,float y)D)void sub(float x,float y);10.设有如下程序:#include"string.h"main(){static char s1[20],s2[20];scanf("%s",s1);scanf("%s",s2);if(strcmp(s1,s2))printf("@");elseprintf("$");printf("%d\n",strlen(strcat(s1,s2)));}如果从键盘上输入name<回车>name1<回车>,则程序运行后的输出结果是()A)$8 B)@10C)$9 D)@9第七套1.以下程序运行后,输出结果是()#includess(char *s){char *p=s;while(*p)p++;return(p-s);}main(){char*a="abded";inti;i=ss(a);printf("%d\n",i);}A)8 B)7C)6 D)52.若有如下程序:int sub(){static int n=1;int x=1;x*=n;n++;return x;}main(){int n,t=1;for(n=1;n<6;n++)t*=sub();printf("%d\n",t);}则程序运行后的输出结果是()A)15 B)120C)34560 D)-309763.在C语言中,函数的隐含存储类别是()A)static B)autoC)extern D)register4.有以下程序:intf1(doublea){returna*a; }intf2(doublex,doubley){doublea,b;a=f1(x);b=f1(y);returna+b;}main(){doublew;w=f2(1.1,2.0);…}变量w中的值是()A)5.21 B)5C)5.0 D)0.05.下面被调用函数sub的函数值的类型是()sub(float a){float b;b=a*a+1;return b;}A)单精度型B)双精度型C)空类型 D)整型6.若有以下定义语句:doublea[5];inti=0;能正确给a数组元素输入数据的语句是()A)scanf("%lf%lf%lf%lf%lf",a);B)for(i=0;i<=5;i++)scanf("%lf",a+i);C)while(i<5)scanf("%lf",&a[i++]);D)while(i<5)scanf("%lf",a+i);7.以下程序的输出结果是()main(){ charss[16]="test\0\n\"";printf("%d,%d\n",strlen(ss),sizeof(ss));}A)4,16 B)7,7C)16,16 D)4,78.以下说法正确的是()A)宏定义是C语句,所以要在行末加分号B)可以使用#undef命令来终止宏定义的作用域C)在进行宏定义时,宏定义不能层层置换D)对程序中用双引号括起来的字符串内的字符,与宏名相同的要进行置换9.以下程序的输出结果是()#includemain(){struct stru{int a,b;char c[6];};printf("%d\n",sizeof(stru));}A)2 B)4C)8 D)1010.若有如下定义:int s[3];则下面表达式中不能代表数组元素s[1]的地址的是()A)&s[1] B)&s[0]+1C)s+1 D)s++第八套1.若以下对fun函数的调用是正确的:x=fun(fun(a,b,c),(a+b,a+c),a+b+c);则fun函数的形参个数为()A)3 B)4C)5 D)62.若有说明:int*p, m=5; n;,以下正确的程序段是()A)p=&m;scanf("%d",&p)B)p=&n;scanf("%d",&p)C)scanf("%d",&p)p=&n;D)p=&n;p=&m;3.以下程序调用findmax函数返回数组中的最大值findmax(int*a,int n){ int*p,*s;for(p=a,s=a;p-a if()s=p;return(*s);}main(){ intx[5]={12,21,13,6,18};printf("%d\n",findmax(x,5));}在下划线处应填入的是()A)p>s B)*p>*sC)a[p]>a[s] D)p-a>p-s4.若指针p已正确定义,要使p指向两个连续的整型动态存储单元,则正确语句是()A)p=2*(int*)malloc(sizeof(int));B)p=(int*)calloc(2*sizeof(int));C)p=(int*)malloc(2* sizeof(int));D)p=2*(int*)calloc(sizeof(int));5.下列程序的输出结果是()main(){char *p1,*p2,str[50]="xyz";p1="abcd";p2="ABCD";strcpy(str+2,strcat(p1+2,p2+1));printf("%s",str);}A)xyabcAB B)abcABzC)Ababcz D)XycdBCD6.以下叙述中不正确的是()A)一个变量的作用域完全取决于变量定义语句的位置B)全局变量可以在函数以外的任何部位进行定义C)局部变量的“生存期”只限于本次函数调用,因此不可能将局部变量的运算结果保存至下一次调用D)一个变量说明为static存储类是为了限制其他编译单位的引用7.交换两个变量的值,不允许用临时变量,应该使用下列哪一个位运算符()A)~ B)&C)^ D)|8.fscanf函数的正确调用形式是()A)fscanf(fp,格式字符串,输出表列);B)fscanf(格式字符串,输出表列,fp);C)fscanf(格式字符串,文件指针,输出表列);D)fscanf(文件指针,格式字符串,输入表列);9.以下程序的运行结果是()# define MAX 10int a[MAX],i;main(){ printf("\n");sub1();sub3(a);sub2();sub3(a);}sub2(){ int a[MAX],i,max;max=5;for(i=0;i }sub1(){for(i=0;i }sub3(int a[]){ int i;for(i=0;i printf("\n");}A)0 2 4 6 8 10 12 14 16 180 1 2 3 4B)0 1 2 3 40 2 4 6 8 10 12 14 16 18C)0 1 2 3 4 5 6 7 8 90 1 2 3 4D)0 2 4 6 8 10 12 14 16 180 2 4 6 8 10 12 14 16 18第一套答案:1.C 2.D 3.2 4.C 5.B 6.677第二套答案:1.C 2.B 3.B 4.B 5.D 6.B 7.B 8.D 9.B 10.B 第三套答案: 1.D 2.A 3.A 4.B 5.D 6.B 7.A 8.C 9.C 10.C 第四套答案:1.C 2.A 3.A 4.C 5.B 6.A 7.B 8.A 9.B 10.B 第五套答案:1.B 2.D 3.B 4.D 5.B 6.C 7.D 8.B 9.B第六套答案:1.C 2.C 3.C 4.B 5.C 6.B 7.A 8.A 9.C 10.D 第七套答案:1.D 2.B 3.C 4.C 5.D 6.C 7.A 8.B 9.D 10.D 第八套答案:1.A 2.D 3.B 4.C 5.D 6.B 7.C 8.D 9.D。
c程序设计(谭浩强)第七章习题答案
int i;
float ave=0;
for(i=0;i<10;i++)
ave=ave+a[i][n]/10;
return ave;
}
void max(float a[][5]) //最高分的学生和课程
{
int i,j,row,colum;
float max=a[0][0];
for(i=0;i<10;i++)
# include <stdio.h>
# include<math.h>
# include<string.h>
/*int yue(int a,int b) //求最大公约数
{
int i,min;
min=a>b?b:a;
for(i=min;i>0;i--)
{
if(a%i==0&&b%i==0)
{
return i;
if((mid%2)!=1) //因职工号序号为奇数,故强制把序号转为奇数
mid-=1;
if(strcmp(b,a[mid])>0) //不能写b>a[mid]
{min=mid+2;}
else if(strcmp(b,a[mid])<0) //不能写b<a[mid]
{max=mid-2;}
else
{printf("职工姓名为:%s\n",a[mid-1]);break;}
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
printf("%-2d",b[i][j]);
c语言教材第七章习题答案
c语言教材第七章习题答案《C语言教材第七章习题答案》在学习C语言的过程中,掌握基本的语法和逻辑结构是非常重要的。
第七章的习题涉及到了一些较为复杂的概念和技巧,需要我们对C语言有更深入的理解和掌握。
1. 题目:编写一个程序,计算并输出1到100之间所有偶数的和。
答案:我们可以使用循环结构和条件判断来解决这个问题。
具体的代码如下: ```#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("1到100之间所有偶数的和为:%d\n", sum);return 0;}```这段代码使用了for循环来遍历1到100之间的所有数字,然后通过条件判断判断是否为偶数,如果是偶数则累加到sum中,最后输出sum的值。
2. 题目:编写一个程序,输出九九乘法表。
答案:九九乘法表是一个经典的练习题,通过嵌套循环可以很容易地实现。
具体的代码如下:```#include <stdio.h>int main() {for (int i = 1; i <= 9; i++) {for (int j = 1; j <= i; j++) {printf("%d*%d=%d\t", j, i, i*j);}printf("\n");}return 0;}```这段代码使用了两层嵌套的for循环,外层循环控制行数,内层循环控制列数,通过printf语句输出乘法表中的每一项。
通过解答以上两道习题,我们不仅复习了C语言中的循环结构和条件判断,还锻炼了我们的编程思维和逻辑能力。
希望大家在学习C语言的过程中能够多多练习,不断提升自己的编程水平。
青少年软件编程(C语言)等级考试试卷(七级)202206
青少年软件编程(C语言)等级考试试卷(七级)分数:100 题数:4一、编程题(共4题,共100分)1. 重建二叉树给定一棵二叉树的前序遍历和中序遍历的结果,求其后序遍历。
时间限制:1000内存限制:65536输入输入可能有多组,以EOF结束。
每组输入包含两个字符串,分别为树的前序遍历和中序遍历。
每个字符串中只包含大写字母且互不重复。
输出对于每组输入,用一行来输出它后序遍历结果。
样例输入样例输出试题编号:_7_01试题类型:编程题标准答案:试题难度:一般试题解析:#include<bits/stdc++.h>using namespace std;struct Node{char c;Node *lchild;Node *rchild;int loc;char str1[100],str2[100];Node *create(){tree[loc].lchild=tree[loc].rchild=NULL;return &tree[loc++];}Node *build(Node *root,int q1,int q2,int z1,int z2){root=create();char cr=str1[q1];root->c=cr;int idx=z1;for(;idx<=z2;idx++){if(str2[idx]==cr)break;}if(idx!=z1){root->lchild=build(root->lchild,q1+1,q1+(idx-z1),z1,idx-1);}if(idx!=z2){root->rchild=build(root->rchild,q1+(idx-z1)+1,q2,idx+1,z2);}return root;}void PostOrder(Node *root) {if(root->lchild!=NULL){PostOrder(root->lchild);}if(root->rchild!=NULL){PostOrder(root->rchild);}cout<<root->c;}int main() {while(cin>>str1){cin>>str2;loc=0;Node *root=NULL;int len1=strlen(str1);int len2=strlen(str2);root=build(root,0,len1-1,0,len2-1);PostOrder(root);cout<<endl;}}展示地址:点击浏览考生答案:(此题已作答)考生得分:25是否评分:已评分评价描述:2. 快速堆猪小明有很多猪,他喜欢玩叠猪游戏,就是将猪一头头叠起来。
电子学会C语言考级七级试题
C语言基础知识考试试题一、单项选择题1.!以下说法正确的是(D、)A、一个函数的函数体必要有执行部分,可没有变量定义B、一个函数的函数体必要有变量定义和执行部分,二者缺一可以C、以上都不对D、一个函数的函数体可没有变量定义和执行部分,函数可是空函数2.以下字符串是标识符的是(B、)(注:以字母或者下划线开头)A、9_studentB、_HJC、LINE1D、long3.以下说法正确的是(D、)A、在C语言程序中,要调用的函数必在main()函数中定义B、C语言程序总是从第一个定义的函数开始执行C、C语言程序中的main()函数必放在程序的开始部分D、C语言程序总是从main()函数开始执行4.以下说法正确的是(C、)A、main函数必放在C程序的最后B、main函数必放在C程序的开头C、main函数可放在C程序的中间部分,即在一些函数之前在另一些函数之后,但在执行C程序时是从main函数开始的D、main函数可放在C程序的中间部分,即在一些函数之前在另一个函数之后,但在执行C程序时是从程序开头执行的5.(A、)不是C语言提供的合法关键字()A、printB、switchC、defaultD、case6.在C语言中,每个语句和数据定义是用(D、)结束A、逗号B、句号C、括号D、分号7.以下说法正确的是(D、)A、C程序书写格式严格限制,一行内必写一个语句B、在执行C程序时不是从main函数开始的C、C程序书写格式严格限制,一行内必写一个语句,并且要有行号D、C程序书写格式自由,一个语句可分写在多行上8.如果有说明intx y不能够实现以下函数关系的程序段为()y=-1(x<0)y=0(x=0)y=1(x>0)A、y=-1elseif(x==0)y=0if(x!=0)elsey=1if(x>0)y=1elsey=0B、if(x<0)y=-1C、if(x>=0)if(x>=0)if(x>0)y=1{if(x>0)y=1}elsey=0elsey=-1elsey=-1D、y=09.C语言提供的合法关键字是(B、)A、printB、breakC、endD、funition10.如果要求在if后一对圆括号中表示a不等于0的关系则能正确表示这一关系的表达式是()A、!aB、a<>0C、aD、a=011.为了判断两个字符串s1和s2是否相等应当使用()A、if(s1=s2)B、if(s1==s2)C、if(strcmp(s1s2)==0)D、if(strcpy(s1s2))12.以下错误的描述为()A、在switch语句中使用break语句或者continue语句的作用相同B、break语句不能够用于循环语句和switch语句外的任何其他语句C、在循环语句中使用break语句是为了使流程跳出循环体提前结束循环D、在循环语句中使用continue语句是为了结束本次循环而不是终止整个循环13.(B、)是C程序的基本构成单位A、函数和过程C、子程序D、超文本过程14.C语言规定,必用(D、)作为主函数A、includeB、functionC、stdioD、main15.已知intj i=1执行语句“j=i++”后变量i的值为()A、2B、1C、-2D、–116.已知inti a执行语句“i=(a=2*3a*5)a+6”后变量i的值为()A、12B、6C、36D、3017.如果inti=10执行以下程序后变量i的正确结果为()switch(i){case0:i+=1case10:i+=1case11:i+=1default:i+=1}A、11B、10C、1318.C语言提供的合法关键字是(B、)A、procedureB、continueC、appendD、begin19.一个C程序可包含任意多个不同名的函数,但有且仅有一个(A、),一个C程序总是从(A、)开始执行。
大学生C语言期末考试试题汇总
大学生C语言期末考试试题汇总第1-3章习题一、单项挑选题1C语言属于()。
A.机器语言B.低级语言C.中级语言D.高级语言2一个C程序可以包含随意多个不同名的函数,但有且仅有一个。
A.函数B.主函数C.includeD.过程3系统默认的C语言源程序扩展名为.C,需经过之后,生成.exe文件,才干运行?A.编辑?编译B.编译?衔接C.编辑?改错D.编辑?衔接4C语言程序从开头执行。
A.程序中第一条可执行语句B.程序中第一个函数C.程序中的main函数D.包含文件中的第一个函数5C语言程序是由构成的。
A.一些可执行语言B.main函数C.函数D.包含文件中的第一个函数6一个算法应具有“确定性”等5个特性,则对另外4个特性描述错误的是。
A.有效性B.有穷性C.有零个或多个输入D.有零个或多个输出7设变量a是整型,f是实型,i双精度型,则表达式10+’a’+i*f 值的数据类型。
A.intB.floatC.doubleD.不确定8在C语言中,变量所分配的内存空间大小是由。
A.均为一个字节B.由用户自己定义C.由变量的类型打算D.是随意的9执行scanf (“a=%d,b=%d”,&a,&b)语句,若要使变量a和b的值分离为3和4,则正确的输入办法为。
A. 3 ,4B.a:3 b: 4C.a=3,b=4D. 3 410在算术表达式中允许使用的括号类型是。
A.{ }B.[ ]C.( )D.以上三项皆错11存储以下数据,占用存储字节最少的是。
A. 0B. ‘0’C. “0”D. 0.012设n=10,i=4,则运算n%=i+1执行后,n 的值是。
A.0B.3C.2D.113C语言中运算对象必需是整型的运算符是。
A.%B. /C. =D.〈=14已知int x=5,y=5,z=5;执行语句x%=y+z;后,x的值是.A .0 B. 1 C. 5 D. 615若有以下类型说明语句:char w;int x;float y;double z;则表达式w-x*y/z的结果为类型A.floatB.charC.intD.double16在C语言的库函数中,可以输出char型变量x值的语句是。
C语言基础练习100题(含答案)
C语言基础练习100题(含答案)雷柳青编排1、下面程序的输出是________#include<stdio.h>void main(){ int k=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}A) k=11,k=12,k=11 B) k=11,k=13,k=13 C) k=11,k=013,k=0xb D) k=11,k=13,k=b2、在下列选项中,不正确的赋值语句是________.A) ++t; B) n1=(n2=(n3=0));C) k=i=j; D) a=b+c=1;3、下面合法的C语言字符常量是__________.A) '\t' B) "A" C) 65 D) A4、字符(char)型数据在微机内存中的存储形式是____.A) 反码B) 补码C) EBCDIC码D) ASCII码5、设int a=12,则执行完语句a+=a-=a*a后,a的值是________A) 552 B) 264 C) 144 D) -2646、执行下面程序中的输出语句后,输出结果是______.#include<stdio.h>void main(){int a;printf("%d\n",(a=3*5,a*4,a+5));}A) 65 B) 20 C) 15 D) 107、下面程序的输出是__________.#include<stdio.h>void main(){int x=023;printf("%d\n",--x);}A) 17 B) 18 C) 23 D) 248、下面程序的输出是___________.#include<stdio.h>void main(){char ch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}A) 67,D B) B,C C) C,D D) 不确定的值9、以下程序的输出结果是________.#include<stdio.h>void main(){ int x=10,y=10;printf("%d %d\n",x--,--y);}A) 10 10 B) 9 9 C) 9 10 D) 10 910、若x和y都是int型变量,x=100,y=200,且有下面的程序片段:printf("%d",(x,y));上面程序片段的输出结果是_______.A) 200 B) 100C) 100 200 D) 输出格式符不够,输出不确定的值11、阅读下面的程序#include<stdio.h>void main(){int i,j;i=010;j=9;printf("%d,%d",i-j,i+j);}则程序的运行结果是________.A) 1,19 B) -1,19 C) 1,17 D) -1,1712、阅读下面的程序#include<stdio.h>void main(){int i,j,m,n;i=8;j=10;m=++i;n=j++;printf("%d,%d,%d,%d",i,j,m,n);}程序的运行结果是_________.A) 8,10,8,10 B) 9,11,8,10C) 9,11,9,10 D) 9,10,9,1113、若已定义int a,则表达式a=10,a+10,a++的值是___.A) 20 B) 10 C) 21 D) 1114、阅读下面的程序#include<stdio.h>void main(){int i,j;scanf("%3d%2d",&i,&j);printf("i=%d,j=%d\n",i,j);}如果从键盘上输入1234567<回车>,则程序的运行结果是________.A) i=123,j=4567 B) i=1234,j=567C) i=1,j=2 D) i=123,j=4515、下面程序的输出结果是________.#include<stdio.h>void main(){int a=-1, b=4, k;k=(++a<=0)&&(b--<=0);printf("%d,%d,%d\n",k,a,b);}A) 1,1,2 B) 1,0,3 C) 0,1,2 D) 0,0,316、下面程序的输出结果是_______.#include<stdio.h>void main(){int a=5,b=3;float x=3.14, y=6.5;printf("%d,%d\n",a+b!=a-b,x<=(y-=6.1));}A) 1,0 B) 0,1 C) 1,1 D) 0,017、若有以下定义和语句:int a=010, b=0x10, c=10;printf("%d,%d,%d\n",a,b,c);则输出结果是_________.A) 10,10,10 B) 8,16,10 C) 8,10,10 D) 8,8,1018、已知有double型变量x=2.5,y=4.7,整型变量a=7, 则表达式x+a%3*(int)(x+y)%2/4 的值是_________.A) 2.4 B) 2.5 C) 2.75 D) 019、设有以下语句:int x=10;x+=3+x%3,则x的值是._________A) 14 B) 15 C) 11 D) 12 20、若d为double型变量,则表达式d=1,d+5,d++的值是_______.A) 1 B) 6.0 C) 2.0 D) 1.021、若有定义int a=12,n=5,则表达式a%=(n%2)运算后,a的值__________.A) 0 B) 1 C) 12 D) 622、若有定义int x=3,y=2和float a=2.5,b=3.5,则表达式:(x+y)%2+(int)a/(int)b的值是____.A) 0 B) 2 C) 1.5 D) 123、在C语言中,以下叙述不正确的是________.A) 在C程序中,无论是整数还是实数,都能被准确无误的表示B) 在C程序中,变量名代表存储器中的一个位置C) 静态变量的生存期与整个程序的生存期相同D) C语言中变量必须先定义后引用24、设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是________.A) 10<a<15 B) a==11||a==12||a==13||a==14 C) a>10&&a<15 D) !(a<=10)&&!(a>=15)25、如果c为字符型变量,判断c是否为空格不能使用________.(假设已知空格ASCII码为32)A) if(c=='32') B) if(c==32)C) if(c=='\40') D) if(c==' ')26、执行下面程序时,若从键盘输入"2<CR>",则程序的运行结果是________.#include <stdio.h>void main( ){ int k; char cp;cp=getchar( );if (cp>='0' && cp<='9')k=cp-'0';else if (cp>='a' && cp<='f')k=cp-'a'+10;else k=cp-'A'+10;printf("%d\n",k);}A) 2 B) 4 C) 1 D) 1027、执行下面程序后,运行结果是________.#include <stdio.h>void main( ){ int x=41,y=1;if (x%3==0 && x%7==0){ y+=x;printf("y=%d\n",y);}else{y=x;printf("y=%d",y);}}A) y=41 B) y=43 C) y=42 D) y=128、运行下面程序时,从键盘输入"12,34,9<CR>",则输出结果是______.#include <stdio.h>void main( ){ int x,y,z;scanf("%d,%d,%d",&x,&y,&z);if (x<y)if (y<z)printf("%d\n",z);else printf("%d\n",y);else if (x<z)printf("%d\n",z);else printf("%d\n",x);}A) 34 B) 12 C) 9 D) 不确定的值29、运行下面程序时,从键盘输入字母H,则输出结果是________.#include <stdio.h>void main( ){ char ch;ch=getchar( );switch(ch){ case 'H':printf("Hello!\n");case 'G':printf("Good morning!\n");default:printf("Bye_Bye!\n");}}A) Hello! B) Hello!Good Morning!C) Hello! D) Hello!Good morning! Bye_Bye!Bye_Bye!30、执行下列程序段后的输出结果是_________.int x=1,y=1,z=1;x+=y+=z;printf("%d\n",x<y?y:x);A) 3 B) 2 C) 1 D) 431、设ch是char型变量,值为'A',则表达式ch=(ch>='A' && ch<='Z')?ch+32:ch的值是_____.A) Z B) a C) z D) A32、下面程序的输出结果是________.#include <stdio.h>void main( ){ int x=8,y=-7,z=9;if (x<y)if (y<0) z=0;else z-=1;printf("%d\n",z);}A) 8 B) 1 C) 9 D) 033、运行下面程序时,若从键盘输入"3,4 <CR>",则程序的输出结果是_______.#include <stdio.h>void main( ){ int a,b,s;scanf("%d,%d",&a,&b);s=a;if (s<b) s=b;s=s*s;printf("%d\n",s) ;}A) 14 B) 16 C) 18 D) 2034、下列程序的执行结果是_________.#include <stdio.h>void main( ){ int x=0,y=1,z=0;if (x=z=y)x=3;printf("%d,%d\n",x,z);}A) 3,0 B) 0,0 C) 0,1 D) 3,135、能够完成如下函数计算的程序段是______.┌-1 x<0y= ┤0 x=0└ 1 x>0A) y=1; B) if (x>=0)if(x!=0) if(x>0) y=1;if(x>0) y=1; else y=0;else y=0; else y=-1;C) y=0; D) y=-1;if (x>=0) if (x>0) y=1;if (x>0) y=1; else y=0;else y=-1;36、以下程序的执行结果是________.#include <stdio.h>void main( ){ int x=1,y=0;switch (x){case 1:switch (y){case 0:printf("first\n");break;case 1:printf("second\n");break;}case 2:printf("third\n");}}A) first B) firstsecond thirdC) first D) secondthird37、以下程序的执行结果是________.#include <stdio.h>void main( ){ int a,b,c,d,x;a=c=0;b=1;d=20;if (a) d=d-10;else if(!b)if (!c) x=15;else x=25;printf("d=%d\n",d);}A) d=20 B) d=10 C) d=15 D) 2538、下列程序执行后的输出结果是________.#include <stdio.h>void main( ){ int x,y=1,z;if ((z=y)<0) x=4;else if (y==0) x=5;else x=6;printf("%d,%d\n",x,y);}A) 4,1 B) 6,1 C) 5,0 D) 出错信息39、有如下程序#include <stdio.h>void main( ){ int x=1,a=0,b=0;switch(x){case 0: b++;case 1: a++;case 2: a++;b++;}printf("a=%d,b=%d\n",a,b);}该程序的输出结果是__________.A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=240、下面程序的输出结果是_________.#include <stdio.h>void main( ){ int a=-1,b=1,k;if ((++a<0) && (b--<=0))printf("%d %d\n",a,b);elseprintf("%d %d\n",b,a);}A) -1 1 B) 0 1 C) 1 0 D) 0 041、假定w、x、y、z、m均为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的值是_________.A) 4 B) 3 C) 2 D) 142、以下程序的输出结果是_________.main( ){ int a=100;if (a>100) printf("%d\n",a>100);else printf("%d\n",a<=100);}A) a<=100 B) 100 C) 0 D) 143、若执行下面的程序从键盘上输入9,则输出结果是.______________#include <stdio.h>void main( ){int n;scanf("%d",&n);if (n++<10) printf("%d\n",n);else printf("%d\n",n--);}A) 11 B) 10 C) 9 D) 844、以下程序段运行结果是________.int x=1,y=1,z=-1;x+=y+=z;printf("%d\n",x<y?y:x);A) 1 B) 2 C) 4 D) 不确定的值45、有以下程序#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 C) 4,3 D) 2,-146、运行下面程序时,若从键盘输入数据为"123",则输出结果是_______.#include "stdio.h"void main(){ int num,i,j,k,place;scanf("%d",&num);if (num>99)place=3;else if(num>9)place=2;elseplace=1;i=num/100;j=(num-i*100)/10;k=(num-i*100-j*10);switch (place){ case 3: printf("%d%d%d\n",k,j,i);break;case 2: printf("%d%d\n",k,j);break;case 1: printf("%d\n",k);}}A) 123 B) 1,2,3 C) 321 D) 3,2,147、执行下列程序后的输出结果是_______.#include <stdio.h>void main( ){ int k=4,a=3,b=2,c=1;printf("%d\n",k<a?k:c<b?c:a);}A) 4 B) 3 C) 2 D) 148、以下条件表达式中能完全等价于条件表达式if(x)中的x 的是____.A) (x==0) B) (x!=0) C) (x==1) D) (x!=1)49、若运行下面程序时,给变量a输入15,则输出结果是______.#include <stdio.h>void main( ){ int a,b;scanf("%d",&a);b=a>15?a+10:a-10;printf("%d\n",b) ;}A) 5 B) 25 C) 15 D) 1050、执行下面程序的输出结果是________.#include <stdio.h>void main( ){ int a=5,b=0,c=0;if (a=a+b) printf("****\n");else printf("####\n");}A) 有语法错误不能编译B) 能通过编译,但不能通过连接C) 输出****D) 输出####51、为了避免嵌套的if-else语句的二义性,C语言规定else总是与______组成配对关系.A) 缩排位置相同的ifB) 在其之前未配对的ifC) 在其之前尚未配对的最近的ifD) 同一行上的if52、以下程序段__________.x=-1;do{x=x*x;} while (!x);A)是死循环B)循环执行两次C)循环执行一次D)有语法错误53、对下面程序段描述正确的是_______.int x=0,s=0;while (!x!=0) s+=++x;printf("%d",s);A) 运行程序段后输出0B) 运行程序段后输出1C) 程序段中的控制表达式是非法的D) 程序段循环无数次54、下面程序段的输出结果是_______.x=3;do { y=x--;if (!y) {printf("*");continue;}printf("#");} while(x=2);A) ## B) ##* C) 死循环D)输出错误信息55、下面程序的运行结果是_______.#include<stdio.h>void main( ){ int a=1,b=10;do{ b-=a;a++;} while(b--<0);printf("%d,%d\n",a,b);}A) 3,11 B) 2,8 C) 1,-1 D) 4,956、下面程序段的运行结果是__________.int n=0;while (n++<=2)printf("%d",n);A) 012 B) 123 C) 234 D) 错误信息57、下面程序段的运行结果是________.int x=0,y=0;while (x<15) y++,x+=++y;printf("%d,%d",y,x);A) 20,7 B) 6,12 C) 20,8 D)8,2058、下面程序的运行结果是________.#include<stdio.h>void main(){ int s=0,i=1;while (s<=10){ s=s+i*i;i++;}printf("%d",--i);}A) 4 B) 3 C) 5 D) 659、下面程序段的运行结果是________.for(x=10;x>3;x--){ if(x%3) x--;--x; --x;printf("%d ",x);}A) 6 3 B) 7 4 C) 6 2 D) 7 3 60、下面程序的运行结果是________.#include<stdio.h>void main( ){ int a,b;a=-1;b=0;do {++a;++a;b+=a;} while(a<9);printf("%d\n",b);}A) 34 B) 24 C) 26 D) 2561、下面程序段的运行结果是___________.for(i=1;i<=5;)printf("%d",i);i++;A) 12345 B) 1234 C) 15 D) 无限循环62、下面程序的输出结果是__________.#include<stdio.h>void main( ){ int n=4;while (n--) printf("%d ",n--);}A) 2 0 B) 3 1 C) 3 2 1 D) 2 1 063、以下程序运行后的输出结果是________.#include<stdio.h>void main(){ int i=10,j=0;do{ j=j+1; i--;}while(i>2);printf("%d\n",j);}A) 50 B) 52 C) 51 D) 864、有如下程序#include<stdio.h>void main(){ int x=23;do{ printf("%d",x--);}while(!x);}该程序的执行结果是_______A) 321 B) 23C) 不输出任何内容D) 陷入死循环65、以下程序段的执行结果是_______.int i,j,m=0;for(i=1;i<=15;i+=4)for(j=3;j<=19;j+=4)m++;printf("%d\n",m);A) 12 B) 15 C) 20 D) 2566、下面程序的输出结果是___________.#include<stdio.h>void main( ){ int i;for(i=1;i<6;i++){ if (i%2!=0) {printf("#");continue;}printf("*");}printf("\n");}A) #*#*# B) ##### C) ***** D) *#*#*67、下面程序的输出结果是__________.#include<stdio.h>void main( ){ int x=10,y=10,i;for(i=0;x>8;y=++i)printf("%d %d ",x--,y);}A) 10 1 9 2 B) 9 8 7 6C) 10 9 9 0 D) 10 10 9 168、执行以下程序后,输出的结果是__________.#include<stdio.h>void main( ){ int y=10;do {y--;}while (--y);printf("%d\n",y--);}A) -1 B) 1C) 8D) 069、有如下程序#include<stdio.h>void main( ){ int n=9;while(n>6) {n--;printf("%d",n);}} 该程序段的输出结果是__________.A) 987 B) 876 C) 8765 D) 987670、有如下程序#include<stdio.h>void main( ){ int i,sum=0;for(i=1;i<=3;sum++) sum+=i;printf("%d\n",sum);}该程序的执行结果是___________.A) 6 B) 3 C) 死循环D) 071、以下循环体的执行次数是_______#include<stdio.h>void main( ){ int i,j;for(i=0,j=1; i<=j+1; i+=2, j--)printf("%d \n",i);}A) 3 B) 2 C) 1 D) 072、在执行以下程序时,如果从键盘上输入:ABCdef<回车>,则输出为________.#include <stdio.h>void main( ){ char ch;while ((ch=getchar( ))!='\n'){ if (ch>='A' && ch<='Z') ch=ch+32;else if (ch>='a' && ch<'z') ch=ch-32;printf("%c",ch);}printf("\n");}A) ABCdef B) abcDEF C) abc D) DEF73、下面程序的输出结果是__________.main( ){int i,k=0, a=0, b=0;for(i=1;i<=4;i++){k++;if (k%2==0) {a=a+k; continue;}b=b+k;a=a+k;}printf("k=%d a=%d b=%d\n",k,a,b);}A) k=5 a=10 b=4 B) k=3 a=6 b=4C) k=4 a=10 b=3 D) k=4 a=10 b=474、执行下面程序段后,k的值是_________.int i,j,k;for(i=0,j=10;i<j;i++,j--)k=i+j;A) 9 B) 11 C) 8 D) 1075、以下程序的功能是:从键盘上输入若干个学生的成绩, 统计并输出最高成绩和最低成绩,当输入负数时结束输入。
计算机C语言填空题库
第二十七套
1. 函数fun的功能是:计算f(x)=1+x-2/2!+3/3!-4/4!+……的前n项和。若x=2.5,n=15时,函数值为1.917914。
1 1.0 2 -1 3 t
第二十八套
1. 给定程序中,函数fun的功能是:计算N*N矩阵的主对角线元素和方向对角线元素之和,并作为函数值返回。注意:要求先累加主对角线元素中的值,然后累加反响对角线元素的值。
1 n/2 2 i 3 a[n-i-1]
第四套
(一) 给定程序中,函数fun的功能是:在带有头结点的单向链表中,查找数据域中值为ch的结点。找到后通过函数值返回该结点在链表中所处的顺序号:若不存在值为ch的结点,函数值返回0.
1 NULL 2 n 3 head,ch
第十二套
1. 给定程序中,函数fun的功能是:将自然数1—10以及它们的平方根写到名为myfile3.txt的文本文件中,然后再顺序读出显示在屏幕上。
1 fp 2 fclose(fp) 3 fname
第十三套
1. 给定程序中,函数fun的功能是:找出N×N矩阵中每列元素中的最大值,并按顺序一次存放于形参b所指的一维数组中。
第十五套
1. 程序填空
给定程序中,函数的功能是:把形参s所指字符串下标为奇数的字符右移到下一个奇数位置,最右边呗移出字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动(注:字符串的长度大于等于2)。例如,形参s所指的字符串为:abcdefgh,执行结果为:ahcbedg。
1 x[i]/N 2 j++ 3 i++
第十套
1程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。函数fun的功能是将形参a中的数据进行修改,把修改后的数据作为函数值返回主函数进行输出。
C语言程序设计第四版第七章答案-谭浩强
C语言程序设计第四版第七章答案-谭浩强第七章函数7.1写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。
maxyueshu(m,n)int m,n;{ int i=1,t;for(;i<=m&&i<=n;i++){if(m%i==0&&n%i==0)t=i;}return(t);}minbeishu(m,n)int m,n;{int j;if(m>=n) j=m;else j=n;for(;!(j%m==0&&j%n==0);j++);return j;}main()整数,输出是否是素数的消息。
psushu(m)int m;{int i=2,t;for(;i<=m;i++)if(m%i==0&&i<m) break;if(m-i==0) t=1;else t=0;return m;}main(){int a,s;printf("enter sushu is \n");scanf("%d",&a);s=psushu(a);if(s==1) printf("a is sushu\n");else printf("s is not sushu\n");}7.4写一个函数,使给定的一个二维数组(3×3)转置,即行列互换。
int zhuangzhi(b)int b[3][3];{int i,j,t;for(i=0;i<3;i++)for(j=0;j>=i&&j<3-i;j++){t=b[i][j];b[i][j]=b[j][i];b[j][i]=t;}}main(){int a[3][3];int i,j;for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++){for(j=0;j<3;j++)printf(" %d",a[i][j]);printf("\n");}zhuangzhi(a);for(i=0;i<3;i++){for(j=0;j<3;j++)printf(" %d",a[i][j]);printf("\n");}}7.5写一函数,使输入的一个字符串按反序存放,在主函数中输入输出字符串。
C语言题库判断题
计算机文化基础试题库第二部分判断题一、计算机基础知识部分1. CD-ROM EPROM是一种可读写的外存储器。
2.我国的第一台电子计算机于1958年试制成功。
3.第四代电子计算机主要采用大规模、超大规模集成电路元件制造成功。
4.微型计算机的更新与发展,主要基于微处理器的变革。
5.计数制中使用的数码个数被称为基数。
6. ALU是控制器的一个主要部件。
7.计算机中最小的数据单位是位。
8.在一个非零的无符号二进制整数后加两个零得到一个新数,该新数是原数的四分之一。
9. 20根地址线的寻址范围是512K。
10.将八进制数154转换成二进制数是1110110。
11.存储系统中的PROM是指可编程只读存储器。
12.目前在以下各种设备中,读取数据快慢的顺序是内存、硬驱、光驱和软驱。
13.微型计算机的运算器、控制器及内存储器的总称是主机14.指令和数据在计算机内部都是以区位码形式存储的。
15. UNIX是一种多用户单任务的操作系统。
16.同一张软盘上允许出现同名文件。
17.从磁盘根目录开始到文件所在目录的路径,称为相对路径。
18.微型计算机配置高速缓冲存储器是为了解决CPU和内存储器之间速度不匹配问题。
19.大小为3.5英寸的软盘,其一个角上设有写保护口。
当滑动保护片将其盖住时,软盘就被写保护了。
20.操作系统把刚输入的数据或程序存入RAM中,为防止信息丢失,用户在关机前,应先把信息保存到ROM中。
21.若一台微机感染了病毒,只要删除所有带毒文件,就能消除所有病毒。
22. BASIC语言是计算机唯一能直接识别、直接执行的计算机语言。
23.“Pentium II/350”和“Pentium III/450”中的“350”和“450”的含义是CPU的时钟频率。
24. ROM存储器在断电后,其中的数据需人工保存。
25.软盘驱动器属于CPU的一部分。
26.计算机软件由文档和程序组成。
27.汇编语言和机器语言都属于低级语言,之所以称为低级语言是因为用它们编写的程序可以被计算机直接识别执行。
全国计算机二级考试《C语言》真题与答案
全国计算机二级考试《C语言》真题与答案全国计算机二级考试《C语言》真题与答案通过真题的练习,我们可以了解计算机等级考试的题型,有针对性的复习。
以下是店铺搜索整理的一份全国计算机二级考试《C语言》真题与答案,供参考练习,预祝考生们考出自己理想的成绩!想了解更多相关信息请持续关注我们店铺!全国计算机二级考试《C语言》真题与答案篇11.下列叙述中正确的是。
A.程序执行的效率与数据的存储结构密切相关B.程序执行的效率只取决于程序的控制结构C.程序执行的效率只取决于所处理的数据量D.以上三种说法都不对正确答案:A2.下列与队列结构有关联的是A.函数的递归调用B.数组元素的引用C.多重循环的执行D.先到先服务的作业调度正确答案:D3.一个栈的初始状态为空。
现将元素1,2,3,A,B,C依次入栈,然后再依次出栈,则元素出栈的顺序是A.1,2,3,A,B,CB.C,B,A,1,2,3C.C,B,A,3,2,1D.1,2,3,C,B,A正确答案:C4.下面属于白盒测试方法的是______。
A.等价类划分法B.逻辑覆盖C.边界值分析法D.错误推测法正确答案:B5.下面对对象概念描述正确的是()。
A.对象间的通信靠消息传递B.对象是名字和方法的封装体C.任何对象必须有继承性D.对象的多态性是指一个对象有多个操作正确答案:A6.软件设计中模块划分应遵循的准则是()。
A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合正确答案:B7.下面描述中不属于数据库系统特点的是()。
A.数据共享B.数据完整性C.数据冗余度高D.数据独立性高正确答案:C8.数据库设计过程不包括()。
A.概念设计B.逻辑设计C.物理设计D.算法设计正确答案:D9.以下叙述正确的是()。
A.C语言函数可以嵌套调用,例如:fun(fun(x))B.C语言程序是由过程和函数组成的C.c语言函数不可以单独编译D.c语言中除了main函数,其他函数不可作为单独文件形式存在正确答案:A10.以下选项中合法的标识符是A)1_1B)1-1C)_11D)1_ _正确答案:C11.表达式3.6-5/2+1.2+5%2的值是()A.4.3B.4.8C.3.3D.3.8正确答案:D12.设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。
C语言考试复习专用三套题附答案(1)
《C语言程序设计》习题集习题一一、语言基础(共20分,每题2分)(二)说明语句char s=‘\t’,使s包含了几个字符?。
A)1 B)2 C)3 D)说明有错(三)设a=6,b=4,则表达式b*=a+3A)3 B)18 C)(四)若给定表达式(m)?a++:a--和等价。
A)m==0 B)m!=0 C)m=0 D)m=1(五)设有说明语句int a[10],则数组a包括了个数组元素。
A)1 B)9 C)10 D)20(六)以下函数test返回值类型为。
test(int x){ printf(“%f\n”,(float)x);}A)int B)float C)void D)不确定或错误二、阅读下列程序,写出运行结果(共18分,每题3分)[程序1]#include <stdio.h>void main( ){ int a=1,b=4,c=2; 运行结果: 1a=(a+b)/c;printf(“%d \n”,--a);}[程序2]void main ( ){ char c1=67; /*‘A’的ASCII码值为65 */if (‘A’ <=c1 && c1<=’Z’) 运行结果: 67,Dprintf(“%d,%c”,c1,c1+1);else printf(“%c”,c1); }[程序3]viod main ( ){ int a=0, n=5; 运行结果: 1,5,4,3,2,0for ( ; ; ){ a++; n--;printf(“%d,”,a);a=n;if (n==0) break;}printf(“%d”,a);}[程序4]main ( ){ int i, j; 运行结果: 1,2,4,8,16,32,64,128,256,512 static int a[10]={1,1,1,1,1,1,1,1,1,1};for (i=0;i<10;i++)for (j=0;j<i;j++)a[i]=a[i]+a[j];for (i=0;i<10;i++)printf(“%d,”,a[i]);}[程序5]int k=2;f (int m) 运行结果: 6,8{ m+=k;k+=m; 5,9printf(“%d,%d \n”,m,k++);}main ( ){ int i=4;for (i++);printf(“%d,%d \n”,i,k); }[程序6]void main ( ){ static int a[10],i; 运行结果: 1 3 5 7 9for (i=0;i<10;i++)a[i]=i+1;for (i=0;i<10;i=i+2)printf(“%d”,*(a+i));}三、阅读分析下列程序,在处填上适当的内容使程序(或函数)完整(共21分,每空3分)(一)以下程序输出所有大写字母和其对应的ASCII码值。
2022年江汉大学公共课《C语言》科目期末试卷A(有答案)
2022年江汉大学公共课《C语言》科目期末试卷A(有答案)一、填空题1、设x是一个整数(16bit),若要通过xly使x低8位置1,高8位不变,则y的八进制数是_______。
2、在C语言中,输入操作是由库函数________完成的,输出操作是由库函数________完成的。
3、一个C语言源程序由若干函数组成,其中至少应含有一个________4、在C语言中,用“\”开头的字符序列称为转义字符。
转义字符“\n”的功能是_______;转义字符“\r”的功能是_______。
5、表达式x=6应当读做_______6、以下程序段通过指针变量q,但不移动q,将如图所示连续动态存储单元的值,从第一个元素起依次输出到终端屏幕。
请填空。
(假设程序段中的所有变量均已正确说明。
)for(k=0;k<10;k++) printf("%d,",_______); printf("\n");7、函数swap(arr,n)可对arr数组从第1个元素到第n个元素分别进行两两元素交换。
在运行调用函数中的如下语句后,a[o]和a[1]的值分别为_______,原因是_______。
a[0]=1;a[1]=2;swap(a,2);8、假设变量a、b和c均为整型,以下语句借助中间变量t把a、b和c中的值进行交换,即把b中的值给a,把c中的值给b,把a中的值给c。
例如:交换前,a=10、b=20、c=30;交换后,a=20、b=30、c=10。
请填空。
_______;a=b;b=c;_______;9、为建立如图10-5所示的存储结构(即每个结点两个域,data是数据域,next是指向结点的指针域),请将定义补充完整。
struct s{char data;_______}node;10、在C语言中,二维数组元素在内存中的存放顺序是_______。
二、选择题11、对应以下各代数式中,若变量a和x均为double类型,则不正确的C语言表达式是( )12、若有定义语句:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是( )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言第七套题一、选择题1、下列叙述中正确的是()。
A) 循环队列是队列的一种链式存储结构B) 循环队列是队列的一种顺序存储结构C) 循环队列是非线性结构D) 循环队列是一种逻辑结构参考答案:B【解析】在实际应用中,队列的顺序存储结构一般采用循环队列的形式。
2、下列关于线性链表的叙述中,正确的是()。
A) 各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致B) 各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续C) 进行插入与删除时,不需要移动表中的元素D) 以上说法均不正确参考答案:C【解析】一般来说,在线性表的链式存储结构中,各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致。
线性链表中数据的插入和删除都不需要移动表中的元素,只需改变结点的指针域即可。
3、一棵二叉树共有25个结点,其中5个是叶子结点,则度为1的结点数为()A) 16 B) 10 C) 6 D) 4参考答案:A【解析】根据二叉树的性质3:在任意一棵二叉树中,度为0的叶子结点总是比度为2的结点多一个,所以本题中度为2的结点是5-1=4个,所以度为1的结点的个数是25-5-4=16个。
4、在下列模式中,能够给出数据库物理存储结构与物理存取方法的是()。
A) 外模式B) 内模式C) 概念模式D) 逻辑模式参考答案:B【解析】数据库系统的三级模式是概念模式、外模式和内模式。
概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户公共数据视图。
外模式也称子模式或用户模式,它是用户的数据视图,给出了每个用户的局部数据描述。
内模式又称物理模式,它给出了数据库物理存储结构与物理存取方法,所以选择B)。
5、在满足实体完整性约束的条件下()。
A) 一个关系中应该有一个或多个候选关键字B) 一个关系中只能有一个候选关键字C) 一个关系中必须有多关键字个候选D) 一个关系中可以没有候选关键字参考答案:A【解析】实体完整性约束要求关系的主键中属性值不能为空值,所以选择A)。
6、有三个关系R、S和T如下:则由关系R和S得到关系T的操作是( )。
A) 自然连接B) 交C) 除D) 并参考答案:C【解析】如果S=T/R,则S称为T除以R的商。
在除运算中S的域由T中那些不出现在R中的域所组成,对于S中的任一有序组,由它与关系R中每个有序组所构成的有序组均出现在关系T中。
所以本题选择C)。
7、下面描述中,不属于软件危机表现的是()。
A) 软件过程不规范B) 软件开发生产率低C) 软件质量难以控制D) 软件成本不断提高参考答案:A【解析】软件危机主要表现在:软件需求的增长得不到满足;软件开发成本和进度无法控制;软件质量难以保证;软件不可维护或维护程度非常低;软件的成本不断提高;软件开发生产率的提高赶不上硬件的发展和应用需求的增长。
所以选择A)。
8、下面不属于需求分析阶段任务的是()。
A) 确定软件系统的功能需求B) 确定软件系统的性能需求C) 需求规格说明书评审D) 制定软件集成测试计划参考答案:D【解析】需求分析阶段的工作有:需求获取;需求分析;编写需求规格说明书;需求评审,所以选择D)。
9、在黑盒测试方法中,设计测试用例的主要根据是()。
A) 程序内部逻辑B) 程序外部功能C) 程序数据结构D) 程序流程图参考答案:B【解析】黑盒测试是对软件已经实现的功能是否满足需求进行测试和验证,黑盒测试完全不考虑程序内部的逻辑结构和内部特性,只根据程序的需求和功能规格说明,检查程序的功能是否符合它的功能说明,所以本题选择B)。
10、在软件设计中不使用的工具是()。
A) 系统结构图B) PAD图C) 数据流图(DFD图) D) 程序流程图参考答案:C【解析】系统结构图是对软件系统结构的总体设计的图形显示。
在需求分析阶段,已经从系统开发的角度出发,把系统按功能逐次分割成层次结构,是在概要设计阶段用到的。
PAD图是在详细设计阶段用到的。
程序流程图是对程序流程的图形表示,在详细设计过程中用到。
数据流图是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型,是在可行性研究阶段用到的而非软件设计时用到,所以选择C)。
11、以下选项中关于程序模块化的叙述错误的是A) 可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序B) 把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块C) 把程序分成若干相对独立的模块,可便于编码和调试D) 可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序参考答案:A【解析】程序模块化思想中,可以采用自顶向下、逐步细化的方法。所以选项A中"自底向上"的说法是错误的。12、以下叙述中正确的是A) 用C语言编写的程序只能放在一个程序文件中B) C程序书写格式严格,要求一行内只能写一个语句C) C程序中的注释只能出现在程序的开始位置和语句的后面D) C程序书写格式自由,一个语句可以写在多行上参考答案:D【解析】C语言编写的程序可以放置于多个程序文件中,所以A错误。C程序中的一行可以有多条语句,所以B错误。C语言中的注释语句可以与原语句放在一行也可以不放在一行,所以C错误。13、以下不合法的数值常量是A) 8.0E0.5 B) 1e1 C) 011 D) 0xabcd参考答案:A【解析】A选项中E后面的指数必须为整型数据,所以A错误。C选项中011表示的是八进制常量,0xabcd表示的是十六进制常量。14、以下关于C语言数据类型使用的叙述中错误的是A) 若要处理如"人员信息"等含有不同类型的相关数据,应自定义结构体类型B) 若要保存带有多位小数的数据,可使用双精度类型C) 若只处理"真"和"假"两种逻辑值,应使用逻辑类型D) 整数类型表示的自然数是准确无误差的参考答案:C【解析】C语言中没有逻辑类型,所以C错误。若要保存带有多位小数的数据,可以用单精度类型也可以用双精度类型。处理包含不同类型的相关数据可以定义为结构体类型。整数类型可以无误差的表示自然数。15、设有定义:int k=0;以下选项的四个表达式中与其他三个表达式的值不相同的是A) ++k B) k+=1 C) k++ D) k+1参考答案:C【解析】++k,先使得k的值自增1后再使用,k++是先取得k的值再将k的值自增1,所以C选项中表达式的值为0,而其他三个表达式的值均为1,所以选择C。16、有如下程序段:int x=12;double y=3.141593;printf("%d%8.6f", x, y);其输出结果是A) 123.141593 B) 12 3.141593 C) 12, 3.141593 D) 123.1415930参考答案:A【解析】printf函数中格式字符"%8.6"的含义是:变量y的输出宽度为8(包括小数点),小数点后面保留6位小数,且右对齐。所以选择A。17、已知字符'A'的ASCII代码值是65,字符变量c1的值是'A',c2的值是'D'。
则执行语句printf("%d,%d", c1, c2-2 );的输出结果是A) 65,68 B) A,68 C) A,B D) 65,66参考答案:D【解析】打印时以%d整型格式打印输出,所以字符标量c1的值打印出来就是65,从c2-2的值打印出来就是68-2,即66。所以选择D。18、以下选项中,当x为大于1的奇数时,值为0的表达式是A) x%2==0 B) x/2 C) x%2!=0 D) x%2==1参考答案:A【解析】算术运算符的优先级高于关系运算符的优先级,所以当x为大于1的奇数时,A选项的值为假,即0。B选项的值为不定值,但绝对不是0。C选项的值为真,即1。D选项的值为真,即1。19、有以下程序#include <stdio.h>main(){ int x;scanf("%d", &x);if(x<=3) ; elseif(x!=10) printf("%d\n", x);}程序运行时,输入的值在哪个范围才会有输出结果A) 小于3的整数B) 不等于10的整数C) 大于3或等于10的整数D) 大于3且不等10的整数参考答案:D【解析】根据代码可知如果x的值小于3,执行空语句,不进行打印操作。如果x的值大于3,再判断x的值是否不等于10,如果不等于10就打印x的值,所以选择D选项。20、有以下程序#include <stdio.h>main(){ int a = 7;while ( a-- ) ;printf ("%d\n", a);}程序运行后的输出结果是A) 0 B) -1 C) 1 D) 7参考答案:B【解析】a- -的含义是先用后减1,所以当a的值为0时,跳出循环,但是仍要执行a-- ,a的值变为-1。
21、有以下程序#include <stdio.h>main(){char b,c;int i;b= 'a';c = 'A';for (i=0; i<6; i++){if (i%2) putchar(i+b);else putchar(i+c);}printf("\n");}程序运行后的输出结果是A) abcdef B) ABCDEF C) aBcDeF D) AbCdEf参考答案:D【解析】函数的含义是如果i的值能被2整除,以字符格式打印输出i+c的值,如果i的值不能被2整除打印i+b的值。第一次i值为0,执行else语句打印字符'A',第二次i值为1,打印1+b的值即字符'b',第三次i值为2,打印字符'C',依此类推选择D选项。22、有以下程序#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=8 C) x=6 D) x=12参考答案:B【解析】coutinue的作用是跳出循环体中剩余的语句而进行下一次循环。第一次执行外循环i 的值为0,执行x++,x的值变为1,第一次执行内层循环j的值为0,不满足if条件,执行x++,x的值变为2,第二次内循环j的值为1,if条件成立,跳出本次循环,第三次执行内循环j的值为2,不满足if条件,x的值变为3,第四次执行内循环j的值为3满足条件跳出本次内循环,x的值加1,即为4,第一次外循环结束。第二次执行外循环时,同理,i的值被加了,4次,变为8,所以选择B选项。23、若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是A) 函数的形参和实参分别占用不同的存储单元B) 形参只是形式上的存在,不占用具体存储单元C) 同名的实参和形参占同一存储单元D) 函数的实参和其对应的形参共占同一存储单元参考答案:A【解析】本题重点考察的是函数的形参和实参。