c程序测试题(答案)
- 格式:doc
- 大小:71.00 KB
- 文档页数:3
C语言测试题及答案C语言测试题及答案古今来许多世家,无非积德。
天地间第一人品,还是读书。
以下是店铺为大家搜索整理的C语言测试题及答案,希望能给大家带来帮助!C语言测试题及答案篇11.(A )是构成C语言程序的基本单位。
A、函数B、过程C、子程序D、子例程2.C语言程序从 C 开始执行。
A、程序中第一条可执行语句B、程序中第一个函数C、程序中的main函数D、包含文件中的第一个函数3、以下说法中正确的是( C )。
A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main( )函数中定义C、C语言程序总是从main( )函数开始执行D、C语言程序中的main( )函数必须放在程序的开始部分4.下列关于C语言的说法错误的是( B ) 。
A、 C程序的工作过程是编辑、编译、连接、运行B、 C语言不区分大小写。
C、 C程序的三种基本结构是顺序、选择、循环D、C程序从main函数开始执行5.下列正确的标识符是(C )。
A、-a1B、a[i]C、a2_iD、int t5~8题为相同类型题考点:标识符的命名规则只能由字母、数字、下划线构成数字不能作为标识符的开头关键字不能作为标识符选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是(B )。
A、3axB、xC、caseD、-e2 E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);7.下列四组选项中,正确的C语言标识符是( C )。
A、 %xB、a+bC、a123D、123选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是( A)。
A、print _3d db8 aBcB、Iam one_half start$it 3paiC、str_1 Cpp pow whileD、Pxq My->book line# His.age选项B中的“”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3)9.C语言中的简单数据类型包括(D )。
一、单选题1、链表不具有的特点是()。
A.不必事先估计存储空间B.插入、删除不需要移动元素C.可随机访问任一元素D.所需空间与线性表长度成正比正确答案:C2、链接存储的存储结构所占存储空间()。
A.分两部分,一部分存放结点值,另一部分存放结点所占单元数B.只有一部分,存放结点值C.分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针D.只有一部分,存储表示结点间关系的指针正确答案:C3、链表是一种采用()存储结构存储的线性表。
A.网状B.星式C.链式D.顺序正确答案:C4、有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b,则不能把结点b连接到结点a之后的语句是()。
struct node {char data;struct node *next;} a,b,*p=&a,*q=&b;A.(*p).next=q;B.p.next=&b;C.a.next=q;D.p->next=&b;正确答案:B5、下面程序执行后的输出结果是()。
#include <stdio.h>#include <stdlib.h>struct NODE {int num; struct NODE *next;};int main(){ struct NODE *p,*q,*r;p=(struct NODE*)malloc(sizeof(struct NODE));q=(struct NODE*)malloc(sizeof(struct NODE));r=(struct NODE*)malloc(sizeof(struct NODE));p->num=10; q->num=20; r->num=30;p->next=q;q->next=r;printf("%d",p->num+q->next->num);return 0;}A.30B.40C.10D.20正确答案:B6、下面程序执行后的输出结果是()。
(完整版)C语⾔程序设计练习题(含程序及参考答案)C语⾔练习题(所提供的源程序均采⽤⾃定义函数⽅式解决,如不采⽤函数⽅式,也可直接在main函数中借鉴该思想编程,因时间有限,所有程序未能⼀⼀验证,仅供参考使⽤)1、定义⼀个函数int fun(int a,int b,int c),它的功能是:若a,b,c能构成等边三⾓形函数返回3,若能构成等腰三⾓形函数返回2,若能构成⼀般三⾓形函数返回1,若不能构成三⾓形函数返回0。
#includeint fun(int a,int b,int c){if(a+b>c && b+c>a && a+c>b){if(a==b && b==c )return 3;else if(a==b||b==c||a==c)return 2;else return 1;}else return 0;}void main(){int a,b,c,shape;printf("\nInput a,b,c: ");scanf("%d%d%d",&a,&b,&c);printf("\na=%d, b=%d, c=%d\n",a,b,c);shape =fun(a,b,c);printf("\n\nThe shape : %d\n",shape);}2、编写⼀个程序,将两个变量的值交换, 例如变量a中的值原为 3,b中的值原为8,程序运⾏后 a 中的值为8,b中的值为3。
#includevoid fun(int *x,int *y){int t;t=*x;*x=*y;*y=t}void main(){int a=3,b=8;printf("%d %d\n",a,b);fun(&a,b);printf("%d %d\n",a,b);}3、从键盘输⼊3个数,将最⼤值放在变量a中,最⼩值放在变量c中。
参考答案习题二(P33)一.单选题1.C2.B3.D4.C5.A6.D7.D8.B9.B 10.D 11.D 12.C 13.C . 15. A 14题最后一句应为printf("%f\n",d*y);结果为2.2二.填空题1. 182. int float double3. 10 114. 八十六十5. %三.阅读程序题1.10,10,9,102.j=1,i=2k=3,i=3j=3,i=2k=1,i=1习题三(P52)一.单选题1.D2.C3.D4.B5.A6.B7.C8.A9.C 10.B 11. -1,37777777777,4294967295 二.填空题5. L6. -1三.阅读程序题1. 6 6 6.00 6.002. x=127,x= 127,x=177,x=7fY=123.4567 , y= 123.46 , y=123.456703. 2,14. 12345. 4,36. -6,-6四.程序设计题1.#include "stdio.h"#include "math.h"main(){float a,b,c,d,x1,x2;a=2;b=-3;c=-5;d=b*b-4*a*c;x1=(-b+sqrt(d))/(2*a);x2=(-b-sqrt(d))/(2*a);printf("x1=%.2f,x2=%.2f\n",x1,x2);}2.#include <stdio.h>main(){ float a,v,s;scanf("%f",&a);v=a*a*a;s=6*a*a;printf("v=%.2f,s=%.2f\n",v,s);}3.#include <stdio.h>main(){ int a,b,c,t;scanf("%d%d%d",&a,&b,&c);printf("a=%d,b=%d,c=%d\n",a,b,c);t=c;c=b;b=a;a=t;printf("a=%d,b=%d,c=%d\n",a,b,c);}4.#include <stdio.h>main(){ char s1,s2;s1=getchar();s2=s1-32;printf("%c\n",s2);}习题四(P70)一.单选题1.C2.D3.D4.B5.A6.D7.D8.B9.C 10.A 11.B 12.D 13.passwarnerror .14.C 15. C 16.B 17. B 18. C二.填空题1. 非0 02. k==03. n%7==0 && n%8==0 else三.阅读程序题1. a=1,b=02. c=1四.程序设计题1.#include <stdio.h>main(){ int a,b;char c;printf("INPUT A+(-*/)B\n");scanf("%d%c%d",&a,&c,&b);switch(c){case'+':printf("%d+%d=%d\n",a,b,a+b);break;case'-':printf("%d-%d=%d\n",a,b,a-b);break;case'*':printf("%d*%d=%d\n",a,b,a*b);break;case'/':printf("%d/%d=%d\n",a,b,a/b);break;default:printf("INPUT ERROR!");}}2.#include <stdio.h>main(){ float x,y;scanf("%f",&x);if(x==0||x==2)y=0;else if(x>0) y=(x+1)/(x-2);else y=(x-1)/(x-2);printf("y=%f\n",y);}3.#include <stdio.h>main(){ int g;printf("请输入学生成绩:");scanf("%d",&g);printf("g=%d:",g);switch(g/10){case 10:printf("A\n");break;case 9:printf("B\n");break;case 8:printf("C\n");break;case 7:printf("D\n");break;case 6:printf("E\n");break;default:printf("F\n");}}4.#include <stdio.h>main(){ int x,n=0;scanf("%d",&x);if(x<=0||x>=10000)printf("Data Error!\n");else{if(x<10)n=1;else if(x<100)n=2;else if(x<1000)n=3;else n=4;}printf("n=%d\n",n);}习题五(P87)一.单选题1.B2.D3.C4.C5.B6.C7.D8.C9.A 10.D 11.B 12.B 13.B 14.D 15. C 二.填空题1. for语句while语句do-while语句2. a=14,y=263. k=14,n= -14. 395. s=196. 222227. 108. 79. 810. 5,5三.改错题应改为for(i=0;i<5;i++)j++;应改为int j=0;while(j<10){j++;i=j;} 注while(j<10)后不应有分号应改为while(j<10); 注while(j<10)后分号不能少s*=i;i++;应改为{s*=i;i++;}continue 应改为break四.程序设计题1.#include <stdio.h>main(){ int i,j,s=0;for(i=1,j=1;i<=100;i++,j=j*(-1))s=s+i*j;printf("s=%d\n",s);}1.(另一做法)#include<stdio.h>main(){int i,s;for(i=1,s=0;i<=100;i++)if(i%2==0)s=s-i;else s=s+i;printf ("%d\n",s);}2.#include <stdio.h>main(){ int i,j,s1=0,s2=0;for(i=0;i<10;i++){scanf("%d",&j);if(j>0)s1=s1+j;else s2=s2+j;}printf("s1=%d,s2=%d\n",s1,s2);}3.#include<stdio.h>main(){int i,s;for(i=6,s=0;i<=96;i=i+1)if(i%10==6||i/10==6)s=s+i;printf ("%d\n",s);}4.#include<stdio.h>main(){int i,a,b,c;for(i=100;i<=999;i++){a=(i%10);b=(i/10%10);c=(i/100);if(i==a*a*a+b*b*b+c*c*c)printf ("%d\n",i);}}5.#include <stdio.h>main( ){int i,j,k=0;for (i=1;i<=4;i++){for (j=1;j<=i;j++){k++;printf("%d",k%10);}printf("\n");}}6.#include <stdio.h>main( ){int i,j,k=0;for (i=-3;i<=3;i++){if(i<0)k=-i;else k=i;for(j=1;j<=k;j++)printf(" ");for(j=1;j<=7-2*k;j++)printf("*");printf("\n");}}习题六(P111)一.单选题1.D2.B3.C4.C5.C6.D7.A8.B二.填空题1. 20 0 192. 数组名3. 越界4. 65. j==k a[j][k]=1; a[j][k]=0;三.阅读程序题1. 6 5 43 2 12.aaabbbccc ddd3.2,2,1四.程序设计题1.#include<stdio.h>main(){ int a[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; int i,j,s=0;for(i=0;i<4;i++)for(j=0;j<4;j++)if(i==j||i+j==3)s+=a[i][j];printf("%d",s);}2.#include <stdio.h>{ char a[80];int i,j=5; /*假设删除位置为5*/gets(a);for(i=j-1;a[i]!='\0';i++)a[i]=a[i+1];a[i]='\0';puts(a);}3.#include <stdio.h>#include <string.h>main(){ char a[80];int i,j=5; /*假设插入位置为5*/char s='t'; /*假设插入字符为t*/gets(a);for(i=strlen(a);i>j;i--)a[i+1]=a[i];a[j]='t';puts(a);}4.#include<stdio.h>main(){ int a[3][5]={1,3,5,7,9,2,4,6,8,10,3,5,8,7,6}; int i,j,s1[3]={0},s2[5]={0};for(i=0;i<3;i++)for(j=0;j<5;j++)s1[i]+=a[i][ j];for(i=0;i<5;i++)for(j=0;j<3;j++)s2[i]+=a[ j][i];for(i=0;i<3;i++){for(j=0;j<5;j++)printf("%6d",a[i][j]);printf (" |%6d\n",s1[i]);}for(i=0;i<33;i++) printf("-");printf("\n");for(i=0;i<5;i++) printf("%6d",s2[i]);printf("\n");}5.#include<stdio.h>{ char s[3][80];int a=0,b=0,c=0,d=0,e=0,i,j;for(i=0;i<3;i++) gets(s[i]);for(i=0;i<3;i++)for(j=0;s[i][j]!='\0';j++)if(s[i][j]>='A'&&s[i][j]<='Z')a++;else if(s[i][j]>='a'&&s[i][j]<='z')b++;else if(s[i][j]>='0'&&s[i][j]<='9')c++;else if(s[i][j]==32)d++;else e++;printf("%3d%3d%3d%3d%3d",a,b,c,d,e);}习题七(P145)一.单选题1.A2.B3.C4.A5.C6.D7.C8.B9.B 10.C 11.D 二.填空题1. 该函数内局部2. 整型3. k<=breturn y;4. x[i]return (ave);fun(a,20)5. 1;add(n-1);add(n);6. n*f(n-1)0;f(i)三.阅读程序,写出运行结果1.10,20,302.643.84. hlo5. sum=55四.程序设计题1.#include <stdio.h>main(){float add(float, float), sub(float, float);float aver(float, float),a,b;scanf("%f,%f",&a,&b);printf("add=%f, sub=%f\n ", add(a,b), sub(a,b)); printf("aver =%f", aver(a,b));}float add(float x, float y) {return(x+y);}float sub(float x, float y) {return(x-y);}float aver(float x, float y) {return((x+y)/2);} 2.#include<stdio.h>main(){ int a,b,c,abmax(int,int);scanf("%d%d%d",&a,&b,&c);printf("max=%d\n",abmax(abmax(a,b),c)); }int abmax(int a,int b){if(a>b)return a;else return b;}3.#include <stdio.h>main(){float x,fun(float, int);int n;scanf("%f%d",&x,&n);printf("%f\n", fun(x,n));}float fun(float x, int n){float y;if(n==0)y=1;else y=x*fun(x,n-1);return y;}4.#include <stdio.h>main(){long f(int);int n,k;scanf("%d",&n);for(k=1;k<=n;k++)printf("%ld,",f(k));printf("\n");}long f(int n){long y;if(n<=2)y=1;else y=f(n-1)+f(n-2); return y;}5.#include <stdio.h>#include <string.h> main(){char a[50];int n;void fun(char x[ ],int n); gets(a);n=strlen(a); fun(a,n);puts(a);}void fun(char a[ ],int n) {int k,s;for(k=0;k<n/2;k++) {s=a[k];a[k]=a[n-k-1];a[n-k-1]=s;}}5. (另一做法)#include <stdio.h>#include <string.h> main(){char a[50];int n;void fun(char x[ ],int n); gets(a);n=strlen(a); fun(a,n);puts(a);}void fun(char a[ ],int n) {int k;char b[50];for(k=0;k<n;k++)b[n-1-k]=a[k];b[k]=a[k];strcpy(a,b);}6.#include <stdio.h>#define KK 100main(){char a[KK];long sjz(char a[]);int i=0,f1=0;printf("input a data:");gets(a);for(i=0;a[i]!='\0';i++){if(a[i]>='0'&&a[i]<='9'||a[i]>='A'&&a[i]<='F'||a[i]>='a'&&a[i]<='f') continue;else {f1=1;break;}}a[i]='\0';if(f1==1)printf("Data Error!\n");else printf("result is :%d\n",sjz(a));}long sjz(char a[]){long n=0,i;;for(i=0;a[i]!='\0';i++){if(a[i]>='0'&&a[i]<='9')n=n*16+a[i]-'0';if(a[i]>='A'&&a[i]<='F')n=n*16+a[i]-'A'+10;if(a[i]>='a'&&a[i]<='f')n=n*16+a[i]-'a'+10;}return n;}6.(另一做法)#include <stdio.h>#define KK 100main(){char str[KK],c;long sjz(char a[]);int i=0,f1=0;printf("input a data:");while((c=getchar())!='\n'&&i<KK){if(c>='0'&&c<='9'||c>='A'&&c<='F'||c>='a'&&c<='f')str[i++]=c;else f1=1;}str[i]='\0';if(f1==1)printf("Data Error!\n");else printf("result is :%d\n",sjz(str));}long sjz(char a[]){long n=0,i;;for(i=0;a[i]!='\0';i++){if(a[i]>='0'&&a[i]<='9')n=n*16+a[i]-'0';if(a[i]>='A'&&a[i]<='F')n=n*16+a[i]-'A'+10;if(a[i]>='a'&&a[i]<='f')n=n*16+a[i]-'a'+10;}return n;}习题八(P181) (注:无答案的题不在本课程讲授范围内)一.单选题1.D2.A3.C4.D5.C6.B7.C8.C9.C 13.D 14.B 15.A 16.C 17.A 二.填空题1. 指向取地址2. 2 +23. 286. *(p+5)7. ABCD A三.阅读程序题1.102.103.04. 3,65. 1 2 3 4四.程序填空题1.a,b,c或者&x,&y,&z max=*b或者max=y max=*c或者max=z2. ++ =*q ++ ++4. int *a,int *b b[j]=a[i] b[i++]5. *str+=3 *str>’z’&&*str<’a’||*str>’z’ a6. else 0 t[2*j+1]五.程序设计题1.#include <stdio.h>main(){int a[10],*p,*q,t;p=a;for(q=a;q<a+10;q++)scanf("%d",q);for(q=a;q<a+10;q++)printf("%5d",*q);printf("\n");q--;for(;p<q;p++,q--){t=*p;*p=*q;*q=t;}for(p=a;p<a+10;p++)printf("%5d",*p);printf("\n");}2.#include <stdio.h>#include <string.h>void main( ){ char a[50],*p1,*p2,t,n;gets(a);n=strlen(a);p1=a; p2=a+n-1;for(; p1<p2; p1++, p2--){t=*p1; *p1=*p2; *p2=t;}puts(a);}另一做法#include <stdio.h>main(){char str[20],*p=str;gets(str);while(*p)p++;p--;while(p>=str){printf("%c",*p);p--;}printf("\n");}3.#include <stdio.h>main(){int a[10],*p,*max,*min,t;for(p=a;p<a+10;p++)scanf("%d",p); for(p=a;p<a+10;p++)printf("%5d",*p); printf("\n");max=min=a;for(p=a+1;p<a+10;p++){if(*p>*max)max=p;if(*p<*min)min=p;}t=a[0];a[0]=*min;*min=t;t=a[9];a[9]=*max;*max=t;for(p=a;p<a+10;p++)printf("%5d",*p); printf("\n");}5.#include <stdio.h>int length(char *s){int n=0;while(*s){n++;s++;}return n;}main(){char str[20];int n;gets(str);n=length(str);printf("The string length is %d\n",n);}6.#include <stdio.h>main(){char str[81],*p=str,*q,t;gets(str);printf("The origenal string:\n");puts(str);for(p=str;*(p+1);p++)for(q=p+1;*q;q++)if(*q<*p){t=*p;*p=*q;*q=t;}printf("The result string:\n");puts(str);}习题九(P222) (注:无答案的题不在本课程讲授范围内)一.单选题1.D2.A3.B4.D 8.B 9.B 10.C二.填空题1. 结构体成员结构体指针指向2. 343. 224.ex三.阅读程序题1.92.10,x3.134. 46 40 415. 06. 3839。
第四章判断题1-1continue 不是结束本次循环,而是终止整个循环的执行。
(1分)T F1-2do-while循环的while后的分号可以省略。
(1分)T F1-3do-while循环至少要执行一次循环语句。
(1分)T F1-4C语言的三种循环不可以互相嵌套。
(1分)T F1-5continue 只能用于循环体中。
(1分)T F在多层循环中, 一个break语句只向外跳一层。
(1分)T F1-7do - while语句的一般形式如下,其中的循环体语句至少执行一次。
(1分)T F1-8在嵌套循环(多层循环)中, 每一层循环都应该使用自己的循环变量,以免互相干扰。
(1分)T F1-9while循环的条件满足的时候循环继续,而do-while的条件满足的时候循环就结束了。
(1分)T F在循环中使用break语句或者continue语句,其作用是相同的。
(1分)T F选择题答案BCDCD CCCBC2-1The following piece of code prints out__. (2分)A. 2 3 1B.-1C. 1 2 0D.32-2A.15B.9C.6D.52-3A.15B.10C.9D.62-4The following code fragment prints out __. (2分)A.B.C.D.2-5A.15B.10C.9D.62-6A.8B.9C.10D.112-7若变量已正确定义,以下while循环正常结束时,累加到pi的最后一项item的值满足()。
(2分)A.item的绝对值小于0.0001B.item的绝对值大于0.0001C.item的绝对值大于等于0.0001D.item的绝对值小于等于0.00012-8设有程序段则下面描述中正确的是()。
(2分)A.B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次2-9下面的这个循环的循环次数是()。
(2分)A.语法错误,不能执行B.无限次C.10D.12-10对下列代码的描述:正确的是:(2分)A.程序有编译错误,不能执行B.循环条件永为真,循环无限次,程序根本停不下来,打印输出无限行C.循环有限次,程序正常结束,打印输出有限行D.程序运行过程必定会出错(崩溃),结果打印输出有限行。
第1章单元测试l、世界上第一代计算机被叫做:答案:电子管计算机2、第一次数学危机源自对哪个问题的讨论答案:有些量无法用整数表达3、第二次数学危机源自对哪个问题的讨论?答案:微积分中的无穷小4、第三次数学危机源自对哪个问题的讨论?答案:集合定义的完备性5、图灵机模型的提出者是?答案:图灵6、十进制123对应的二进制表示是?答案:正确7、如下哪个是电子管的特点?答案:容易损坏,寿命短8、如下哪个是晶体管的特点?答案:主要原料是硅9、如下哪个是集成电路的特点?答案:体积小10、如下哪个是当前量子计算机的特点?答案:能进行并行运算11、导致CPU不能造得更大的主要原因是?答案:散热原因12、如下哪个部分不是冯诺伊曼计算机的组成部分?答案:读写头13、如下那种存储器的处理速度更快?答案:寄存器14、下列哪个关于CPU旨令集的说法是错误的?答案:指令集包含的指令数目越多,CPUi运算速度越快15、下列哪个关于程序执行的说法是错误的?答案:用高级语言编写的程序,不经过编译也能够运行第2章单元测试l、答题说明:请大冢到指定答题地址答题,提交代码并通过测试后,会得到通过码的下载地址,将文件下载下来用记事本打开即得到通过码,将通过码对应的选项选出即可。
题目1实现冒泡排序(程序抄写题)答题地址:<alianxi/18/</a> 请完全按照如下的程序书写代码,并在书写的过程中体会优秀的代码风格:答案:5ef83 68afl 63 74cabef8e5ae3ee3 9c43 74a3 6a4c52b4b560bc8fc 1Oca47 a66052、答题说明:请大冢到指定答题地址答题,提交代码并通过测试后,会得到通过码的下载地址,将文件下载下来用记事本打开即得到通过码,将通过码对应的选项选出即可。
题目2整数的个数答题地址:<alianxi/22/</a>答案:5ef8368afl 63 74cabef8e5ae3ee39c43 74a36a4c52b4b560bc8fc 1Oca47a6605第3章单元测试l、答题说明:请大冢到指定答题地址答题,提交代码并通过测试后,会得到通过码的下载地址,将文件下载下来用记事本打开即得到通过码,将通过码对应的选项选出即可。
习题一一、选择题1.C程序的基本单位是(A)。
A.函数B.文件C.语句D.字符2.C程序中的变量(B)。
A.不用说明B.先说明后引用C.先引用后说明D.引用和说明顺序无关3.变量的说明在(B)。
A.执行语句之后B.执行语句之前C.执行语句当中D.位置无关4.C语言是一种(C)。
A.机器语言B.符号语言C.高级语言D.面向对象的语言二、填空题1.一个C程序总是从主函数开始执行。
2.结构化程序由顺序、选择、循环三种基本结构构成。
3.一个C程序只有一个名为main的主函数。
4.C程序中的每个语句以分号结束。
5.C程序中,函数由函数首部和函数体组成。
6.每个基本结构有一个入口和一个出口,没有死循环和死语句。
7.算法是计算机解决问题所依据的步骤。
习题二一、选择题1.下列数据中属于字符串常量的是( B)。
A.ABC B."ABC" C.'abc' D.'A'2.在计算机内存中,'\n'占用的字节数是( C)。
A.4 B.3 C.1 D.23.字符串"ABC"在内存中占用的字节数是( D)。
A.6 B.8 C.3 D.44.在C语言中,合法的长整型常数是( B)。
A.568701400 B.0L C.0.03546287 D.2.654e115.char型常量在内存中存放的是( A)。
A.ASCII代码值B.BCD代码值C.十进制代码值D.内码值6.下列各项中正确的标识符是( D)。
A.?bb B.a=8 C. b.βD.b_47.下列不正确的转义字符是( D)。
A.\\ B.\ 0 C.\" D.0x48.设整型变量a、b的值均为5,则表达式(m=n=a++)/(n=b-2)的值为( B)。
A.0 B.1 C.2 D.39.设a的值为5,执行下列语句后,b的值不为2的是( C)。
A.b=a/2 B.b=6-(--a) C.b=a%2 D.b=(float)a/210.执行语句x=(a=3,b=a--)后,x、a、b的值依次是( C)。
一、单选题1、若有定义 char s[10];则在下面表达式中不表示s[1]的地址的是()。
A.s++B.&s[0]+1C.&s[1]D.s+1正确答案:A2、若有定义int a[5],*p=a;则对a数组元素的正确引用是()。
A.a+2B.*(a+2)C.*&a[5]D.*(p+5)正确答案:B3、若有定义int a[5],*p=a;则对a数组元素地址的正确引用是()。
A.p+5B.&a+1C.*a+1D.&a[0]正确答案:D4、若要对a进行合法的自减运算,则之前应有下面()的说明。
A.int b[10];int *a=b+1;B.int k;int *a=&k;C.int p[3];int *a=p;D.char *a[3];正确答案:A5、若有定义int x[10]={0,1,2,3,4,5,6,7,8,9},*p1;则数值不为3的表达式是()。
A.p1=x+3,*p1++B.x[3]C.p1=x+2,*++p1D.p1=x+2,*(p1++)正确答案:D6、设int x[]={1, 2, 3, 4, 5, 6, 7, 8, 9, 0},*p=x,k;且0≤k<10, 则对数组元素x[k]的错误引用是()。
A.x[p-x+k]B.p+kC.*(&x[k])D.*(x+k)正确答案:B7、设double *p[6];则()。
A.p是指针数组,其元素是指向double型变量的指针B.p是指向double型变量的指针C.p是double型数组D.p是数组指针,指向double型数组正确答案:A8、若有定义int x[6]={2,4,6,8,5,7},*p=x,i;要求依次输出x数组6个元素中的值,不能完成此操作的语句是()。
A.for(i=0;i<6;i++) printf("%2d",*p++);B.for(i=0;i<6;i++) printf("%2d",*(p+i));C.for(i=0;i<6;i++) printf("%2d",*(p++));D.for(i=0;i<6;i++) printf("%2d",(*p)++);正确答案:D9、下面程序执行后的输出结果是()。
第1次客观题作业一、单选题(共30题,每题3分)1 .下面表示正确的是__A___。
A.C语言中的逗号是一种运算符B.在C语言中,一行只能有一个语句C.C中的变量不区分大小写D.c中的关键字可以做为变量名2 .字符型常量在内存中存放的是__A____代码值。
A.ASCII B.二进制C.十进制D.八进制3 .以下不正确的C语言标识符是(C )。
A.AB1 B._ab3 C.4ab D.a2_b4 .以下运算符中优先级最低的运算符是_D____。
A.&& B.& C.|| D.=5 .在C语言中,要求运算数必须是整型的运算符是___A___。
A.% B./ C.< D.!6 . C语言程序的基本单位是__C_____。
A.程序行B.语句C.函数D.字符7 .将高级语言编写的程序翻译成目标程序的是___B____程序。
A.解释程序B.编译程序C.汇编程序D.源程序8 .以下选项中,与k=n++完全等价的表达式是__A___。
A.k=n,n=n+1 B.n=n+1,k=n C.k=++n D.k+=n+19 .下列(A )不属于结构化程序设计的循环结构。
A.For B.While C.if-else D.do-while10 .以下叙述中错误的是__A___。
A.用户所定义的标识符允许使用关键字B.用户所定义的标识符应尽量做到“见名知意C.用户所定义的标识符必须以字母或下划线开头D.用户定义的标识符中,大、小写字母代表不同标识11 .若有输入语句scanf( %d%d%d,&x,&y,&z);则不能使x值为5,y值为6,z值为7的输入是__A____。
A.5,6 ,7 B.5回车换行 6 7 C.5 6 7 D.5,6,712 .若i,j已定义为int类型,则下程序段中内循环体的总的执行次数是( B )。
for (i=3;i>0;i--) for (j=0;j<=4;j++){...}A.12 B.15 C.16 D.2013 .下列选项中,合法的C语言关键字是_D___。
一、选择题1. 以下叙述正确的是(A)。
A.C语言允许直接访问物理地址,可以直接对硬件进行操作B.C语言程序不必编译,即可在计算机上运行C.C语言不允许直接访问物理地址,不可直接对硬件进行操作D.C语言程序只需编译,不需要连接即可在计算机上运行2. 在一个C程序中(B)。
A.main函数出现在所有函数之前。
C程序不必都有main函数B.main函数可以在任何地方出现。
一个C程序必须有且仅有一个main函数C.main函数必须出现在所有函数之后。
一个C程序只能有一个main函数D.main函数出现在固定位置。
一个C程序可以有多个main函数3. 下列叙述正确的是(B)。
A.C语言中既有逻辑类型也有构造类型数据B.C语言中没有逻辑类型,但有构造类型C.C语言中有逻辑类型,但没有构造类型E.C语言中既没有逻辑类型也没有构造类型4. 下列关于C语言用户标识符的叙述中正确的是(B)。
A.用户标识符中可以出现下划线和中划线(减号)B.用户标识符中不可以出现中划线,但可以出现下划线C.用户标识符中可以出现下划线,但不可以放在标识符开头D.用户标识符中可以出现下划线和数字,他们都可以放在标识符开头5. 下列转义字符中,错误的是(A)。
A.‘\0xa5’ B. ‘\031’ C. ‘\b’ D.‘ \”’6. 字符串“\\\\1234\\\\\n”在内存中占用的字节数是(C)。
A.14B. 9C. 10D. 117. 已知梯形的上底为a, 下底为b,高为h,用C语言写的正确的面积公式是(B)。
A. 1/2*(a+b)*hB. 2*(a+b)*hC. (a+b)hD. 2*a+b*h8. 与k=n++完全等价的表达式是(D)。
A. n=n+1, k=nB. k+=n+1C. K=++nD. k=n, n=n+19. 已定义char s1, s2;, 下面正确的语句是(C)。
A. scanf(“%s%c”, s1,s2);B. scanf(“%s%c”, s1, &s2);C. scanf(“%c%c”, &s1,&s2);D. scanf(“%c%c”, s1,s2);10. 为下面的程序输入数据,使得i=10, k=’a’, j=15, 正确的键盘输入方法是(D)。
学号:姓名:.一、选择题1. 以下叙述正确的是(A)。
A.C语言允许直接访问物理地址,可以直接对硬件进行操作B.C语言程序不必编译,即可在计算机上运行C.C语言不允许直接访问物理地址,不可直接对硬件进行操作D.C语言程序只需编译,不需要连接即可在计算机上运行2. 在一个C程序中(B)。
A.main函数出现在所有函数之前。
C程序不必都有main函数B.main函数可以在任何地方出现。
一个C程序必须有且仅有一个main函数C.main函数必须出现在所有函数之后。
一个C程序只能有一个main函数D.main函数出现在固定位置。
一个C程序可以有多个main函数3. 下列叙述正确的是(B)。
A.C语言中既有逻辑类型也有构造类型数据B.C语言中没有逻辑类型,但有构造类型C.C语言中有逻辑类型,但没有构造类型E.C语言中既没有逻辑类型也没有构造类型4. 下列关于C语言用户标识符的叙述中正确的是(B)。
A.用户标识符中可以出现下划线和中划线(减号)B.用户标识符中不可以出现中划线,但可以出现下划线C.用户标识符中可以出现下划线,但不可以放在标识符开头D.用户标识符中可以出现下划线和数字,他们都可以放在标识符开头5. 下列转义字符中,错误的是(A)。
A.…\0xa5‟B. …\031‟C. …\b‟D. … \”‟6. 字符串“\\\\1234\\\\\n”在内存中占用的字节数是(C)。
A.14B. 9C. 10D. 117. 已知梯形的上底为a, 下底为b,高为h,用C语言写的正确的面积公式是(B)。
A. 1/2*(a+b)*hB. 1.0/2*(a+b)*hC. 1.0/2.0(a+b)hD. 1.0/2*a+b*h8. 与k=n++完全等价的表达式是(D)。
A. n=n+1, k=nB. k+=n+1C. K=++nD. k=n, n=n+19. 已定义char s1, s2;, 下面正确的语句是(C)。
A. scanf(“%s%c”, s1,s2);B. scanf(“%s%c”, s1, &s2);C. scanf(“%c%c”, &s1,&s2);D. scanf(“%c%c”, s1,s2);10. 为下面的程序输入数据,使得i=10, k=‟a‟, j=15, 正确的键盘输入方法是(D)。
A. 10,a,15<回车>B. 10<回车>a<回车>15<回车>C. 10‟a‟15<回车>D. 10a15<回车>11. 已知float x=2.23, y=4.35;, 根据下面的输出结果,正确的程序段是(B)。
x=2.230000,y=4.350000y+x=6.58,y-x=2.12A.printf(“x=%8.2f,y=%8.2f”,x,y);printf("y+x=%4.2f,y-x=%4.2f\n",y+x,y-x);B.printf(“x=%8.6f,y=%8.6f\n”,x,y);printf("y+x=%4.2f,y-x=%4.2f\n",y+x,y-x);C.printf(“x=%7.2f,y=%7.2f\n”,x,y);printf("y+x=%3.2f,y-x=%3.2f\n",y+x,y-x);D.printf(“x=%f,y=%f”,x,y);printf("y+x=%f,y-x=%f\n",y+x,y-x);12. 下列表达式中,值为0的表达式是(D)。
A. 3 !=0B. 3 !=3>4C. 3>4==0D. 6>5>413. 下列表达式中,结果为1的表达式是(A)。
A. !0==1B. !6C. !2>=3D. !3!=014. 设int a=3; 则表达式a<1&&--a>1的运算结果和a的值分别是(B)。
A. 0和2B. 0和3C. 1和2D. 1和315. 下面程序的运行结果是(B )。
main(){ int x=3;do{printf("%3d",x-=2); } while(!(--x)); }A. 死循环B. 1 -2C. 10D. 116. 下面程序的运行结果是(D )。
main(){int i,j,k,sum;for(i=2;i<7;i++) {sum=1;for(j=i;j<7;j++) sum=sum+j;}printf(“%d ”,sum); }A. 48B. 49C. 1D. 717. 不能把字符串“Hello !”赋给数组a 的语句是(B )。
A. char a[10]={…H ‟, …e ‟, …l ‟, …l ‟, …o ‟, …!‟}; B. char a[10]; a=“Hello!”; C. char a[10]; strcpy(a, “Hello!”); D. char a[10]= “Hello!”;二、完善程序或写出程序运行结果1. 根据以下给定公式计算e 的值(取前n 项)....!1...!31!21!111++++++=n e main(){ double sum=1.0, x=1.0, y=1.0; int n;scanf("%d", &n ); while(n){y=x*y ;sum=sum+ 1.0/y ; x++; --n; }printf("sum=%f", sum); }2. 用10元人民币兑换角币(1角、2角、5角),有多少种换法? main(){ int i, j, k, m=0;for(i=0; i<= 20 ; i++)for(j=0; j<=(100- 5*i )/2; j++) for(k=0; k<=100-5*i-2*j; k++) if(i*5+j*2+k==100) m++; printf(”m=%d ”,m); }3. 1988年世界人口数为50亿,按年增长率11‰计算,哪一年开始世界人口数突破100亿?main(){ int year=1988;float r=0.011, no=5E9, n; n=no;do{n= n * (1+r); year++;} while ( n <2*no); printf(“year=%d\npupulation=%f ”, year, n); }4. 下面程序的功能是求矩阵B (不包括外围元素)的元素之积。
main(){ int i, j, f=1;int b[][4]={1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7}; for(i=0; i<4; i++){for(j=0; j<4; j++) printf(“%4d ”, b[i][j]); printf(“\n ”); }for(i=1; i<3 ; i++)for(j=1; j<3; j++) f=f* b[i][j] ;printf(“f=%d\n ”, f); }5. 以下程序的输出结果是 #& 。
main(){ int a=2, b=7, c=5;switch(a>0){case 1: switch(b<0){ case 1: printf(“@”); break;case 2: printf(“!”); break; }case 0: switch(c==5){ case 0: printf(“*”); break; case 1: printf(“#”); break; default: printf(“#”); break; }default: printf(“&”); } printf(“\n ”); }6. 以下程序的输出结果是 12 。
main(){ int a[10],i,k=0;for(i=0; i<10; i++) a[i]=i; for(i=1; i<4; i++) k+=a[i]+i; printf(“%d\n ”, k); }三、计算表达式的值若有变量定义char a=‟a ‟; int i=3, j=5, b; float x=2.5; double y=5.0, z; 计算下面表达式的值。
1. a+i-j+x/y : 95.5 2. (x+y)+i++: 10.53. y+=i-=j*=++x: -9.04. b=a+=j%i: 995. a=a+i, a+j: 1056. a=(a+i, a+j) : 1027. y=(x=2, x+1, x+2) : 4.08. i-=j*=x+y: -349. (i++)*(--j) : 1210. z=(i++)*(j++): 15.0 11. (int)x/(int)y+y: 5.012. (float)i/(++j) : 0.513. –j%i+j: 314. (int)y%i%(int)(x+y) : 2四、编程下面是一个5阶螺旋方阵,试编程打印出此形式的n(n<10)阶的方阵(顺时针方向旋进)1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9。