C语言程序设计试题库 第一套试题 一、单项选择题(15个小题,每题2分,共30分): 1.一个C语言程序的执行是从一。 A.main函数开始,直到main函数结束 B.第一个函数开始,直到最后一个函数结束 C.第一个函数开始,直到最后一个语句结束 D.main函数开始,直到最后一个函数结束 2.正确的自定义标识符是。 A.x_2 B.a-b C.2sum D.$123 3.下面程序的运行结果是一。 #define F(x)x*x void main() int a=2,b=1; prinft(“%dn”,F(a+b): } A.3B.5C.8D.9 4.读以下程序段,判断a的值为一。 int抑,a=l0,b=l: p=&a; a=p+b; A.12B.10C.11D.编译出错 5.根据以下说明语句,则下面的叙述中不正确的是一。 struct student int num; char name[10] int score: }stu: A.struct是定义结构体类型的关键字 B.stu是结构体变量名 C.num,name,score都是结构体成员名 D.stu是结构体类型名 6.己知字母A的ASCII码为十进制数65,变量chl为字符型,则执行语句chl=‘A'+‘5'-2': 后,ch1中的值是。 A.DB.67C.一个不确定的值D.C 7.以下哪种方法不能对一维数组进行正确的初始化一· A.inta[]={l,2,3}:B.inta[5]={}: C.inta[5]=(1,2,3,4,5):D.inta[]={2,3,4*5,6}: 8.已正确定义字符变量ch1,下面能正确赋值的是一。 A.chl=“a”;B.chl=‘a'; C.chl=“C语言程序设计”:D.chl=‘C语言程序设计’: 9.逗号表达式(a=3*4,a*4),a+5的值是一
C 语言程序设计 试题库 第一套试题 一、单项选择题(15 个小题,每题 2 分,共 30 分): 1.一个 C 语言程序的执行是从_____。 A.main 函数开始,直到 main 函数结束 B.第一个函数开始,直到最后一个函数结束 C.第一个函数开始,直到最后一个语句结束 D.main 函数开始,直到最后一个函数结束 2. 正确的自定义标识符是_____。 A.x_2 B.a-b C.2sum D.$123 3.下面程序的运行结果是_____。 #define F(x) x*x void main( ) { int a=2,b=1; prinft(“%d\n”,F(a+b)); } A.3 B.5 C.8 D.9 4.读以下程序段,判断 a 的值为_____。 int *p,a=10,b=1; p=&a; a=*p+b; A.12 B.10 C.11 D.编译出错 5.根据以下说明语句,则下面的叙述中不正确的是_____。 struct student { int num; char name[10]; int score; }stu; A.struct 是定义结构体类型的关键字 B.stu 是结构体变量名 C.num, name, score 都是结构体成员名 D.stu 是结构体类型名 6.已知字母 A 的 ASCII 码为十进制数 65,变量 ch1 为字符型,则执行语句 ch1=‘A’+‘5’-‘2’; 后,ch1 中的值是_____。 A.D B.67 C.一个不确定的值 D.C 7.以下哪种方法不能对一维数组进行正确的初始化_____。 A.int a[ ]={1,2,3}; B.int a[5]={ }; C.int a[5]=(1,2,3,4,5); D.int a[ ]={2,3,4*5,6}; 8.已正确定义字符变量 ch1,下面能正确赋值的是_____。 A.ch1=“a”; B.ch1=‘a’; C.ch1=“C 语言程序设计”; D.ch1=‘ C 语言程序设计’; 9.逗号表达式 (a=3*4,a*4),a+5 的值是_____
A.53B.17C.20D.48 l0.设n为float型,m为int型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍 五入的表达式是 A.n=(n*100+0.5)/100.0B.n=n*100+0.5/100.0 C.m=m*100+0.5,n=m/100.0D.n=(n/100+0.5)*100.0 11.设=2,j3,则表达式(i+)*(+j)的值为 A.6B.8C.9D.12 12.关于以下程序段,说法正确的是一。 X=-1: do x=x*x:)while(!x) A.死循环B.循环体执行二次C.循环体执行一次D.有语法错误 13.若有下列定义:char c[5],*p=c;则对c数组元素地址的正确引用是一。 A.p+2B.&c[5]C.c+D.&c 14.当调用函数时,实参是一个数组名,则向函数传送的是一。 A.数组的长度B.数组每个元素中的值 C.数组每一个元素的地址D.数组的首地址 l5.文件中利用fopen函数打开文件,如果以只读方式打开二进制文件,则以下打开方式正确的是 A.r+B.rb C.wb D.ab 二、填空题(5个小题,每题2分,共10分): 1.若有inti=l,j7,a:执行语句a=i+(j%4!=0):后,a的值是_。 2.执行以下程序后,运行结果是。 #include<stdio.h> void main() int a,b; for (a=1,b=1;a<=100;a++) if(b>=10)break; if(b%3==1)b+=3;continue; } printf(“%d\n”,a):} 3.源程序中用到了strcat函数,需要包含的头文件(即库文件)为。 4.执行以下程序后,运行结果是 #include<stdio.h> void main() int a=2; f1oatn=5.888,b; b=a+(int)n; printf(“%f\n”,b):} 5.语句scanf(“a=%d,b=%d",&a,&b):若将3和4分别输入给a和b,则正确的输入方式为<CR)。 三、程序分析题,写出程序的运行结果(5个小题,每题4分,共20分): 1.#include<stdio.h> void main() {intx=l,y=0,a=0,b=0:
A.53 B.17 C.20 D.48 10.设 n 为 float 型,m 为 int 型,则以下能实现将 n 中的数值保留小数点后两位,第三位进行四舍 五入的表达式是_____。 A.n=(n*100+0.5)/100.0 B.n=n*100+0.5/100.0 C.m=n*100+0.5,n=m/100.0 D.n=(n/100+0.5)*100.0 11.设 i=2,j=3,则表达式(i++)*(++j)的值为_____。 A.6 B.8 C.9 D.12 12.关于以下程序段,说法正确的是_____。 x=-1; do { x=x*x; }while(!x); A.死循环 B.循环体执行二次 C.循环体执行一次 D.有语法错误 13.若有下列定义:char c[5],*p=c; 则对 c 数组元素地址的正确引用是_____。 A.p+2 B.&c[5] C.c++ D.&c 14.当调用函数时,实参是一个数组名,则向函数传送的是_____。 A.数组的长度 B.数组每个元素中的值 C.数组每一个元素的地址 D.数组的首地址 15.文件中利用 fopen 函数打开文件,如果以只读方式打开二进制文件,则以下打开方式正确的是 _____。 A.r+ B.rb C.wb D.ab 二、填空题(5 个小题,每题 2 分,共 10 分): 1.若有 int i=1,j=7,a; 执行语句 a=i+(j%4!=0); 后,a 的值是_______。 2.执行以下程序后,运行结果是_______。 #include<stdio.h> void main( ) { int a,b; for(a=1,b=1;a<=100;a++) { if(b>=10) break; if(b%3==1) { b+=3; continue; } } printf(“%d\n”,a);} 3.源程序中用到了 strcat 函数,需要包含的头文件(即库文件)为_______。 4.执行以下程序后,运行结果是_______。 #include<stdio.h> void main( ) { int a=2; float n=5.888,b; b=a+(int)n; printf(“%f\n”,b);} 5.语句 scanf("a=%d,b=%d",&a,&b); 若将 3 和 4 分别输入给 a 和 b,则正确的输入方式为____ <CR>。 三、程序分析题,写出程序的运行结果(5 个小题,每题 4 分,共 20 分): 1.#include<stdio.h> void main( ) { int x=1,y=0,a=0,b=0;
switch (x) case 1:switch(y) case 0:a++:break; case 1:b++;break: } case 2:a++;b++;break; printf(“a=%d,b=%d\n”,a,b);} 2.在运行以下程序时,输入“Turbo C+3.0”,写出程序的运行结果。 #include<stdio.h> void main() char str[40]; printf("Input a string:"): scanf("%s",str): puts(str);} 3.#include<stdio.h> void f(int y) static int i=5: int j=3; j++: printf(“%d+%d+%d=%dn”,i,j,y,i+jty); i*=2:} void main() int x; for(x=1:x<=2:+x)f(x):} 4.#include<stdio.h> void swap(int *pa,int *pb) {int知: p=pa: pa=pb: pb=p:} void main() {inta=10,b=20: int抑l=&a,*p2=&b: if(a<b)swap(pl,p2); printf("%d,%d\n",a,b) 5.#include<stdio.h> int a=5;int b=7; int plus(int x,int y) int z; z=x+y; return (z);} void main() int a=4,b=5,c; c=plus (a,b);
switch(x) { case 1: switch(y) { case 0: a++; break; case 1: b++; break; } case 2: a++; b++; break;} printf(“a=%d,b=%d\n”,a,b);} 2.在运行以下程序时,输入“Turbo C++ 3.0”,写出程序的运行结果。 #include<stdio.h> void main( ) { char str[40]; printf("Input a string:"); scanf("%s",str); puts(str);} 3.#include<stdio.h> void f(int y) { static int i=5; int j=3; j++; printf(“%d+%d+%d=%d\n”,i,j,y,i+j+y); i*=2;} void main( ) { int x; for(x=1;x<=2;++x) f(x);} 4.#include<stdio.h> void swap(int *pa,int *pb) { int *p; p=pa; pa=pb; pb=p; } void main( ) { int a=10,b=20; int *p1=&a,*p2=&b; if(a<b) swap(p1,p2); printf("%d,%d\n",a,b); } 5.#include<stdio.h> int a=5; int b=7; int plus(int x,int y) { int z; z=x+y; return (z);} void main( ) { int a=4,b=5,c; c=plus(a,b);
printf(“atb=%d\n”,c);} 四、程序填空题,将下面程序补充完整(10个填空,每空2分,共20分): 1.输出九九表。 #include“stdio.h” void main() int i,j; for(i=1;i<=9;i++) {for(j=1:①:j+) printf(“%3d*%d-%2d”,i,j,i*j): ②: } } 2.利用函数形式,求x数组所有元素的平均值并输出。 #include“stdio.h” ①: void main() {f1 oat avg,x[10]={1.2,3.6,4.5,5.1,6.9,7,8,9,10.5,11.3}: avg=average (x): printf(“The average is%5.2f\n”,avg): } float average(float a[l0]) int i; float sum=0; for(i=0;i<10;i++)sum=sumta[i] ②: } 3.编写一个计算字符串长度的函数length. #include“stdio.h void main() char str[20]: int m: int length(char *p); printf("Input a string:\n"); gets(str): ①: printf("In the length of str is%d "m): } int length(char *p) int n=0; while(②){nt+:pt+:} return n:} 4.输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。 #include“stdio.h" void main()
printf(“a+b=%d\n”,c); } 四、程序填空题,将下面程序补充完整(10 个填空,每空 2 分,共 20 分): 1.输出九九表。 #include “stdio.h” void main( ) { int i,j; for(i=1;i<=9;i++) {for(j=1; ① ;j++) printf(“%3d*%d=%2d”,i,j,i*j); ② ; } } 2.利用函数形式,求 x 数组所有元素的平均值并输出。 #include “stdio.h” ① ; void main( ) { float avg,x[10]={1.2,3.6,4.5,5.1,6.9,7,8,9,10.5,11.3}; avg=average(x); printf(“The average is %5.2f\n”,avg); } float average(float a[10]) { int i; float sum=0; for(i=0;i<10;i++) sum=sum+a[i]; ② ; } 3.编写一个计算字符串长度的函数 length。 #include “stdio.h” void main( ) { char str[20]; int m; int length(char *p); printf("Input a string:\n"); gets(str); ① ; printf("\n the length of str is%d ",m); } int length(char *p) { int n=0; while( ② ) { n++; p++; } return n;} 4.输入 10 个整数,按每行 3 个数输出这些整数,最后输出 10 个整数的平均值。 #include “stdio.h” void main( )
int i,n=10,a[l0]; float avg=0; for(i=0;i<n;i++) scanf(“%d”,&a[i]): for(i=0:i<n:i+)) {if(①)printf(“\n”): printf(“%d”,a[i]): for(i=0;i<n:i++) ②: avg=avg/n: printf(“average=%f\n”,avg): } 5.将字符数组中大写字符改为小写字符,将小写字符改为大写字符,利用指针完成。 #include“stdio.h” void main() char str[30]="Welcome to C Language",*cp=str; while(*cp) {if(*cp>=‘A'&*cp<=Z') ①: else if(*cp>=‘a'&cp<=‘z') *cp=*cp-32; ②: puts(str): } 五、程序设计题(3个小题,共20分): 1.设三个整型变量a,b,c,编写程序为a,b,c输入数据,并要求a,b,c按由小到大排序后输出。(5分) 2.学生成绩可分为五分制与百分制,编程将百分制转换为五分制输出。(5分) 3.编写排序函数sort(inta[]),实现对数组a中的元素进行排序,并利用该函数,从键盘输入若 干个数(如10个)将其按升序排列。(10分) 第一套试题 一、单项选择题(15个小题,每题2分,共30分): 1-5:AABCD 6-10:ACBBC 11-15:BCADB 二、填空题(5个小题,每题2分,共10分): 1.2 2.4 3.string.h 4.7.0000005.a=3,b=4 三、程序分析题,写出程序的运行结果(5个小题,每题4分,共20分): 1.a=2,b=l2.Turbo3.5+4+1=10 4.10,205.a+b=910+4+2=16 四、程序填空题,将下面程序补充完整(10个填空,每空2分,共20分): l.①j=i②printf(“\n”) 2.Ofloat average(float a[10])float average(float a[]
{ int i,n=10,a[10]; float avg=0; for(i=0;i<n;i++) scanf(“%d”,&a[i]); for(i=0;i<n;i++) { if( ① ) printf(“\n”); printf(“%d ”,a[i]); } for(i=0;i<n;i++) ② ; avg=avg/n; printf(“average=%f\n”,avg); } 5.将字符数组中大写字符改为小写字符,将小写字符改为大写字符,利用指针完成。 #include “stdio.h” void main( ) { char str[30]=“Welcome to C Language”,*cp=str; while(*cp) { if(*cp>=‘A’&&*cp<=‘Z’) ① ; else if(*cp>=‘a’&&*cp<=‘z’) *cp=*cp-32; ② ; } puts(str); } 五、程序设计题(3 个小题,共 20 分): 1.设三个整型变量 a,b,c,编写程序为 a,b,c 输入数据,并要求 a,b,c 按由小到大排序后输出。(5 分) 2.学生成绩可分为五分制与百分制,编程将百分制转换为五分制输出。(5 分) 3.编写排序函数 sort(int a[ ]),实现对数组 a 中的元素进行排序,并利用该函数,从键盘输入若 干个数(如 10 个)将其按升序排列。(10 分) 第一套试题 一、单项选择题(15 个小题,每题 2 分,共 30 分): 1-5:AABCD 6-10:ACBBC 11-15:BCADB 二、填空题(5 个小题,每题 2 分,共 10 分): 1.2 2.4 3.string.h 4.7.000000 5.a=3,b=4 三、程序分析题,写出程序的运行结果(5 个小题,每题 4 分,共 20 分): 1.a=2,b=1 2.Turbo 3.5+4+1=10 4.10,20 5.a+b=9 10+4+2=16 四、程序填空题,将下面程序补充完整(10 个填空,每空 2 分,共 20 分): 1.①j<=i ②printf(“\n”) 2.①float average(float a[10]) 或 float average(float a[ ])