A━━━━━━━━━━━━━━━
二、判断共10题(共计10分)
━━━━━━━━━━━━━━━
红颜色标注表示重要的题,蓝颜色标注表示有点疑问的题
第1题逻辑表达式-5&&!8的值为1. 答案:N
第2题如果被调用函数的定义出现在主调函数之前,可以不必加以声明. 答案:Y
第3题十进制数15的二进制数是1111. 答案:Y
第4题C语言的函数可以嵌套定义. 答案:N
第5题若有定义和语句:
int a[3][3]={{3,5},{8,9},{12,35}},i,sum=0;
for(i=0;i<3;i++) sum+=a[i][2-i];则sum=21. 答案:Y
第6题结构体类型只有一种。答案:N
第7题若有说明int c;则while(c=getchar());是正确的C语句。答案:Y
第8题C语言的switch语句中case后可为常量或表达式或有确定值的变量及表达式. 答案:N case后面只能跟常量或常量表达
第9题若有宏定义:#define S(a,b) t=a;a=b;b=t由于变量t没定义,所以此宏定义是错误的。答案:N t只用来存放变量a,b
第10题C语言本身不提供输入输出语句,输入和输出操作是由函数来实现的。答案:Y
第6题int a[3][4]={{1},{5},{9}}; 它的作用是将数组各行第一列的元素赋初值,其余元素值为0。答案:Y
第7题语句printf("%f\n",1.0/3);输出为0.333333。答案:N
第8题c程序总是从程序的第一条语句开始执行. 答案:N 从main函数开始,以mian 为基本单位
第10题若有int i=10,j=2;则执行完i*=j+8;后ⅰ的值为28。答案:N
第4题c语言所有函数都是外部函数. 答案:N
第5题char *p="girl";的含义是定义字符型指针变量p,p的值是字符串"girl"。答案:N p 的值应该为g,而且定义的应该为字符串型变量,不是字符型变量
第6题#define 和printf 都不是C语句。答案:Y
第7题若a=3,b=2,c=1 则关系表达式"(a>b)= =c" 的值为"真"。答案:Y
第10题整数-32100可以赋值给int型和long int型变量。答案:c语言中int整形分配4个字节,long int 分配4个字节
第3题while和do…while循环不论什么条件下它们的结果都是相同的. 答案:N
第5题若i =3,则printf("%d",-i++);输出的值为-4。答案:N 答案为-3
第7题在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量。答案:Y
第9题在C 语言中,此定义和语句是合法的:enum aa{ a=5,b,c}bb;bb=(enum aa)5;答案:Y 第4题两个字符串中的字符个数相同时才能进行字符串大小的比较答案:N 第8题在C程序中, 函数既可以嵌套定义, 也可以嵌套调用答案:N 第9题若有int ⅰ=10, j=0;则执行完语句if (j=0)ⅰ+ +; else ⅰ- -; ⅰ的值为11。答案:N 黄色部分本身就是错误的,应该写成if(j= =0),请教别人
第5题若有定义和语句:int a;char c;float f;scanf("%d,%c,%f",&a,&c,&f);若通过键盘输入:10,A,12.5,则a=10,c='A',f=12.5. 答案:Y
第7题用fopen("file","r+");打开的文件"file"可以进行修改。答案:
Y
第9题一个include 命令可以指定多个被包含的文件。答案:N
第10题进行宏定义时,宏名必须使用大写字母表示。答案:N 第5题7&3+12的值是15。答案:N
第9题C语言中只能逐个引用数组元素而不能一次引用整个数组。答案:Y
第10题char c[ ]="Very Good"; 是一个合法的为字符串数组赋值的语句。答案:Y
第5题在Turbo C中,下面的定义和语句是合法的:file *fp;fp=fopen("a.txt","r");答案:N
第7题若有int ⅰ=10, j=0;则执行完语句if (j=0)ⅰ+ +; else ⅰ- -; ⅰ的值为11。答案:N
第9题通过return语句,函数可以带回一个或一个以上的返回值。答案:N 只能带回一个返回值
━━━━━━━━━━━━━━━
一、填空共10题(共计10分)
━━━━━━━━━━━━━━━
第1题(1.0分)
若在程序中用到"strlen()"函数时,应在程序开头写上包含命令# include "【1】".
答案:
=======(答案1)=======
string.h
第2题(1.0分)
从函数的形式上看,函数分为无参函数和【1】两种类型.
答案:
=======(答案1)=======
有参函数
第3题(1.0分)
已知:int i=8,j=10,m,n;m=++i;n=j++;问语句执行后m=【1】,n=【2】。
答案:
=======(答案1)=======
9
=======(答案2)=======
10
第4题(1.0分)
C语言中一个函数由函数首部和【1】两部分组成.
答案:
=======(答案1)=======
函数体
第5题(1.0分)
已知a=10,b=15,c=1,d=2,e=10,则表达式a++&&e++&&c++的值为【1】.
答案:
=======(答案1)=======
1
第6 (1.0分)
语句:x++; ++x; x=x+1; x=l+x;执行后都使变量x中的值增1,请写出一条同一功能的赋值语句【1】.
答案:
=======(答案1)=======
x+=1
第7题(1.0分)
C语言中调用【1】函数来打开文件.
答案:
=======(答案1)=======
fopen
=========或=========
fopen()
第8题(1.0分)
求字符串长度的库函数是【1】,只写函数名即可.
答案:
=======(答案1)=======
strlen
第9题(1.0分)
设c语言中,int类型数据占2个字节,则long类型数据占【1】个字节,short类型数据占【2】个字节.
答案:
=======(答案1)=======
4
=======(答案2)=======
2
第10题(1.0分)
在C程序中,数据可以用二进制和【1】两种代码形式存放.
答案:
=======(答案1)=======
ASCII
━━━━━━━━━━━━━━━━━
三、单项选择共30题(共计30分)
━━━━━━━━━━━━━━━━━
第1题(1.0分)
C语言源程序文件经过C编译程序编译后生成的目标文件的后缀为
A:.c
B:.obj
C:.exe
D:.bas
答案:B
第2题(1.0分)
下列( )表达式的值为真,其中a=5;b=8;c=10;d=0
A:a*2>8+2
B:a&&d
C:(a*2-c)||d
D:a-b 答案:D 第3题(1.0分) C语言源程序文件经过C编译程序编译连接之后生成一个后缀为()的可执行文件A:.c C:.exe D:.bas 答案:C 第4题(1.0分) C语言源程序名的后缀是 A:exe B:c C:obj D:cp 答案:B 第5题(1.0分) 从循环体内某一层跳出,继续执行循环外的语句是 A:break语句 B:return语句 C:continue语句 D:空语句 答案:A 第6题(1.0分) 在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类型是 A:extern B:register C:auto D:static 答案:D 第7题(1.0分) 下列数据中属于"字符串常量"的是 A:ABC B:"ABC" C:'ABC' D:'A' 第8题(1.0分) 若变量已正确定义,执行语句scanf("%d,%d,%d ",&k1,&k2,&k3);时,___是正确的输入A:2030,40 B:20 30 40 C:20, 30 40 D:20,30,40 答案:D 第9题(1.0分) C语言的if语句中,用作判断的表达式为 A:任意表达式 B:逻辑表达式 C:关系表达式 D:算术表达式 答案:A 第10题(1.0分) 能正确表示逻辑关系:" a≥10或a≤0 "的C语言表达式是 A:a>=10 or a<=0 B:a>=0 | a<=10 C:a>=10 && a<=0 D:a>=10 || a<=0 答案:D 第11题(1.0分) 逻辑运算符两侧运算对象的数据类型()。 A:只能是0或1 B:只能是0或非0正数 C:只能是整型或字符型数据 D:可以是任何类型的数据 答案:D 第12题(1.0分) 以下函数调用语句中实参的个数是()。 func((e1,e2),(e3,e4,e5)); A:2 B:3 C:5 答案:A 第13题(1.0分) 在C语言的函数中,下列正确的说法是()。 A:必须有形参 B:形参必须是变量名 C:可以有也可以没有形参 D:数组名不能作形参 答案:C 第14题(1.0分) 对以下说明语句int a[10]={6,7,8,9,10}; 的正确理解是()。 A:将5个初值依次赋给a[1]至a[5] B:将5个初值依次赋给a[0]至a[4] C:将5个初值依次赋给a[6]至a[10] D:因为数组长度与初值的个数不相同,所以此语句不正确 答案:B 第15题(1.0分) 若定义:int a=511,*b=&a; 则printf("%d\n",*b);的输出结果为()。A:无确定值 B:a的地址 C:512 D:511 答案:D 第16题(1.0分) 以下不符合C语言语法的赋值语句是()。 A:a=1,b=2 B:++j; C:a=b=5; D:y=(a=3,6*5); 答案:A 缺少分号 第17题(1.0分) 若有说明: int a[3][4]={0};则下面正确的叙述是()。 A:只有元素a[0][0]可得到初值0 B:此说明语句不正确 C:数组a中各元素都可得到初值,但其值不一定为0 D:数组a中每个元素均可得到初值0 答案:D 第18题(1.0分) 设j和k都是int类型,则下面的for循环语句()。 for(j=0,k=0;j<=9&&k!=876;j++) scanf("%d",&k); A:最多执行10次 B:最多执行9次 C:是无限循环 D:循环体一次也不执行 答案:A 第19题(1.0分) fseek函数的正确调用形式是()。 A:fseek(文件类型指针,起始点,位移量) B:fseek(fp,位移量,起始点) C:fseek(位移量,起始点,fp) D:fseek(起始点,位移量,文件类型指针) 答案:B 第20题(1.0分) 与实际参数为实型数组名相对应的形式参数不可以定义为()。 A:float a[ ]; B:float *a; C:float a; D:float (*a)[3];(*a)[3]指向数组 答案:C 第21题(1.0分) 若int a=3,则执行完表达式a-=a+=a*a后,a的值是 A:-15 B:-9 解析:a-=a+=(a*a)先执行括号中的,a*a此时括号种的值为9,a 依然为3,接下来执行a=a+3,结果为12,想、此时a为 12再接下来执行a=a-12,结果为0 C:-3 D:0 答案:D 第22题(1.0分) 若有定义int a[10],*p=a;,则p+5表示 A:元素a[5]的地址 B:元素a[5]的值 C:元素a[6]的地址 D:元素a[6]的值 解析:其中的a为数组元素a[0]上的首地址,加5就是数组元素a【5】的首地址 答案:A 第23题(1.0分) 若有如下定义和语句,且0<=i<5,下面( )是对数值为3数组元素的引用 int a[]={1,2,3,4,5},*p,i; p=a; A:*(a+2) B:a[p-3] C:p+2 D:a+3 答案:A 第24题(1.0分) 以下程序的输出结果是________. void fun(int a, int b, int c) { a=456; b=567; c=678; } main() { int x=10, y=20, z=30; fun(x, y, z); printf("%d,%d,%d\n", z, y, x);} A:30,20,10 B:10,20,30 C:456567678 D:678567456 答案:A 第25题(1.0分) 已知字符'A'的ASCⅡ代码值是65,字符变量c1的值是'A',c2的值是'D'.执行语句printf("%d,%d",c1,c2-2);后,输出结果是 A:A,B B:A,68 C:65,66 D:65,68 答案:C 第26题(1.0分) 对于定义,char *aa[2]={"abcd","ABCD"},选项中说法正确的是 A:aa数组元素的值分别是"abcd"和"ABCD" B:aa是指针变量,它指向含有两个数组元素的字符型一维数组 C:aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址D:aa数组的两个元素中各自存放了字符'a'和'A'的地址 答案:D 第27题(1.0分) 若有double *p,x[10];int i=5;使指针变量p指向元素x[5]的语句为()。A:p=&x[i];书本上第224页8.2.3就有 B:p=x; C:p=x[i]; D:p=&(x+i) 答案:A 第28题(1.0分) 以下标识符中,不能作为合法的C用户定义标识符的是()。 A:answer B:to C:signed D:_if 答案:C 第29题(1.0分) 下列各m的值中,能使m%3==2&&m%5==3&&m%7==2为真的是()。A:8 B:23 C:17 D:6 答案:B 第30题(1.0分) 利用fseek 函数可以实现的操作是()。 A:改变文件的位置指针 B:文件的顺序读写 C:文件的随机读写 D:以上答案均正确 答案:D ━━━━━━━━━━━━━━━━ 四、程序填空共2题(共计20分) ━━━━━━━━━━━━━━━━ /*------------------------------------------------------- 【第1题(10.0分) 程序填空】 --------------------------------------------------------- 功能:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。 -------------------------------------------------------*/ scanf("%s",str); /***********SPACE #include main() { int length(char *p); int len; char str[20]; printf("please input a string:\n"); ***********/ len=length(【str】); str printf("the string has %d characters.",len); } /***********SPACE***********/ 【?】(p) length char *p; { int n; n=0; while(*p!='\0') { /***********SPACE***********/ 【?】; n++ /***********SPACE***********/ 【?】; p++ } return n; } 答案: =======(答案1)======= str =======(答案2)======= length =========或========= int length 我习惯了用这种方式写 =======(答案3)======= n++ =========或========= ++n =========或========= n=n+1 =========或========= n+=1 =======(答案4)======= p++ =========或========= ++p =========或========= p=p+1 =========或========= p+=1 第2题(10.0分) /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:输入一正整数n、打印1-n能够组成的所有自然数集合(包含空集)。 -------------------------------------------------------*/ #include #include #define MAXSiZE 20 #define LOOP 1 void main(void) { int set[MAXSiZE]; int n, i; int position; char line[100]; printf("\nAll Possible Subsets Generation by Lexical Order"); printf("\n================================================"); printf("\n\nNumber of Elements in the Set --> "); gets(line); n = atoi(line); printf("\n{}"); position = 0; set[position] = 1; while (LOOP) { /***********SPACE***********/ printf("\n{%d", 【?】); set[0] for (i = 1; i <= position; i++) printf(",%d", set[i]); printf("}"); if (set[position] < n) { /***********SPACE***********/ set[【?】] = set[position] + 1; position+1 position++; } else if (position != 0) set[--position]++; else /***********SPACE***********/ 【?】; break } 答案: =======(答案1)======= set[0] =======(答案2)======= position+1 =======(答案3)======= break ━━━━━━━━━━━━━━━━ 五、程序改错共1题(共计10分) ━━━━━━━━━━━━━━━━ 第1题(10.0分) /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:编写函数fun求20以内所有5的倍数之积。 ------------------------------------------------------*/ #include #define N 20 int fun(int m) { /**********FOUND**********/ int s=0,i; int s=1 , i ; for(i=1;i /**********FOUND**********/ if(i%m=0) if(i%m==0) /**********FOUND**********/ s=*i; s*=i; return s; main() { int sum; sum=fun(5); printf("%d以内所有%d的倍数之积为:%d\n",N,5,sum); } 答案: =======(答案1)======= int s=1 , i ; =======(答案2)======= if(i%m==0) =======(答案3)======= s=s*i; =========或========= s=i*s; =========或========= s*=i; ━━━━━━━━━━━━━━━━ 六、程序设计共2题(共计20分) ━━━━━━━━━━━━━━━━ 第1题(10.0分) /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:统计出若干个学生的平均成绩,最高分以及得最高分的人数。 例如:输入10名学生的成绩分别为92,87,68,56,92,84,67,75,92,66,则输出平均成绩为77.9, 最高分为92,得最高分的人数为3人。 ------------------------------------------------*/ #include void wwjt(); float Max=0; int J=0; float fun(float array[],int n) { /**********Program**********/ /********** End **********/ } main( ) { float a[10],ave; int i=0; for(i=0;i<10;i++) scanf("%f",&a[i]); ave=fun(a,10); printf("ave=%f\n",ave); printf("max=%f\n",Max); printf("Total:%d\n",J); wwjt(); } void wwjt() { FILE *IN,*OUT; float iIN[10],iOUT; int iCOUNT; IN=fopen("in.dat","r"); if(IN==NULL) { printf("Please V erify The Currernt Dir..it May Be Changed"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("Please V erify The Current Dir.. it May Be Changed"); for(iCOUNT=0;iCOUNT<10;iCOUNT++) fscanf(IN,"%f",&iIN[iCOUNT]); iOUT=fun(iIN,10); fprintf(OUT,"%f %f\n",iOUT,Max); fclose(IN); fclose(OUT); } 答案:---------------------- int i;float sum=0,ave; Max=array[0]; for(i=0;i { if(Max sum=sum+array [i]; } ave=sum/n; for(i=0;i if(array [i]==Max) J++; return(ave); ---------------------- 第2题(10.0分) /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:求一分数序列2/1,3/2,5/3,8/5,13/8,21/13… 的前n项之和。 说明:每一分数的分母是前两项的分母之和,每一分数的分子是前两项的分子之和 例如:求前20项之和的值为32.660259。 ------------------------------------------------*/ #include void wwjt(); float fun(int n) { /**********Program**********/ /********** End **********/ } main() { float y; y=fun(20); printf("y=%f\n",y); wwjt(); } void wwjt() { FILE *IN,*OUT; int iIN,i; float fOUT; IN=fopen("in.dat","r"); if(IN==NULL) { printf("Please V erify The Currernt Dir..it May Be Changed"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("Please V erify The Current Dir.. it May Be Changed"); } for(i=0;i<5;i++) { fscanf(IN,"%d",&iIN); fOUT=fun(iIN); fprintf(OUT,"%f\n",fOUT); } fclose(IN); fclose(OUT); } 答案:---------------------- int i; float f1=1,f2=1,f3,s=0; for(i=1;i<=n;i++) {f3=f1+f2; f1=f2; f2=f3; s=s+f2/f1; } return s; ---------------------- ━━━━━━━━━━━━━━━ ━━━━━━━━━━━━━━━ 一、填空 第5题(1.0分) int x; x=3*4%-5/6, 则x的值为【1】. 答案:3 解析:3乘以4等于12 ,再除以-5取余,再除以6,得到结果为0 。注意:除法的结果中最后的值应该采用接近于0的方法 =======(答案1)======= 第6题(1.0分) 若有以下数组a,数组元素:a[0]~a[9],其值为9 4 12 8 2 10 7 5 1 3 该数组中下标最大的元素的值是【1】. 答案: =======(答案1)======= 3 第7题(1.0分) 执行语句char str[81]="abcdef";后,字符串str结束标志存储在str[【1】](在括号内填写下标值)中. 答案: =======(答案1)======= 6 第8题(1.0分) 当a=1,b=2,c=3时,执行以下程序段后c=【1】.if (a>c) b=a; a=c; c=b; 答案: =======(答案1)======= 解析:在此题中if语句中的条件不满足就只能执行if语句之后的几个句子,而不是if不满足就结束程序 2 第9题(1.0分) 已知a=10,b=15,c=1,d=2,e=0,则表达式!a =======(答案1)======= 第10题(1.0分) C程序在执行过程中,不检查数组下标是否【1】. 答案: =======(答案1)======= 越界 ━━━━━━━━━━━━━━━ ━━━━━━━━━━━━━━━━━ 第13题(1.0分) 下面说明不正确的是()。 A:char a[10]="china"; B:char a[10],*p=a;p="china" C:char *a;a="china"; D:char a[10],*p;p=a="china" 答案:D 第14题(1.0分) int (*p)[6]; 它的含义为()。 A:具有6个元素的一维数组 B:定义了一个指向具有6个元素的一维数组的指针变量C:指向整型指针变量 D:指向6个整数中的一个的地址 答案:B 第15题(1.0分) 设int b=2;表达式(b>>2)/(b>>1)的值是()。 A:0 B:2 C:4 D:8 精选考试类文档,如果您需要使用本文档,请点击下载! 祝同学们考得一个好成绩,心想事成,万事如意! 大学C语言考试试题及答案 姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题吧。加油! 一单项选择题 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’ ’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串 选项B,C,分别用{}和’’标识字符串 选项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.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是( B )。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是( C )。 A) %x B) a+b C) a123 D) 123 8、下列四组字符串中都可以用作C语言程序中的标识符的是( A )。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。 A)2.5 B)2 C)1 D)3 11.如果int a=3,b=4;则条件表达式"a C语言常见复习题及参考答案 一、选择题 1.下述标识符中,()是合法的用户标识符。 A.A#C B.getch C.void D.ab* 2.在C语言中,字符型数据在内存中是以()形式存放的。 A.原码 B.BCD码 C.反码 D.ASCII码 3.以下选项中不合法的用户标识符是()。 A.abc.c B.file C.Main D.PRONTF 4.以下选项中不合法的用户标识符是()。 A.123 B.printf C.Anbsp; D.Dim 5.可以在C语言程序中用做用户标识符的一组标识符是()。 A.void B.as-b3 C.for D.2c define -123 -abc Do WORD If cas SIG 6.在以下各组标识符中,合法的用户标识符是(1)、(2)、(3)。 (1)A.001 B.table_1 C.0_t D.k% Int t*.1 W10 point (2)A.Fast_ B.void C.pbl D. Fast+Big abs fabs beep (3)A.xy_ B.longdouble C.*p D.CHAR 变量1 signed history Float 7.()是构成C语言的基本单位。 A.函数 B.过程 C.子程序 D.子例程 8.若有说明:char s1='\067';char s2="1";char s3='1';则s1中(1),s2中(2),s3中(3)。 (1).A.包含3个字符 B.包含2个字符 C.包含1个字符 D.无定值,说明不合法 (2).A.包含1个字符 B.包含2个字符 C.包含3个字符 D.无定值,说明不合法 (3).A.包含1个字符 B.包含2个字符 C.包含3个字符 D.无定值,说明不合法 9.若x为int型变量,则执行以下语句后,x的值为 x=6; x+=x-=x*x A.36 B.-60 C.60 D.-24 10.在C语言中,char 型数据在内存中是以()形式存储的。 A.原码 B.补码 C.ASCII码 D.反码 11.以下运算符中优先级最低的算符为(),优先级最高的为()。 A.&& B.& C.|= D.|| E.?: F.!= 12.若有运算符>、*=、<<、%、sizeof,则它们按优先级(由低至高)的正确排列顺序为 A.*= << > % sizeof B.<< *= > % sizeof C.*= > << sizeof % D.*= > << % sizeof 13.若有以下类型说明语句 char w; int x; float y; double z; 则表达式w*x+z-y 的结果是()类型。 A.float B.char C.int D.double 14.若w,x,y,z 均为int 型变量,则执行下面的语句后, w=(1), x=(2), y=(3), z=(4)。 w=5; x=4; y=w++*w++*w++; z=--x*=--x*--x; ================================================== 题号:1482 执行以下程序段后,输出结果和a的值是()。int a=10; printf("%d",a++); A、11 和10 B、11 和11 C、10 和11 D、10 和10 答案: C 题号:2100 已知字符'A'的ASCⅡ代码值是65,字符变量c1的值是'A',c2的值是'D'.执行语句printf("%d,%d",c1,c2-2);后,输出结果是 A、65,66 B、A,B C、65,68 D、A,68 答案: A 题号:5055 相同结构体类型的变量之间,可以()。 A、比较大小 B、地址相同 C、赋值 D、相加 答案: C 题号:3217 int a[10];合法的数组元素的最小下标值为()。 A、1 B、0 C、10 D、9 答案: B 能正确表示逻辑关系:" a≥10或a≤0 "的C语言表达式是 A、a>=0 | a<=10 B、a>=10 or a<=0 C、a>=10 && a<=0 D、a>=10 || a<=0 答案: D 题号:157 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",a,b); }该程序的输出结果是( ) A、2,2 B、2,1 C、1,1 D、1,0 答案: B 题号:4784 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的 数据类型为()。 A、不确定 B、double C、int D、float 答案: B 题号:1647 以下程序中,while循环的循环次数是______ main() { int i=0; 二、填空题 1、C语言中对文件读写之前必须先打开文件,文件的打开是通过调用________函数来实现。 答案: 1:fopen#fopen()#fopen() 知识点:知识点/基本理论/C11文件/C11_2文件函数 2、C语言中文件操作结束节后,必须关闭文件。而且关闭文件是通过调用__________函数来实现。 答案: 1:fclose#fclose()#fclose() 知识点:知识点/基本理论/C11文件/C11_2文件函数 3、字符串函数________用于从指定的磁盘文件中读出一个字符串。 答案: 1:fgets#fgets() 知识点:知识点/基本理论/C11文件/C11_2文件函数 4、字符串函数___________用于把一个字符串写入指定的磁盘文件中。 答案: 1:fputs#fputs() 知识点:知识点/基本理论/C11文件/C11_2文件函数 5、字符读写函数____________是用于从磁盘文件中读出一个字符。 答案: 1:fgetc#fgetc()#getc#getc() 知识点:知识点/基本理论/C11文件/C11_2文件函数 6、字符读写函数____________是用于把一个字符写入磁盘文件。 答案: 1:fputc#fputc()#putc#putc() 知识点:知识点/基本理论/C11文件/C11_2文件函数 7、共用体类型变量的定义关键字是________。 答案: 1:union 知识点:知识点/基本理论/C10共用体与枚举类型 8、定义枚举类型时采用的关键字是__________。 答案: 1:enum 知识点:知识点/基本理论/C10共用体与枚举类型 9、在C语言中,从参数的形式看,函数可以分为两类:无参函数和____________函数。 答案: 1:有参 知识点:知识点/基本理论/C6函数与编译预处理/C62函数分类、调用及返回值T 10、在C语言中,函数的返回值是由___________语句传递的。 答案: 1:return#return() 知识点:知识点/基本理论/C6函数与编译预处理/C62函数分类、调用及返回值T 11、在C语言中,按函数在程序中出现的位置可分为以下三种调用方式:函数语句、函数表达式和函数 __________。 答案: 1:参数 知识点:知识点/基本理论/C6函数与编译预处理/C62函数分类、调用及返回值T 12、在C语言中,在调用一个函数的过程中又出现__________或间接地调用该函数本身,这一现象称为函数的递归调用。 答案: 1:直接 知识点:知识点/基本理论/C6函数与编译预处理/C62函数分类、调用及返回值T 13、在C语言中,若确实不要求返回函数值,则应将函数定义为___________类型。 答案: 1:void 知识点:知识点/基本理论/C6函数与编译预处理/C62函数分类、调用及返回值T 14、在C语言中,假使X为基本整型变量,如果我们采用printf("格式控制",X)格式输出X,那么"格式控制"具体表示为"__"。 精选考试类应用文档,如果您需要使用本文档,请点击下载,另外祝您生活愉快,工作顺利,万事如意! 精选考试类文档,如果需要,请下载,希望能帮助到你们! 2020最新C语言考试题库及答案 姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题吧。加油! 一单项选择题 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’ ’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串 选项B,C,分别用{}和’’标识字符串 选项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.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是( B )。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是( C )。 A) %x B) a+b C) a123 D) 123 8、下列四组字符串中都可以用作C语言程序中的标识符的是( A )。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。 A)2.5 B)2 C)1 D)3 11.如果int a=3,b=4;则条件表达式"a 1、在考生目录下,给定程序FILL1、C的功能就是: 计算正整数num的各位上的数字之积。 例如,若输入:252,则输出应该就是:20。 若输入:202,则输出应该就是:0。 程序有两个空(1)、(2)需要补充完整。并将程序调试出所需的结果。 注意:不要随意改动程序,不得增行或删行,也不得更 改程序的结构! #include 试题 课程名称C语言程序设计适用时间 试卷类别 A 适用专业、年级、班 一、选择题(每小题2分, 2×25=50分) 1.下列叙述错误的是( )。 A) C程序中的每条语句都用一个分号作为结束符B) C程序中的每条命令都用一个分号作为结束符 C) C程序中的变量必须先定义,后使用 D) C语言以小写字母作为基本书写形式,并且C语言要区分字母的大小写 2.以下叙述不正确的是( )。 A) 一个C源程序必须包含一个main函数B) 一个C源程序可由一个或多个函数组成 C) C程序的基本组成单位是函数D) 在C程序中,注释说明只能位于一条语句的后面 3.C语言中最简单的数据类型包括( )。 A)整型、实型、逻辑型B)整型、实型、字符型 C)整型、字符型、逻辑型D)字符型、实型、逻辑型 4.C语言中运算对象必须是整型的运算符是( )。 A)%= B)/ C)= D)<= 5.若变量a,i已正确定义,且i已正确赋值,合法的语句是( )。 A)a= =1 B)++i;C)a=a++=5;D)a=int(i); 6.下列运算符中优先级最高的是( )。 A) < B) + C) && D) ! = 7.设有说明:char w;int x;float y;double z;则表达式w*x+z-y 值的数据类型是( )。 A) int B) float C) double D) char 8.设x和y均为int型变量,则语句:x+=y;y=x-y;x-=y;的功能是( )。 A)把x和y按从大到小排列B)把x和y按从小到大排列C)无确定结果D)交换x和y中的值 9.设整型变量a,b的值均为8, printf("%d,%d",(a++,++b),b--);的输出是( )。 A)8,8 B)8,7 C)9,9 D)8,9 10.若有语句scanf("%d%d",&a,&b);要使变量a,b分别得到10和20,正确的输入形式为( )。 A)10 20 B)10,20 C)1020 D)10:20 11.判断char型变量ch是否为大写字母的正确表达式是( )。 A)'A'<=CH<='Z' B) (CH>='A')& (CH<='Z') C)(CH>='A')&& (CH<='Z') D) ('A'<=ch)AND('Z'>=ch) 12.有如下程序 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=2 13.以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下: main( ) { int n,k; float score,sum,ave; sum=0.0; for(n=1;n<=10;n++) { for(k=1;k<=4;k++) { scanf("%f",&score); sum+=score; } ave=sum/4.0; printf("NO%d:%f\n",n,ave); } } 上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是( )。 A) sum=0.0; B) sum+=score; C) ave=sun/4.0; D) printf("NO%d:%f\n",n,ave); 1. 一条简单语句是以________字符作为结束符的,一条复合语句是分别以 ________字符和________字符作为开始符和结束符的。 2. 任何一个C++程序至少且只能包含一个________函数,且程序总是从这个函数开始执行,不论这个函数的位置如何。一个函数定义由________和________两部分组成。 3. C++头文件和源程序文件的扩展名分别为________和________。 4. cout与操作符_______配合使用才能显示输出,cin与操作符_____配合使用才能实现输入。 5. 数据类型int,char,bool,float,double, int * 等的类型长度分别为________、________、________、________、________和________。 6. 数值常量46、0173和0x62对应的十进制值分别为________、________和________。 7. 字符串”It\’s\40a\40C++programe!”中包含有__________个字符。 8. 若x=5,y=10,则计算y*=++x表达式后,x和y的值分别为________和 ________。 9. 若x=25,则计算y=x--表达式后,x和y的值分别为________和________。 10. 假定x和ch分别为int型和char型,则sizeof(x)和sizeof(ch)的值分别为________和________。 11. 假定x=64,y=88,则x<<2和y>>2的值分别为________和________。 12. 假定x是一个逻辑量,则x&&true的值与________的值相同,x||false的值也与________的值相同。 13. 假定x是一个逻辑量,则x&&!x和x||!x的值分别为________和________。 14. 假定x=10,则表达式x<=10?20:30的值为________。 15. 表达式sqrt(81)和pow(6,3)的值分别为______________和 ______________。 16. 数学算式(1+x)sin48°和axbex+1对应的算术表达式分别为________和 ________。 17. 逻辑表达式:a>=x||b>2*y+10的相反式为:________。 18. 在嵌套的if语句中,每个else关键字与它前面最接近的________关键字相配套。 19. 在for语句中,假定循环体被执行次数为n,则<表达式1>共被计算________次,<表达式2>共被计算________次,<表达式3>共被计算________次。20. 执行for和while循环时,每次是先进行________的判断,然后再执行 ________,执行do循环时则相反。 三、程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【3.1】下面程序的功能是不用第三个变量,实现两个数的对调操作。 #include 【3.2】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include 高三11月份月考C语言考试题 一、选择题:(30分) 1.在每一个C程序中都必须包含一个名为()的函数. A.main B. MAIN C. name D. function 2.以下叙述正确的是(). A.C程序中注释部分可以出现在程序中任意合适的地方 B.花括号{和}只能作为函数体的定界符 C.构成C程序的基本单位是函数, 所有函数名都可以由用户命名 D.分号是C语句之间的分隔符, 不是语句的一部分 3.若有定义int a; 变量a占用内存的2个字节, 则a所能存储数据的最 小值是(). A.0 B. -32767 C. -32768 D. -65535 4.在下列4组八进制和十六进制数中, 全部正确的是(). A.123 089 0x23af 0xbd B. 0a21 056 0xabc 0x789 C.010 052 0xdfa 0xff14 D. 0x123 0283 0xabc 0x25f 5. 设有定义”int x=8,y,z;”执行”y=z=x++; x=y==z;”后,变量x的值是() A. 0 B. 1 C. 8 D. 9 6. 能正确表示关系3 1. 在考生目录下,给定程序FILL1.C的功能是: 计算正整数num的各位上的数字之积。 例如,若输入:252,则输出应该是:20。 若输入:202,则输出应该是:0。 程序有两个空(1)、(2)需要补充完整。并将程序调试出所需的结果。 注意:不要随意改动程序,不得增行或删行,也不得更改程序的结构! #include /**************found************/ ___(1)___; scanf("%s",s); /**************found************/ for(i=0;___(2)___;s[i] != ‘\0’ ;i++) n=n*10+s[i]-'0'; printf("n=%ld\n",n); } 3. 在考生目录下,给定程序FILL1.C的功能是:输出Fabonacci数列:1,1,2,3,5,8,……的前20项的 项值,要求每行输出5个数。请填空。 程序有两个空(1)、(2)需要补充完整。请将程序调试出 所需的结果。 注意:不要随意改动程序,不得增行或删行,也不得更 改程序的结构! #include "stdio.h" main() { long int f[20]={1,1}; int i; clrscr(); /**************found************/ ___(1)___; printf("%8ld,%8ld",f[0],f[1]); for(i=2;i<20;i++) { f[i]=f[i-1]+f[i-2]; /**************found************/ if(___(2)i%5==0) printf("\n"); printf("%8ld",f[i]); } printf("\n"); } 4. 在考生目录下,给定程序FILL1.C的功能是:实现在N行M列的二维数组中,找出每一行上的最大值,且原数组值不变。 例如:如果二维数组元素的值为: 1 5 7 4 2 6 4 3 8 2 3 1 时,程序的运行结果应为: The max value in line 0 is 7 The max value in line 1 is 6 一、选择题 1. 在每个C 程序中都必须包含有这样一个函数,该函数的函数名为 。 A. main B. MAIN C. name D. function 2. 在以下关于C 语言的注释的叙述中,不正确的是 。 A .注释可用"/*"、"*/"形式表示,也可用"//"形式表示 B .编译器在编译一个程序时,将跳过注释,不对其进行处理 C .编译器在编译一个程序时,可发现注释中的单词拼写错误 D .程序中注释的多少不会影响所生成的可执行文件的长度 3. 以下叙述不正确的是 。 A .在C 程序中,严格区分大小写字母 B .一个C 源程序有且仅有一个main 函数 C .在C 程序中,注释只能位于一条语句的后面 D .一个C 程序总是从main 函数开始执行 4. 下列合法的标识符为 A. abde+ B. #KDJF C. 67KDJ D. DK3_ 5. 关于字符串和字符的关系正确的是 A. “A ”与’A ’是相同的 B. 字符串是常量,字符是变量 C. “A ”与’A ’是不同的 D. “A ”与“A ”是相同的 6. 下面关于语句的说法正确的是 A. 下面这两段程序的执行效果是一致的 B. 空语句是只有一个分号的语句,它其实什么也不干 C. 语句的构成不一定需要分号 D. 语句的书写对程序的运行不起作用,因此可以随便写都可以 7. 以下各标识符中,合法的用户标识符组为 。 A. PAd ,P#d ,b-b ,abc ,_0123,ssiped B. cin ,a10,CPP ,float ,del_word ,signed C. void ,max ,hiy , 选择题(30分)(第一部分分10分,第二部分12分,第三部分8分) 第一部分:简单类题目(50个题目,从中选择10,每题1分) 1、若num、a、b和c都是int型变量,则执行表达式num=(a=4,b=16,c=32)后num的值为(C)A.4B.16 C.32D.522 2.以下程序的输出结果(B)。 main( ) { int x1=3, x2=0, x3=0; if (x1=x2+x3) printf("* * * *"); else printf("# # # #"); } A.输出:* * * * B.输出:# # # # C.存在语法错误D.无输出结果 3.下面四个选项中,均是合法转义字符的选项是(A)。 A.'\'' '\\' '\n' B.'\' '\017' '\"' C.'\018' '\f' 'xab' D.'\\0' '\101' 'xlf' 4.若有说明:int a=1,b=2,c=3,d=4;则表达式a 二,填空题(10道小题,共20分) 1、一个C源程序中至少应包含一个[main] 函数。 2、a是整型变量,则执行表达式a=25/3%3后a的值为。[2] 3、int m=5,y=2;则表达式y+=y- =m*=y的值为。[-16] 4、执行下列语句: int a=1, b=2; a=a+b; b=a-b; a=a-b; printf("%d , %d \n", a,b );的输出结果分别是[2,1] 5、条件表达式的格式为表达式1?表达式2:表达式3,若表达式2和表达式3的类型不同,此时条件表达式的值的类型为二者中较[高]的类型 6、当运行以下程序时,从键盘键入right? { char c1="A", c2="a", *p1, *p2; p1=&c1; p2=&c2; fun(p1,p2); printf(“&c&c\n”,c1,c2); } 运行后的输出结果是。[&c&c] 11、字符串常量“123”在内存中的字节数是。[8字节] 12、已有定义 :int x=3 ;则表达式 :x=x+1.78 的值是。【4】 13、int a=24; printf("%o ", a );输出结果是。【30】 14、当a=3,b=2,c=1时,表达式f=a>b>c的值是。【0】 15、下面程序的运行结果是。【x=1,y=20】 #include 一、单项选择题:(10分,每题2分) 1.char *p[10];该语句声明了一个: c 。 A)指向含有10个元素的一维字符型数组的指针变量p B)指向长度不超过10的字符串的指针变量p C)有10个元素的指针数组p,每个元素可以指向一个字符串 D) 有10个元素的指针数组p,每个元素存放一个字符串 2.若int x;且有下面的程序片断,则输出结果为: D 。 for (x=3; x<6; x++) { printf((x%2) ? "##%d" : "**%d\n", x); } A) ##3B) **3C) **3D)##3**4 **4 ##4 ##4**5 ##5 ##5 **5 3.在while(!x)语句中的!x与下面条件表达式等价的是:D 。 A) x!=0 B) x==1 C) x!=1 D) x==0 4.已知 struct point { int x; int y; }; struct rect { struct point pt1; struct point pt2; }; struct rect rt; struct rect *rp = &rt; 则下面哪一种引用是不正确的__D______。 A) r t.pt1.x B) (*rp).pt1.x C) r p->pt1.x D) rt->pt1.x 5.若二维数组a有m行n列,则下面能够正确引用元素a[i][j]的为: C 。 A) *(a+j*n+i) B) *(a+i*n+j) C) *(*(a+i)+j) D) *(*a+i)+j CDDDC 二、分析程序并写出运行结果。(25分,每题5分) 1. #include 一、选择题 以下表达式中非法的是_______ A. 0<=x<=10 B. i=j==0 C. (char)(65+3) D. x+1=x+1 设有int x=10,y=10; 表达式x&&x-y || x+y 的结果为_______ A.20 B. 10 C. 0 D. 1 若有int x=3;执行语句if(x) x=x+3;else x=x-3; 后,变量x的值为_____ A. 3 B. 6 C. 0 D. 该语句有语法错误 若有定义int x=3; 执行语句while(x>=0) x-- ; 后,变量x的值为_______ A. 3 B. 0 C. -1 D. 2 若有定义int x=3若有定义char st[20]= "abc\ndef"; 则函数strlen(st)的值为_______ A.20 B.8 C.9 D.7; 在函数调用语句fun((x1,x2),(x3,x4,x5))中的实参的个数是_______ A. 1 B. 2 C.3 D. 4 数组初始化为:int a[10]={1,3,5,7}; 则数组元素a[4]的值为_______ A. 0 B. 7 C. 不确定 D. 1 若有定义int x,*p; 能为变量p正确赋值的表达式为________ A. p=x B. p=*x C. p=&x D. *p=x 若有定义struct sk{int a;float b}data; int *p;若要使p指向data中的成员a,正确 的赋值语句为_______________ A.p=&a; B.p=data.a; C.p=&data.a; D.*p=data.a C语言程序语句的分割符,也就是一条语句的结束符是( )。 A.逗号 B.句号 C.分号 D.括号 字符型变量输入、输出的格式是( )。 A.%d b.%f C.%c d.%s 下面求梯形面积的C语句中变量a,b,h,s是float型,不正确的是( )。 a.s=1/2*(a+b)*h B.s=1.0/2*(a+b)*h C.s=1/2.0*(a+b)*h D.s=(a+b)*h/2 While和do/while二种循环语句可能的最少的循环次数分别是( )。 A.0次和0次 B.0次和1次 C.1次和0次 D.1次和1次 说明char a[10]中定义了( )。 A.a[1]至a[10]共10个变量 B.a[1]至a[9]共9个变量 C.a[0]至a[10]共11个变量 D.a[0]至a[9]共10个变量 计算机程序设计基础(C语言) 程序填空练习题 程序填空:阅读程序。在划线处填写适当的表达式或语句,使程序完整并符合题目要求 1.输入一个字符,判断该字符是数字、字母、空格还是其他字符。 main( ) 参考答案: { char ch; ch=getchar(); if( ) ch>='a'&&ch<='z'|| ch>='A'&&ch<='Z' printf("It is an English character\n"); else if( ) ch>='0'&&ch<='9' printf("It is a digit character\n"); else if( ) ch==' ' printf("It is a space character\n"); else printf("It is other character\n"); } 2.10个学生成绩按交换法排序。 main() { float score[10], temp1; int i, j; printf("Please enter score:\n"); for (i=0; i<10; i++) scanf("%f",&score[i]); for (i=0; i<9; i++) for (j=i+1; j<10; j++) if (score[j] > score[i]) { temp1=score[j]; score[j]=score[i]; score[i]=temp1; } printf("Sorted results:\n"); for (i=0; i<10; i++) printf("%4.0f\n", score[i]); } 11.排序函数:用交换法按成绩由高到低对学生成绩重新排序 void Sort(float score[ ],int n) { int i, j; float temp1; for (i=0; i大学C语言考试试题及答案
C语言常见复习题(选择填空)及参考答案
大学c语言考试题库含答案
C语言题库(填空题部分)
2020最新C语言考试题库及答案
C语言填空题
C语言考试试题
C语言填空题以及答案
c语言程序填空题完整
c语言考试题
C语言填空题
C语言考试试题基础版
c语言经典选择填空题1
c语言填空题题库
C语言考试题及答案
c语言考试试题
C语言考试填空题(全部答案)