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)。
一、单项选择题(每小题2分,共40分)1、sizeof(float)是()A. 一个双精度型表达式B. 一个整型表达式C. 一种函数调用D. 一个不合法的表达式2、设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值: scanf("i=%d,f=%f",&i,&f);为了把100和分别赋给i和f,则正确的输入为()。
A. 100B. i=100,f=765.12C. 100<回车>D. x=100y=3、#include<>voidmain(){inta=3,b=2,c=1;intx=10,y=20;if(a<b)if(b!=0)if(!x)y=1;elseif(x)y=0;y=-1;printf("%d",y);}上面的C程序的输出结果是()。
A. 20B. 1C. 0D. -14、C语言中,while和do…while循环的主要区别是()。
A. do…while的循环体至少无条件执行一次B. while的循环控制条件比do…while的循环控制条件严格C. do…while允许从外部转到循环体内D. do…while的循环体不能是复合语句5、执行下面的C程序段后,输出结果是()。
inta=5;while(a--);printf("%d",a);A. 54321B. 4321C. 0D. -16、在C语言中,()是在所有函数外部声明的。
A. 全局变量B. 局部变量C. 形参D.实参7、分析下面的C程序:#include<>voidmain(){intnum=0;while(num<=2){num++;printf("%d",num);}}输出结果是()。
A. 123B. 012C. 23D. 128、下面的C语言代码段的输出结果是()。
C语言程序设计试题一、选择题1、一个C程序由若干个C函数组成,各个函数在文件中的位置顺序为:()A、任意B、第一个函数必须是主函数,其他函数任意C、必须完全按照执行的顺序排列D、其他函数可以任意,主函数必须在最后2、下列四个叙述中,正确的是:()A、C程序中的所有字母都必须小写B、C程序中的关键字必须小写,其他标示符不区分大小写C、C程序中的所有字母都不区分大小写D、C语言中的所有关键字必须小写3、下列四个叙述中,错误的是:()A、一个C源程序必须有且只能有一个主函数B、一个C源程序可以有多个函数C、在C源程序中注释说明必须位于语句之后D、C源程序的基本结构是函数4、下面不是C语言合法标识符的是:()A、abcB、5nC、_4mD、x35、以下叙述不正确的是:()A. 分号是C语句的必要组成部分B. C程序的注释可以写在语句的后面C. 函数是C程序的基本单位D. 主函数的名字不一定非用main来表示6、C语言中允许的基本数据类型包括:()A. 整型、实型、逻辑型B. 整型、实型、字符型C. 整型、字符型、逻辑型D. 整型、实型、逻辑型、字符型7、C语言中能用八进制表示的数据类型为:()A、字符型、整型B、整形、实型C、字符型、实型、双精度型D、字符型、整型、实型、双精度型8、下列属于C语言合法的字符常数是:()A、’\97’B、”A”C、’\t’D、”\0”9、在C语言(VC环境)中,5种基本数据类型的存储空间长度的排列顺序为:()A、char<int<=long int <=float<doubleB、char=int<long int <=float<doubleC、char<int<long int=float=doubleD、char=int=<long int <=float<double10、在C语言中(VC环境),一定是长整型常数的是:()A、0LB、4962710C、0412765D、0xa34b7fe11、若有以下定义语句char c1=’b’, c2=’e’;printf(“%d,%c\n”,c2-c1,c2-‘a’+’A’);则输出结果是:()A、2,MB、3,EC、2,ED、输出项与相应的格式控制不一致,输出结果不确定12、以下合法的赋值语句是:()A、x=y=100B、d--;C、x + yD、c = int(a+b);13、设变量t为int型,下列选项中不正确的赋值语句是:()A、++t;B、n1=(n2=(n3=0));C、k=i==m;D、a=b+c=1;14、在以下一组运算符中,优先级最高的是:()A、<=B、==C、%D、&&15、下列能正确表示a≥10或a≤0的关系表达式是:()A、a>=10 or a<=0B、a<=10 || a>=0C、a>=10 || a<=0D、a>=10 && a<=016、下列只有当整数x为奇数时,其值为“真”的表达式是:()A、x%2==0B、!(x%2==0)C、(x-x/2*2)==0D、!(x%2)17、设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是:()A、1 0< a < 15B、!(a<=10 || a>=15)C、a>10 && a<15D、!(a<=10) && !(a>=15)18、已知x=43, ch=’A’,y=0;则表达式(x>=y&&ch<’B’&&!y)的值是:()A、0B、语法错C、1D、“假”19、表达式17%4 /8的值为:()A、0B、1C、2D、320、语句printf(“%d”,(a=2)&&(b= -2));的输出结果是:()A、无输出B、结果不确定C、-1D、121、一个可执行的C程序的开始执行点是:()A. 程序中的第一个语句B. 包含文件中的第一个函数C. 名为main的函数D. 程序中的第一个函数22、组成C语句的一个必不可少的符号是:()A. 逗号B. 引号C. 冒号D. 分号23、若将int、long、float等类型的数据进行混合运算,其结果的数据类型是:()A. intB. longC. floatD. double24、下述是C语言中有关变量定义的几个说法,正确的是:()A. 变量可以不定义直接使用B. 一个说明语句只能定义一个变量C. 几个不同类型的变量可在同一语句中定义D. 变量可以在定义时进行初绐化25、与x * = y + z等价的赋值表达式是:()A. x = y + zB. x = x * y + zC. x = x * (y + z)D. x = x + y * z26、当代电子计算机能够自动地处理指定的问题是因为:()A.计算机是电动的B.有解决该问题的计算机程序C.事先存储了解决该问题的程序D.以上都不是27、以下叙述中最准确的是:()A.计算机程序是处理某一问题所有指令的集合B.计算机程序是处理某一问题所用到的所有数据的集合C.计算机程序是处理某一问题的所有指令及其数据的集合D.计算机程序是处理某一问题的所有指令及其数据的有序集合28、关于计算机程序设计,以下描述最准确的是:()A.程序设计就是用语言来编写程序B.程序设计就是用计算机语言来编写程序C.程序设计就是用计算机程序设计语言来编写程序D.程序设计就是用计算机能识别的语言来编写程序29、目前编写计算机程序一般采用的是:()A.机器语言B.汇编语言C.高级语言D.英语30、设计一个计算机程序最基本的工作是:()A.制定正确的算法B.选择合理的数据结构C.制定正确的算法和选择合理的数据结构D.以上都不是31、算法具有五个特性,以下选项中不属于算法特性的是:()A.有穷性B.简洁性C.可行性D.确定性32、下述哪一个不是结构化程序基本结构:()A.顺序B.选择C.循环D.嵌套33、C语言是一种:()A.机器语言B.汇编语言C.高级语言D.以上都不是34、C语言源程序的扩展名为:()A..exe B..c C..obj D..cpp35、C程序编译后最终产生(即计算机执行)的文件的扩展名为( )A..exe B..c C..obj D..cpp36、下列各项中,不是C语言的特点是:()A.语言简洁、紧凑,使用方便B.程序执行效率高,可移植性好C.能实现汇编语言的大多数功能D.有较强的网络操作功能37、构成C语言源程序的基本单位是:()A.子程序B.过程C.文本D.函数38、下列叙述正确的是:()A.C语言源程序可以直接在DOS环境中运行B.编译C语言源程序得到的目标文件可以直接在DOS环境中运行C.C语言源程序经过编译、连接得到的可执行程序可以直接在DOS环境中运行D.C语言源程序可以直接在VC++环境中运行39、某C程序由一个主函数main()和一个自定义函数max()组成,则该程序:()A.写在前面的函数先开始执行B.总是从main()函数开始执行C.总是从max()函数开始执行D.写在后面的函数先开始执行40、以下叙述不正确的是:()A.分号是C语句的必要组成部分B.C程序的注释可以写在语句的后面C.函数是C程序的基本单位D.主函数的名字不一定用mian表示41、以下为C语句的是:()A.a=8 B.a++;C.if(a>8) D. #include <stdio.h> 以下不是C语句的是:()A.a=8; B.a++;C.if(a>8);D.for(i=1;i<5;i++) 42、以下所列语句中,合法的语句是:( )A.a=1,b=2 B.++a; C.a=a+1=5 D.y=int(a);43、C程序中的复合语句指的是:()A.并列的多个C语句B.写在同一行中的多个C语句C.用一对大括号对括的多个C语句 D.就是函数体中的语句44、当一个很长的C语句(中间无字符串)在一行写不下(超出屏幕的宽度)时,应该:( )A.由系统自动换行B.立即按回车键换行C.在任意一个空格处按回车键换行D.输入一个分号后并按回车键换行换行45、在x值处于-2~2,4~8时值为“真”,否则为“假”的表达式是:( )。
《C语言程序设计》期末综合练习题模拟试题一一、单选题1.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为(A)。
A. mainB. MAINC. nameD. function2.每个C语言程序文件的编译错误分为(B)类。
A. 1B. 2C. 3D. 43.字符串"a+b=12\n"的长度为(B)。
A. 6B. 7C. 8D. 94.在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写为(D)语句。
A. forB. whileC. doD. if5.在下面的do-while循环语句中,其循环体语句被执行的次数为(C)。
int i=0; do i++; while(i<10);A. 8B. 9C. 10D. 116.将两个字符串连接起来组成一个字符串时,选用的字符串函数为(C)。
A. strlen( )B. strcpy( )C. strcat( )D. strcmp( )7.若用数组名作为函数调用的实参,传递给形参的是(A)。
A. 数组的首地址B. 数组中第一个元素的值C. 数组中全部元素的值D. 数组元素的个数8.假定a为一个整数类型的数组名,整数类型的长度为4,则元素a[4]的地址比a数组的首地址大(C)个字节。
9.假定s被定义为指针类型char *的变量,初始指向的字符串为"Hello world!",若要使变量p 指向s所指向的字符串,则p应定义为(A)。
A. char *p=sB. char *p=&sC. char *p;p=*sD. char *p; p=&s10.从一个数据文件中读入以换行符结束的一行字符串的函数为(B)。
A. gets( )B. fgets( )C. getc( )D. fgetc( )二、填空题1.执行“printf("%c",'A'+2);”语句后得到的输出结果为(C)。
一、名词解释(每小题4分,共20分)1. 变量2. 赋值运算3. int4. 数组5. 函数二、单选题(每小题2分,共20分)1. 以下运算符中,表示取余数运算的是( )A. %B. /C. !=D. <=2. C语言中,表示“不等于”、“不相等”的运算符是( )A. ≠B. !=C. < >D. =/=3. C语言中,printf函数中的格式字符%d用来( )A. 输出一个字符串B. 输出单个字符C. 输出十进制整数D. 输出双精度浮点数4. C语言中,要求接受用户从键盘输入的一个英文字符到char型变量ch中,那么,该语句的正确写法是( )A. scanf("%z",ch);B. scanf("%c",ch);C. scanf("%z",&ch);D. scanf("%c",&ch);5. 定义一个用来存放双精度浮点数且名为x的变量的正确语句是( )A. double x;B. float x;C. Double x;D. Float x;6. 判断整数型变量score的取值是否在区间[60,100]的正确写法是( )A. if (score>=60 and score<=100)B. if (score>=60 && score<=100)C. if (score>=60 & score<=100)D. if (60<= score <=100)7. 定义最多能存放30个整数且名为scores的数组的正确语句是( )A. INT scores[30];B. int [30] scores;C. int scores[30];D. INT [30] scores;8. 利用string.h中库函数求字符串s的长度的表达式正确写法是( )A. len(s)B. length(s)C. strLen(s)D. strlen(s)9.利用string.h中库函数判断字符串s1大于等于字符串s2的正确写法是( )A. if(strcmp(s1,s2)>=0)B. if (s1>=s2)C. if(strcmp(s1,s2)≥0)D. if (s1≥s2)10. 以下能输出数字0,1,2,3,4,5,6,7,8,9且每行输出一个数字的正确语句是( )A. for( i=0; i<10; i++ ) { printf("%d",i); }B. for( i=0; i<10; i++ ) { printf("%d\n",i); }C. for( i=0; i<10; i++ ) { printf("%d\n",i+1); }D. for( i=0; i<10; i-- ) { printf("%d\n",i); }三、判断题(每小题2分,共10分)1. C语言中,int可以作为变量名,例如语句:char int;可以定义名为int 的字符型变量。
《C程序设计》期末复习练习题及参考答案(3)《C程序设计》期末复习练习题及参考答案(3)一、单项选择题1.若有定义int (*p)[4],则标识符p是一个。
A)指向整型变量的指针变量B)指向函数的指针变量√C)指向有四个整型元素的一维数组的指针变量D)指针数组名,有四个元素,每个元素均为一个指向整型变量的指针2.下列对字符串的定义中,错误的是:。
√A) char str[7] = "FORTRAN";B) char str[] = "FORTRAN";C) char *str = "FORTRAN";D) char str[] = {'F','O','R','T','R','A','N',0};3.针对下面程序段,下面哪些说法是正确的?#include <stdio.h>void Swap(int *x, int *y);main()1{ int a, b;a = 5;b = 9;Swap(&a, &b);printf("a=%d,b=%d",a,b);}void Swap(int *x, int *y){ int *pTemp;*pTemp = *x;*x = *y;*y = *pTemp;}A) 程序运行结果为乱码;B) 程序运行后将导致程序崩溃;C) 程序编译时出错导致程序无法运行;√ D) 程序执行了危险的操作;4.已知学生记录描述为:struct student{ int no;char name[20];char sex;struct{ int year;char month[15];2int day;}birth;};struct student s;设变量s中的生日是1984年11月11日,下列对生日的正确赋值方式是_____A) s.birth.year = 1984; s.birth.month = "11"; s.birth.day = 11;B) s.birth.year = 1984; s.birth.month = 11; s.birth.day = 11;√ C) s.birth.year = 1984; strcpy(s.birth.month, "11"); s.birth.day = 11;D) s.birth.year = 1984; strcpy(s.birth.month, 11); s.birth.day = 11;5. 要使下面程序的输出1, 2, 34,则从键盘输入的数据格式应为。
C语言程序设计考题(选择题及答案)1)计算表达式:x=(i=4,j=10,k=24)后,x的值为:A. 24B. 38C. 4D. 103)以下哪条语句只能出现在循环结构中,而不能单独出现:A. ifB.gotoC.returnD.continue6)把x,y定义成float类型,并赋同一初值3.14,正确的是:A. float x,y=3.14;B. float x,y=2*3.14;C. float x=y=3.14;D. float x=3.14,y=x;7)若变量已正确定义并赋值,以下哪个表达式不符合C语言语法:A. 3.14%2B. 2,bC. a*b/cD. a/b/c8)以下哪个是不正确的字符常量:A. ‘n’B.’\101’C.’\n’D. “a”9)若有以下说明语句,则对st中成员score的正确引用是struct student{char num[8];int score;} st, *p=&st;A. *p.scoreB. p.scoreC. p->scoreD. *p->score10)若有int i;,则以下循环的执行次数是:for (i=2;i==0;) printf("%d",i);A. 1次B.无限循环C.0次D. 2次11)下列的哪个不是C语言的关键字:A. printfB.switchC.shileD. break12)设有定义char s[20]="hi,HanWeiXYi",*ps=s;;请选出不能正确引用字母a的表达式A. ps[4+1]B.s[4]C.*(ps+=4)D. *(ps+4)13)语句“while(!x)…”等价于A. while(x!=0)B.while(x==1)C.while(x==0)D. while(x!=1)14)下列位运算符中,异或运算的运算符是:A. ^B.~C.|D.&&15)设有下列变量说明与函数说明,则合法的函数调用语句是: int fumc( char s[] );char str[80]; int n;A. n=fumc(str)B. n=fumc(s)C. n=fumc(s[])D. n=fumc(str[80])16)分析以下函数,该函数的功能是:void prt_to_file(int a[],int n,char fn[]){FILE *fp; int i;fp=fopen(fn,"w");for (i=0;i<n;i++)fprintf(fp,"%d ",a[i]);fclose(fp);}A. 打开文件fn,从文件中读出n个整数到数组A中B. 打开文件fn,从文件中读出n,再读出n个整数到数组A中C. 打开文件fn,将数组a的n个元素写到文件中D. 打开文件fn,将n和数组a的n个元素依次写到文件中。
一、单选题1、关于下面程序段,正确的是()。
int k=10;while(!k)k--;A.循环体一次也不执行B.死循环C.循环体执行1次D.循环体执行10次正确答案:A2、下面程序的运行结果是( )。
#include <stdio.h>int main( ){int x=3;do{printf("%3d",x-=2);}while(!(--x));return 0;}A.1B.死循环C.1 -2D.10正确答案:C3、已定义int j; 下面程序段的输出结果是()。
for(j=7;j<10;j++)printf("%d",j);A.无结果B.8910C.789D.91011正确答案:C4、下面程序的输出结果是()。
#include <stdio.h>int main( ){int i,j,s=0;for(j=1,i=7;j<=i;j++,i--)s=s+i+j;printf("%d",s);return 0;}A.0B.死循环C.32D.28正确答案:C5、下面程序的输出结果是()。
#include <stdio.h>int main( ){int j,s;for(j=1;j<=7;j++)s=s+j;printf("%d",s);}A.死循环B.0C.不确定D.28正确答案:C6、已定义int j,s; 则下面程序段的输出结果是()。
int j,s;for(j=1,s=0;j<=5;j++)s*=j;printf("%d",s);A.0B.无结果C.120D.死循环正确答案:A7、从循环体内某一层跳出,继续执行循环外的语句是( )。
A.if语句B.break语句C.空语句D.continue语句正确答案:B8、针对for循环语句,for(表达式1;表达式2;表达式3),下列说法正确的是()。
学号:姓名:.一、选择题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。