《C语言程序设计》试题一
一、填空题
1、C语言中基本的数据类型有: 、 、 。
2、C语言中普通整型变量的类型说明符为 ,在内存中占 字节,有符号普通整型的数据范围是 。
3、整数-35在机内的补码表示为 。
4、执行下列语句int a=8; a+=a-=a*a; 后,a的值是 。
5、有如下语句:char A[ ]={”I am a student”}; 该字符串的长度是 ,A[3]= 。
6、符号”a”和’a’的区别是 。
7、所谓“指针”就是 。
“&”运算符的作用是 。
“*”运算符的作用是 。
8、有如下输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是 。
二、选择题
1、设整型变量a为5,使b不为2的表达式是( )。
A. b=a/2 B. b=6-(--a) C. b=a%2 D. b=a>3?2:1
2、为了避免嵌套的条件分支语句if-else的二义性,C语言规定:C程序中的else总是与( )组成配对关系。
A. 缩排位置相同的if B. 在其之前未配对的if
C. 在其之前未配对的最近的if D.同一行上的if
3、以下程序的输出结果是( )。
int x=10,y=10;
printf(“%d %d\n”,x--,--y);
A. 10 10 B. 9 9 C. 9 10 D. 10 9
4、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i 个元素的地址为( )。
A.P+i*2 B. P+(i-1)*2 C. P+(i-1) D. P+i
5、选出下列标识符中不是合法的标识符的是( )。
A. hot_do B. cat1 C. _pri D. 2ab
6、以下程序的输出结果是( )。
int a=5;
float x=3.14;
a*=x*(‘E’ - ‘A’);
printf(“%f\n”,(float)a);
A. 62.000000 B. 62.800000 C. 63.000000 D. 62
7、设有说明double(*p1)[N];其中标识符p1是( )。
A. N个指向double型变量的指针。
B. 指向N个double型变量的函数指针。
C. 一个指向由N个double型元素组成的一维数组的指针。
D. 具有N个指针元素的一维指针数组,每个元素都只能指向double型量。
8、在C程序中有如下语句:char *func(int x,int y); 它是( )。
A. 对函数func的定义。 B. 对函数func的调用。
C.对函数func的原型说明。 D. 不合法的。
9、以下程序的输出结果是( )。
char str[15]=”hello!”;
printf(“%d\n”,strlen(str));
A. 15 B. 14 C. 7 D. 6
10、分析以下程序的输出结果是( )。
main()
{int a=5,b=-1,c;
c=adds(a,b);
printf(“%d”,c);
c=adds(a,b);
printf(“%d\n”,c); }
int adds(int x,int y)
{static int m=0,n=3;
n*=++m;
m=n%x+y++;
return(m); }
A. 2,3 B. 2,2 C. 3,2 D. 2,4
11、下列描述中不正确的是( )。
A. 字符型数组中可能存放字符串。
B. 可以对字符型数组进行整体输入、输出。
C. 可以对整型数组进行整体输入、输出。
D. 不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。
12、以下程序的输出结果是( )。
#define f(x) x*x
main()
{int a=6,b=2,c;
c=f(a)/f(b);
printf(“%d\n”,c);
}
A. 9 B. 6 C. 36 D. 18
13、设有如下定义: int x=10,y=3,z;
则语句printf("%d\n",z=(x%y,x/y)); 的输出结果是( )。
A. 1 B. 0 C. 4 D. 3
14、定义如下变量和数组:int i; int x[3][3]={1,2,3,4,5,6,7,8,9};
则语句for(i=0;i<3;i++) printf("%d ",x[i][2-i]); 的输出结果是( )。
A. 1 5 9 B. 1 4 7 C. 3 5 7 D. 3 6 9
15、以下对二维数组a进行正确初始化的是( )
A. int a[2][3]={{1,2},{3,4},{5,6}}; B. int a[ ][3]={1,2,3,4,5,6};
C. int a[2][ ]={1,2,3,4,5,6}; D. int a[2][ ]={{1,2},{3,4}};
16、两次运行下面的程序,如果从键盘上分别输入6和3,则输出结果是( )。
int x;
scanf("%d",&x);
if(x++>5) printf("%d",x);
else printf("%d\n",x - -);
A. 7和5 B. 6和3 C. 7和4 D. 6和4
17、设有如下定义: char *aa[2]={"abcd","ABCD"}; 则以下说法中正确的是( )。
A)aa数组成元素的值分别是"abcd"和ABCD"
B)aa是指针变量,它指向含有两个数组元素的字符型一维数组
C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址
D)aa数组的两个元素中各自存放了字符'a'和'A'的地址
18、下列程序的输出结果是( )。
char *p1="abcd", *p2="ABCD", str[50]="xyz";
strcpy(str+2,strcat(p1+2,p2+1));
printf("%s",str);
A. xyabcAB B. abcABz C. ABabcz D. xycdBCD
19、下列程序的输出结果是( )。
int a[5]={2,4,6,8,10},*P,* *k;
p=a; k=&p;
printf("%d",*(p++));
printf("%d\n",* *k);
A. 4 4 B. 2 2 C. 2 4 D. 4 6
20、不能把字符串:Hello!赋给数组b的语句是( )。
A. char b[10]={'H','e','l','l','o','!'}; B. char b[10]; b="Hello!";
C. char b[10]; strcpy(b,"Hello!"); D. char b[10]="Hello!";
三、读程序题
1、float f=3.1415927;
printf(“%f,%5.4f,%3.3f”,f,f,f);
则程序的输出结果是 。
2、int x=6, y=7;
printf(“%d,”,x++);
printf(“%d\n”,++y);
程序的输出结果是 。
3、a=3;
a+=(a<1)?a:1;
printf(“%d”,a);
结果是 。
4、for (a=1,b=1;a<=100;a++)
{ if(b>=20) break;
if(b%3==1)
{b+=3; continue;}
b-=5; }
程序的输出结果a的值为 。
5、 int y=1, x, *p, a[ ]={2,4,6,8,10};
p=&a[1];
for(x=0;x<3;x++)
y + = * (p + x);
printf("%d\n",y);
程序的输出结果y的值是 。
四、程序填空题
1、从键盘上输入10个数,求其平均值。
main()
{int i;
float f,sum;
for(i=1,sum=0.0;i<11;i++)
{ ;
; }
printf(“average=%f\n”,sum/10); }
2、以下程序是建立一个名为myfile的文件,并把从键盘输入的字符存入该文件,当键盘上输入结束时关闭该文件。
#include <stdio.h>
main()
{ FILE *fp;
char c;
fp= ;
do{
c=getchar();
fputs(c,fp);
}while(c!=EOF);
}
3、以下程序的功能是:从键盘上输入若干个学生的成绩, 统计并输出最高成绩和最低成绩,当输入负数时结束输入.请填空.
main()
{ float x,amax,amin;
scanf("%f",&x);
amax=x; amin=x;
while( )
{ if(x>amax) amax=x;
if( ) amin=x;
scanf("%f",&x); }
printf("\namax=%f\namin=%f\n",amax,amin); }
五、编程题
1.三个整数a、b、c,由键盘输入,输出其中最大的一个数。
2.输出1900~2000年中所有的闰年。每输出3个年号换一行。(判断闰年的条件为下面二者之一:能被4整除,但不能被100整除。或者能被400整除。)
3.请编一个函数int fun(int a),它的功能是:判断a是否是素数,若a是素数,返回1;若不是素数,返回0。A的值由主函数从键盘读入。
4.有N个学生,每个学生的信息包括学号、性别、姓名、四门课的成绩,从键盘上输入N个学生的信息,要求输出总平均成绩最高的学生信息,包括学号、性别、姓名和平均成绩。
《C语言程序设计》试题一答案
一、填空题
(1)整型、实型、字符型。 (2) int , 2 , -32768~ +32767
(3) 1111111111011101 (4) - 112 (5)14,’m’
(6) ”a”是字符串常量,而’a’是字符常量。
(7) 存放地址值的变量或常量,或者答地址。
(8)取运算对象的地址。 取指针变量所指的内容。 (9) a=1,b=3,c=2
二、选择题
1、C 2、C 3、D 4、B 5、D
6、A 7、C 8、C 9、D 10、A
11、C 12、C 13、D 14、C 15、B
16、C 17、D 18、D 19、C 20、B
三、阅读程序题
(1) 3.141593,3.1416,3.142 (2) 6,8 (3) 4 (4) 22 (5) 19
四、程序填空题
1、scanf(“%f”,&f); sum+=f;
2、fopen(“myfile”,w) fclose(fp);
3、x>=0.0 x<=amin
五、编程题
1、main()
{int a,b,c;
printf(“请输入三个整数:”);
scanf(“%d,%d,%d”,&a,&b,&c);
if(a<b)
if(b<c) printf(“max=%d\n”,c);
else printf(“max=%d\n”,b);
else if(a<c) printf(“max=%d\n”,c);
else printf(“max=%d\n”,a); }
2、#include”stdio.h”
main()
{int I,n;
for(n=0,I=1900;I<=2000;I++)
{if(I%4==0&&I%100!=0||I%400==0)
{printf(“%d ”,I); n++; }
if(n%3==0)
printf(“\n”); } } }
3、#include”stdio.h”
int fun(int a)
{int I;
if(a==2) return 1; I=2;
while((a%I)!=0&&I<=sqrt((float)a))
I++;
if(a%I==0)
{printf(“%d is not a prime!”,a);
return 0; }
printf(“%d is a prime!”,a);
return 1; }
main()
{int x;
printf(“\n please enter a number:”);
scanf(“%d”,&x);
printf(“%d\n”,fun(x)); }
4、#include"stdio.h"
#define N 3
struct student
{long stu_num; char sex;
char name[15]; int score[4];
float average; };
main()
{int I,j,index; float sum,max;
struct student stuarr[N];
for(I=0;I<N;I++)
{printf("please input %d student information:\n",I+1);
scanf("%ld,%c,%s",&stuarr[I].stu_num,&stuarr[I].sex,stuarr[I].name);
for(j=0;j<4;j++)
scanf("%d",&stuarr[I].score[j]); }
for(I=0;I<N;I++)
{sum=0.0;
for(j=0;j<4;j++)
sum+=stuarr[I].score[j];
stuarr[I].average=sum/4.0; }
max=stuarr[0].average;
index=0;
for(I=1;I<N;I++)
if(stuarr[I].average>max)
{max=stuarr[I].average;
index=I; }
printf("总平均成绩最高的学生信息是学号=%ld,性别=%c,姓名=%s,平均成绩=%4.1f\n",stuarr[index].stu_num,stuarr[index].sex,stuarr[index].name,stuarr[index].average);
《C语言程序设计》试题二 1
一、填空题 1
二、选择题 2
三、阅读程序题 4
四、程序填空题 5
五、编程题 7
《C语言程序设计》试题二答案 8
《C语言程序设计》试题二
一、填空题
1、C语言中普通整型变量的类型说明符为 ,在内存中占 字节,有符号普通整型的数据范围是 。
2、C语言中基本的数据类型有: 、 、 。
3、设整型变量n的值为2,执行语句“n+=n-=n*n”后,n的值是 。
4、共用体和结构体的定义格式类似,不同点是 。
5、有如下输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是 。
6、有语句:char A[ ]={”I am a student”};该字符串的长度是 ,A[3]= 。
7、符号”a”和’a’的区别 。
8、下列程序的输出结果是 。
int ast(int x,int y,int * cp,int * dp)
{ *cp=x+y; *dp=x-y; }
main()
{ int a=4,b=3,c,d;
ast(a,b,&c,&d);
printf("%d,%d/n",c,d); }
二、选择题
1、以下选项中属于C语言的数据类型是( )。
A. 复合型 B. 双精度型 C. 逻辑型 D. 集合型
2、以下说法中正确的是( )。
A. C语言程序总是从第一个的函数开始执行
B. 在C语言程序中,要调用的函数必须在main()函数中定义
C. C语言程序总是从main()函数开始执行
D. C语言程序中的main()函数必须放在程序的开始部分
3、选出下列标识符中不是合法的标识符的是( )。
A. hot_do B. cat1 C. _pri D. 2ab
4、下列描述中不正确的是( )。
A.字符型数组中可能存放字符串。
B.可以对字符型数组进行整体输入、输出。
C.可以对整型数组进行整体输入、输出。
D.不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。
5、若已定义:int a[9], *p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式为( )。
A. p+1 B. a+1 C. a++ D. ++p
6、设有如下定义: int x=10,y=3,z;
则语句printf("%d\n",z=(x%y,x/y)); 的输出结果是( )。
A. 1 B. 0 C. 4 D. 3
7、定义如下变量和数组: int i, x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句
for(i=0;i<3;i++) printf("%d",x[i][2-i]); 的输出结果是( )
A. 1 5 9 B. 1 4 7 C. 3 5 7 D. 3 6 9
8、读出以下语句的输出结果是( )。
int x=10,y=10;
printf(“%d %d\n”,x--,--y);
A. 10 10 B. 9 9 C. 9 10 D. 10 9
9、两次运行下面的程序,如果从键盘上分别输入6和3,则输出结果是( )。
if(x++>5) printf("%d",x);
else printf("%d\n",x - -);
A. 7和5 B. 6和3 C. 7和4 D. 6和4
10、设有如下定义:char *aa[2]={"abcd","ABCD"};则以下说法中正确的是( )。
A)aa数组成元素的值分别是"abcd"和ABCD"
B)aa是指针变量,它指向含有两个数组元素的字符型一维数组
C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址
D)aa数组的两个元素中各自存放了字符'a'和'A'的地址
11、以下语句的输出结果是( )。
int a=-1,b=4,k;
k=(+ +a<0)&&!(b - -<=0);
printf("%d,%d,%d\n",k,a,b);
A. 1,0,4 B. 1,0,3 C. 0,0,3 D. 0,0,4
12、下列程序的输出结果是( )。
char *p1="abcd", *p2="ABCD", str[50]="xyz";
strcpy(str+2,strcat(p1+2,p2+1));
printf("%s",str);
A. xyabcAB B. abcABz C. ABabcz D. xycdBCD
13、执行下面的程序后,a的值是( )。
#define SQR(X) X*X
main( )
{ int a=10,k=2,m=1;
a/=SQR(k+m)/SQR(k+m);
printf("%d\n",a); }
A. 10 B. 1 C. 9 D. 0
14、14、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i 个元素的地址为( )。
A.P+i*2 B. P+(i-1)*2 C. P+(i-1) D. P+i
15、下列程序执行后输出的结果是( )。
int d=1;
fun (int p)
{ int d=5;
d + =p + +;
printf("%d,",d); }
main( )
{ int a=3;
fun(a);
d + = a + +;
printf("%d\n",d); }
A. 8, 4 B. 9, 6 C. 9, 4 D. 8, 5
16、表达式:10!=9的值是( )。
A. true B. 非零值 C. 0 D. 1
17、若有说明: int i,j=7, *p=&i;, 则与i=j; 等价的语句是( )。
A. i= *p; B. *p=*&j; C. i=&j; D. i=* *p;
18、不能把字符串:Hello!赋给数组b的语句是( )。
A. char b[10]={'H','e','l','l','o','!'}; B. char b[10]; b="Hello!";
C. char b[10]; strcpy(b,"Hello!"); D.char b[10]="Hello!";
19、在C程序中有如下语句:char *func(int x,int y); 它是( )。
A. 对函数func的定义。 B. 对函数func的调用。
C.对函数func的原型说明。 D. 不合法的。
20、以下程序的输出结果是( )。
char str[15]=”hello!”;
printf(“%d\n”,strlen(str));
A. 15 B. 14 C. 7 D. 6
三、阅读程序题
1、int x=6, y=7;
printf(“%d,”,x++); printf(“%d\n”,++y);
程序的输出结果是 。
2、float f=3.1415927;
printf(“%f,%5.4f,%3.3f”,f,f,f);
则程序的输出结果是 。
3、a=3;
a+=(a<1)?a:1; printf(“%d”,a);
结果是 。
4、main( )
{ int a[5]={2,4,6,8,10},*P,* *k;
p=a; k=&p;
printf("%d,",*(p++));
printf("%d\n",* *k); }
程序的输出结果是 。
5、 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; } }
程序的输出结果a的值为 。
四、程序填空题
1、求主次对角线之和。
main()
{static int a[ ][3]={9,7,5,1,2,4,6,8};
int I,j,s1=0,s2=0;
for(I=0;I<3;I++)
for(j=0;j<3;j++)
{if( )
s1=s1+a[I][j];
if( )
s2=s2+a[I][j];
}
printf(“%d\n%d\n”,s1,s2);
}
2、从键盘上输入10个数,求其平均值。
main()
{int i;
float f,sum;
for(i=1,sum=0.0;i<11;i++)
{ ;
;
}
printf(“average=%f\n”,sum/10);
}
2 3、以下程序是建立一个名为myfile的文件,并把从键盘输入的字符存入该文件,当键盘上输入结束时关闭该文件。
#include <stdio.h>
main()
{
FILE *fp;
char c;
fp= ;
do
{
c=getchar();
fputs(c,fp);
}while(c!=EOF);
; ;
}
五、编程题
1、三个整数a、b、c,由键盘输入,输出其中最大的数。
2、从键盘输入的10个整数中,找出第一个能被7整除的数。若找到,打印此数后退出循环;若未找到,打印“not exist”。
3、有一个一维数组,内放10个学生成绩,写一个函数,求出平均分。
4、有N个学生,每个学生的信息包括学号、性别、姓名、四门课的成绩,从键盘上输入N个学生的信息,要求输出总平均成绩最高的学生信息,包括学号、性别、姓名和平均成绩。
《C语言程序设计》试题二答案
一、填空题
1、int ,2个字节,-32768~ +32767 。
2、整型、实型、字符型。 3、- 4。
4 4、结构体的成员占有各自不同的空间,而共用体的各成员放到同一存储空间。
5、a=1,b=3,c=2
7、”a”是字符串常量,而’a’是字符常量。 8、7,1 。
二、选择题
1、B 2、C 3、D 4、C 5、C
6、D 7、C 8、D 9、C 10、D
11、D 12、D 13、B 14、B 15、A
16、D 17、B 18、B 19、C 20、D
三、阅读程序题
(1) 6,8 (2) 3.141593,3.1416,3.142 (3) 4 (4) 2,4 (5) 8
四、程序填空题
1、I==j I+j==2 2、scanf(“%f”,&f); sum+=f;
3、fopen(“myfile”,w) fclose(fp);
五、编程题
1、main()
{ int a,b,c;
printf(“请输入三个整数:”); scanf(“%d,%d,%d”,&a,&b,&c);
if(a<b)
if(b<c) printf(“max=%d\n”,c);
else printf(“max=%d\n”,b);
else if(a<c) printf(“max=%d\n”,c);
else printf(“max=%d\n”,a); }
2、#include”stdio.h”
main()
{ int I,a;
for(I=1;I<=10;I++)
{ scanf(“%d”,&a);
{ if(a%7==0)
printf(“%d”,a); break; } }
if(I==11)
printf(“not exist”); }
3、float average(float array[ ],int n)
{ int I;
float aver,sum=array[0];
for(I=1;I<n;I++)
sum=sum+array[I];
aver=sum/n;
return(aver); }
main()
{ float ave,score[10];
int I;
for(I=0;I<10;I++)
scanf("%f",&score[I]);
ave=average(score,10);
printf("%f\n",ave); }
4、 #include"stdio.h"
#define N 3
struct student
{ long stu_num;
char sex;
char name[15];
int score[4];
float average; };
main()
{ int I,j,index;
float sum,max;
struct student stuarr[N];
for(I=0;I<N;I++)
{ printf("please input %d student information:\n",I+1);
scanf("%ld,%c,%s",&stuarr[I].stu_num,&stuarr[I].sex,stuarr[I].name);
for(j=0;j<4;j++)
scanf("%d",&stuarr[I].score[j]); }
for(I=0;I<N;I++)
{ sum=0.0;
for(j=0;j<4;j++)
sum+=stuarr[I].score[j];
stuarr[I].average=sum/4.0; }
max=stuarr[0].average;
index=0;
for(I=1;I<N;I++)
if(stuarr[I].average>max)
{max=stuarr[I].average; index=I; }
printf("总平均成绩最高的学生信息是学号=%ld,性别=%c,姓名=%s,平均成绩=%4.1f\n",stuarr[index].stu_num,stuarr[index].sex,stuarr[index].name,stuarr[index].average); }
《C语言程序设计》试题三 1
一.单项选择题 1
二.判断题 3
三、填空 4
四、读出程序。 4
五.编程序 5
《C语言程序设计》试题三答案 7
《C语言程序设计》试题三
一.单项选择题
1. 设int x=1,y=1;表达式(!x++ || y--)的值是_________
A.0 B. 1 C. 2 D.-1
2.main( )
{ int n;
( n=6*4,n+6),n*2;
printf(“n=%d\n”,n);
} 此程序的输出结果是______________.
A.30 B. 24 C. 60 D. 48
3.若有如下定义,则__________是对数组元素的正确的引用。
int a[10] , *p ;
p=a ; p=a ; p=a ; p=a ;
A. *&a[10] B. a[11] C. *(p+10) D. *p
4.设整型变量n的值为2,执行语句“n+=n-=n*n;”后,n的值是__________
A. 0 B. 4 C. - 4 D. 2
5.以下不能正确定义二维数组的语句是___________
A . int a[2][2]={{1},{2}}; B. int a[][2]={1,2,3,4};
C. int a[2][2]={{1},2,3}; D. int a[2][]={{1,2},{3,4}};
6. 程序段 的功能是将变量 u 、s中的最大值赋给变量t 。
A. if(u>s) t=u;t=s; B. t=u; if(t ) t=s;
C. if(u>s) t=s;else t=u; D . t=s; if(u ) t=u;
7.下列程序段的输出结果是 。
void main()
{ int k;
for (k=1;k<5;k++〉
{ if(k%2!=0)
printf("#");
else
printf(“*”) ; }
}
A. #*#* B . *#*# C. ## D. 以上都不对
8.设变量定义为 int a[3]={1,4,7},*p=&a[2], 则*p的值是 (35) 。
A. &a[2] B. 4 C. 7 D. 1
9.能正确表示a和b同时为正或同时为负的逻辑表达式是_________。
A.a>=0||b>=0)&&(a<0 ||b<0) B.(a>=0 && b>=0)&&(a<0 && b<0)
C.(a+b>0) &&(a+b<=0) D. a*b>0
10.C语言中,合法的字符型常数是_________。
A.‘A’ B.“A” C. 65 D. A
11.设有数组定义:char array[]=”China”; 则数组所占的空间是________。
A.4个字节 B.5个字节 C.6个字节 D.7个字节
12.若变量c为char类型,能正确判断出c为小写字母的表达式是_______。
A.’a’<=c<=’z’ B. (c>=’a’) || (c<=’z’)
C.(‘a’<=c) and (‘z’>=c) D. (c>=’a’) && (c<=’z’)
13.设有定义:long x=-123456L; 则以下能够正确输出变量x值的语句是_______。
A.printf(“x=%d\n”,x) B.printf(“x=%ld\n”,x)
C.printf(“x=%8dl\n”,x) D.printf(“x=%LD\n”,x);
14.下列关于指针定义的描述,___________是错误的。
A.指针是一种变量,该变量用来存放某个变量的地址值的。
B.指针变量的类型与它所指向的变量类型一致。
C.指针变量的命名规则与标识符相同。
D.在定义指针时,标识符前的“*”号表示后面的指针变量所指向的内容。
15.已知:int x; int y[10]; 下列______是合法的。
A.&x B.&(x+3) C.&5 D .&y
16.指出下面正确的输入语句__________。
A. scanf(“a=b=%d”,&a,&b) ; B. scanf(“%d,%d”,&a,&b) ;
C. scanf(“%c”,c) ; D. scanf(“% f%d\n”,&f) ;
17.C语言中以追加方式打开一个文件应选择_______________参数。
A.“r” B.“w”
C.“rb” D.“a”
18.Break语句的正确的用法是( )。
A. 无论在任何情况下,都中断程序的执行,退出到系统下一层。
B. 在多重循环中,只能退出最靠近的那一层循环语句。
C. 跳出多重循环。
D. 只能修改控制变量。
19. 为表示关系x≥y≥z,应使用C语言表达式
A.(x>=y)&&(y>=z) B. (x>=y) AND (y>=z)
C.(x>=y>=z) D. (x>=z)&(y>=z)
20.以下可以作为C语言合法整数的是________。
A.1010B B. 0368 C.0Xffa D. x2a2
21.在函数中默认存储类型说明符的变量应该是________存储类型。
A.内部静态 B. 外部 C.自动 D. 寄存器
二.判断题
1. C 语言源程序文件通过了编译、连接之后 , 生成一个后缀为 .EXE 的文件。 ( )
2. 在 C 程序中 , 函数既可以嵌套定义 , 也可以嵌套调用。( )
3. 在 C 程序中, APH 和 aph 代表不同的变量。( )
4. 表达式 0195 是一个八进制整数。( )
5. 表达式 _ya是不合法的C语言标识符。( )
6. C程序总是从main( ) 函数的第一条语句开始执行的。 ( )
7. A-=7等价于a=a-7。 ( )
8. 利用fclose函数关闭已打开的文件。( )
9. 数组名可以作为参数进行传递。( )
10. 执行printf("%x",12345);, 输出 12345 。( )
三、填空
1.C语言的预处理语句以__________开头。
2.表达式7+8>2 && 25 %5的结果是_______________________。
3.下列程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。
int n=0, ch;
ch=getchar( );
while( __________________ )
{ if ( ________________ ) n++;
c=getchar( ); }
4.C语言中putchar(c ) 函数的功能是_________________________________。
5.int *p 的含义是___________________________________________。
6.定义fp为文件型指针变量的定义方法为_______________________。
7.数组 int a[3][4];共定义了____________个数组元素。
四、读出程序。
1. 改正下列程序中不正确的语句。
main()
{ int a=8 , b=1;
a=a+b;
b=a*b;
printf("%d, %d",a,b); }
2.写出下列程序的运行结果。
fun(int a, int b)
{ if(a>b) return (a);
Else return (b); }
main()
{ int x=3,y=8,z=6,r;
r=fun(fun(x,y),2*z);
printf(“%d\n”,r); }
3. 改正下列程序中不正确的语句。
main()
{ int n ;
float s=1.0;
for(n=10;n>1;n- -)
s=s+1/n;
printf(“%6.1f\n”,s); }
4. 写出下列程序的运行结果。
main()
{ int n;
For(n=3; n<=10; n++)
{ if(n%5= =0) break;
Printf(“%d”,n); } }
5.写出下列程序的运行结果。
#include “stdio.h”
main()
{ int a[]={1,2,3,-4,5};
int m,n,*p;
p=&a[0]; p=&a[0];
m=*(p+2);
n=*(p+4);
printf(“%d %d %d ”,*p,m,n); }
五.编程序
1.编程计算下列表达式:s=1!+2!+3!+4!+……+10!
2.从键盘上输入a与n的值,计算sum=a+aa+aaa+aaaa+……(共n项)的和。例a=2, n=4, 则sum=2+22+222+2222。
3.求3X3矩阵的主对角线元素之和。
4.从键盘上输入10个数存入一维数组中,求这10数中的最大值与最小值并输出。
5.从键盘上输入若干个字符存入文件write.txt中,遇到回车键输入结束。(用“\n”表示回车键)
《C语言程序设计》试题三答案
一.单项选择题
1 B 2B 3D 4C 5D 6C 7A 8C 9D 10A 11C 12D 13B 14D 15A 16B 17D 18B 19A 20C 21C
二.判断题
1√ 2Ⅹ 3√ 4Ⅹ 5Ⅹ 6√ 7√ 8√ 9√ 10Ⅹ
三、填空
1 #号 2 0 3 ch!=’\n’ ch>=’0’ && ch<=’9’
4 将变量c中的字符显示到屏幕上。 5 指针变量p为整型
6 FILE *fp 7 12
四、读出程序。
1 printf("%d, %d",&a,&b); 2 12
3 s=s+1.0/n
4. 3 4
5 1 3 5
五.编程序
1.
#include "stdio.h"
main()
{ long s=0,t=1;
int i;
for(i=1;i<=10;i++)
{ t=t*i;
s=s+t;
}
printf("%ld",s); }
2
#include "stdio.h"
main()
{ int a,n count=1,sn=0,tn=0;
scanf("%d %d",&a,&n);
while(count<=n)
{ tn=tn+a;
sn=sn+tn;
a=a*10;
++count; }
printf("%d",sn); }
3.
#include "stdio.h"
main()
{ int a[3][3],i,j,s=0;
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++)
if(i==j)
s=s+a[i][j];
printf("%d",s); }
4.
#include "stdio.h"
main()
{ int a[10],max,min;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
max=a[0];
for(i=1;i<10;i++)
if(a[i]>max)
max=a[i];
min=a[0];
for(i=1;i<10;i++)
if(a[i]<min)
min=a[i];
printf("%d %d",max,min); }
5.
#include "stdio.h"
main()
{ int c;
FILE *fp;
fp=open("write.txt","w");
c=getchar();
while(c!='\n')
{ fputc(c,fp);
c=getchar();
}
fclose(); }
《C语言程序设计》试题四 1
一.单项选择题 1
二.判断题 3
三.填空 3
四、读程序。 4
五.编程 5
《C语言程序设计》试题四答案 6
《C语言程序设计》试题四
一.单项选择题
1. 运算符___________的优先级最高。
A.[ ] B. += C. ?: D.++
2.main( )
{ int n; ( n=6*4,n+6),n*2; printf(“n=%d\n”,n); }
此程序的输出结果是______________.
A.30 B. 24 C. 60 D. 48
3.若有如下定义,则__________是对数组元素的正确的引用。.
int a[10] , *p ; p=a ;
A. *&a[10] B. a[11] C. *(p+11) D. *p *p *p
4.设整型变量n的值为2,执行语句“n+=n-=n*n;”后,n的值是__________
A. 0 B. 4 C. - 4 D. 2
5.各种基本数据类型的存贮空间正确的长度排列为__________。
A.Char<long<int<float<double B.Double<float<long<int<char
C.Char<int<long<float<double D.Float<int<long<char<double
6.下面的变量说明中_____________是正确的。
A.char:a, b, c; B.char a; b; c; C.char a, b, c; D.char a, b, c
7.表达式y=(13>12?15:6>7?8:9)的值为____________ 。
A 9 B 8 C 15 D. 1
8.若x=5,y=3 则y*=x+5; y的值为_______________.
A. 10 B. 20 C. 15 D. 30
9.能正确表示a和b同时为正或同时为负的逻辑表达式是_________。
A.a>=0||b>=0)&&(a<0 ||b<0) B.(a>=0 && b>=0)&&(a<0 && b<0)
C.(a+b>0) &&(a+b<=0) D. a*b>0
10.C语言中,合法的字符型常数是_________。
A.‘A’ B.“A” C. 65 D. A
11.已有定义 int x=3, y=4, z=5;则表达式“!(x+y)+z-1&&y+z/2”的值是________。
A.6 B.0 C.2 D.1
12.若变量c为char类型,能正确判断出c为小写字母的表达式是_______。
A.’a’<=c<=’z’ B. (c>=’a’) || (c<=’z’)
C.(‘a’<=c) and (‘z’>=c) D. (c>=’a’) && (c<=’z’)
13.设有定义:long x=-123456L; 则以下能够正确输出变量x值的语句是_______。
A.printf(“x=%d\n”,x) B.printf(“x=%ld\n”,x)
C.printf(“x=%8dl\n”,x) C.printf(“x=%D\n”,x);
14.从循环体内某一层跳出,继续执行循环外的语句是:___________。
A. break语句 B.return语句 C.continue语句 D.空语句。
15.C语言用_______表示逻辑“真”值。
A.true B.t或y C.非零整型值 D.整型值0
16.为了避免嵌套的条件分支语句if—else 的二义性,C语言规定:C程序中的else总是与_____组成配对关系。
A.缩排位置相同的if B.在其之前未配对的if
C.在其之前未配对的最近的if D.同一行上的if
17.在函数中默认存储类型说明符的变量应该是________存储类型。
A.内部静态 B. 外部 C.自动 D. 寄存器
18.C语言中以只读方式打开一个文件应选择_______________参数。
A.“r” B.“w” C.“rb” D.“a”
19.设有数组定义:char array[]=”student”;则数组所占的存贮空间为__________。
A.6个字节 B. 7个字节 C. 8个字节 D. 9个字节
20.根据C语言的语法规则,下列________个是不合法标识符。
A.do B. Name C. R5 D. _exam
二.判断题
1. C 语言源程序文件通过了编译、连接之后 , 生成一个后缀为 .EXE 的文件。 ( )
2.在 C 程序中 , 函数既可以嵌套定义 , 也可以嵌套调用。( )
3.在 C 程序中 ,APH 和 aph 代表不同的变量。( )
4.表达式 0195 是一个八进制整数。( )
5.Continue语句的作用是结束本次循环。( )
6.Extern变量的生命期是整个程序执行期。 ( )
7.C语言中字符串的结束符是’\0’。 ( )
8.利用fclose函数关闭已打开的文件。 ( )。
9.C程序总是从main( ) 函数的第一条语句开始执行的。 ( )
10.数组名代表数组的首地址。( )
三.填空
1.C语言的预处理语句以__________开头。
2.表达式7+10>2 && 25 %5的结果是_______________________。
3.下列程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。
Int n=0, ch; Ch=getchar( );
While( __________________ )
{ if ( ________________ ) n++; c=getchar( ); }
4.C语言中getchar() 函数的功能是_________________________________。
5.int *p 的含义是___________________________________________。
6.定义fp为文件型指针变量的定义方法为_______________________。
7.数组 int a[3][3];共定义了____________个数组元素。
四、读程序。
1. 改正下列程序中不正确的语句。
main( )
{ int a;
scanf(“%d”, a); if (a = 1) printf(“One\n”) ; }
2.写出下列程序的运行结果。
fun(int a, int b)
{ if(a>b) return (a);
Else return (b); }
main()
{ int x=3,y=8,z=6,r;
r=fun(fun(x,y),2*z); printf(“%d\n”,r); }
3. 改正下列程序中不正确的语句。
main()
{ int n ;
float s=1.0;
for(n=10;n>1;n- -)
s=s+1/n;
printf(“%6.1f\n”,s); }
4. 写出下列程序的运行结果。
main()
{ int n;
For(n=3; n<=10; n++)
{ if(n%6= =0) break; Printf(“%d”,n); } }
5.写出下列程序的运行结果。
#include “stdio.h”
Main()
{ int a[]={1,2,3,-4,5};
int m,n,*p; p=&a[0]; m=*(p+1); n=*(p+4);
printf(“%d %d %d ”,*p,m,n); }
五.编程
1. 编程计算下列表达式:s=n!(n从键盘上输入)
2.输出1—100之间不能被12整除的数。
3.从键盘上输出10个整数存入一维数组中,按由大到小的顺序输出。
4.从键盘上输入9个数,按3行3列的格式输出。
5.编程将文件read.txt中的字符读出显示到屏幕上。
《C语言程序设计》试题四答案
一.单项选择题
1 A 2B 3D 4C 5C 6C 7C 8D 9D 10A 11D 12D 13B 14A 15C 16C 17A 18A 19C 20A
二.判断题
1√ 2Ⅹ 3√ 4Ⅹ 5√ 6√ 7√ 8√ 9√ 10√
三、填空
1 #号 2 0 3 ch!=’\n’ ch>=’0’ && ch<=’9’
4 从键盘上输入一个字符。 5 指针变量p为整型
6 FILE *fp 7 9
四、读出程序。
1 printf("%d,",&a); if (a==1) 2 12
3 s=s+1.0/n
4. 3 4 5
5 1 2 5
五.编程序
1.
#include "stdio.h"
main()
{ long t=1;
int i;
for(i=1;i<=10;i++)
t=t*i;
printf("%ld",t); }
2
#include "stdio.h"
main()
{ int i;
for(i=1;i<=100;i++)
{ if(i%12==0)
continue;
printf("%d ",i);
}
3.
#include "stdio.h"
main()
{ int i,j,a[10];
for(i=1;i<=10;i++)
scanf("%d",&a[i]);
for(i=0;i<9=;i++)
for(j=9;j>i;j--)
if(a[j-1]<a[j])
{ t=a[j-1];
a[j-1]=a[j];
a[j]=t; }
for(i=0;i<10;i++)
printf("%d",a[i]);
}
4.
#include "stdio.h"
main()
{ int a[3][3],i,j,s=0;
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”);
}
}
5.
#include "stdio.h"
main()
{ int c;
FILE *fp;
fp=open("read.txt","r");
c=fgetc(fp);
while(c!='\n')
{ putchar(c);
c=fgetcr(fp);
} }
fclose(); }
《C语言程序设计》试题五 1
一、填空 1
二、单项选择题 2
三、读出下列程序,写出程序的运行结果。 3
四、将下列程序中不正确的语句改正。 4
五.编程题题 5
《C语言程序设计》试题五答案 6
《C语言程序设计》试题五
一、填空
1.实型变量的类型说明符有:__________、____________。
2.表达式7+8>2 && 25 %5的结果是_______________________。
3.下列程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。
Int n=0, ch;
Ch=getchar( );
While( __________________ ) ) ) )
{ if ( ________________ ) n++;
4.putchar(c ) 函数的功能是是是_____________________________________。
5int *p 的含义是是是是___________________________________________。
6.C语言中数组的下标下限为___________________________。
7.定义fp为文件型指针变量的定义方法为_______________________。
8.数组 int a[3][4];共定义了____________个数组元素。
二、单项选择题
1、下列属于整型常量的是________。
A、12 B、12.0 C、-12.0 D、10E10
2、不属于字符型常量的是_________。
A.‘A’ B、'a' C、“A” D、'b'
3、下列表达式为关系表达式的为_________。(其中a为一整型变量)
A.3+4*5 B、a==10 C、a>0?a:-a D、a=1
4、下面不正确的赋值语句是_____________。
A.a=a+1 B、a= =b C、a+=b D、a=1
5、下列对数组定义不正确的语句是______________。
A.int m[5]; B、char b[]={‘h’,’e’};
C、int a[10]={1,6,8,4}; D、char p[];
6、若有以下定义,则______和______是对数组元素的正确引用。
int a[5],*p=a
A. *&a[6] B、*p+8 C、*(a+2) D、*p
7、执行下列语句后,a的值是______。
int a=8;
a+=a-=a*a;
A.-240 B、64 C、112 D、-112
8. 指出下面正确的输入语句( )。
A. scanf(“a=b=%d”,&a,&b) ; B. scanf(“%d,%d”,&a,&b) ;
C. scanf(“%c”,c) ; D. scanf(“%f\n”,&f) ;
9.下面的变量说明中正确的是____________。
A.int:a, b, c; B.int a; b; c;
C.int a, b, c D.int a, b, c;
10. C语言用( )表示逻辑“真”值。
A.True B. t 或 y C. 非零整型值 D. 整型值0
11.若x=5,y=4 则y*=x+5; y的值为( ).
A. 40 B. 20 C. 15 D. 30
13.C语言中以追加方式打开一个文件应选择_______________参数。
A.“r” B.“w”
C.“rb” D.“a”
14.Break语句的正确的用法是( )。
A. 无论在任何情况下,都中断程序的执行,退出到系统下一层。
B. 在多重循环中,只能退出最靠近的那一层循环语句。
C. 跳出多重循环。
D. 只能修改控制变量。
15.两个指针变量的值相等时,表明两个指针变量是________________。
A. 占据同一内存单元。 B. 指向同一内存单元地址或者都为空。
C. 是两个空指针。 D. 都没有指向。
16.字符串指针变量中存入的是________________。
A.字符串的首地址。 B. 字符串
C.第一个字符 D. 字符串变量。
17.以_______________个是不正确的描述。
A. 不论在主函数还是自定义函数中,只要说明了变量,就可为其分配存贮单元。
B. 在定义函数时,必须指定形参的类型。
C. 形参和实参之间可以是值传递。
D. 数组名可以作为参数进行传递。
18 表达式“1?(0?3:2):(10?1:0)”的值为_____________________。
A.3 B. 2 C. 1 D. 0
19. 为表示关系x≥y≥z,应使用C语言表达式
A.(x>=y)&&(y>=z) B. (x>=y) AND (y>=z)
C.(x>=y>=z) D. (x>=z)&(y>=z)
20. 以下说法中正确的是_______________。
A. C语言程序总是从第一个定义的函数开始执行。
B. 在C语言程序中,要调用的函数必须有main( ) 函数中定义。
C. C语言程序总是从main( ) 函数开始执行。
D. C语言程序中的main( ) 函数必须放在程序的开始部分。
21.设有数组定义:char array[]=”China”;则数组所占的存贮空间为__________。
A.4个字节 B. 5个字节 C. 6个字节 D. 7个字节
22.根据C语言的语法规则,下列________个是不合法标识符。
A.While B. Name C. Rern5 D. _exam
三、读出下列程序,写出程序的运行结果。
1. main()
{ int a=8 , b=1;
a=a+b;
b=a*b;
printf("a=%d,b=%d",a,b); }
该程序的运行结果是___________________________________。
2. main()
{ int i,num[5];
for(i=0;i<5;i++)
num[i]=i*10 - 2;
printf("%d",num[3]); }
该程序的运行结果是___________________________________。
3. main()
{ float c,f;
c=30.0;
f=(6*c)/5+32;
printf("f=%f",f); }
该程序的运行结果是___________________________________。
4. main()
{ int a=6095 , b ;
b=a%1000 ;
printf("%d", b) ; }
该程序的运行结果是___________________________________。
5. # include “stdio.h”
main( )
{ int a[]={8,2,9,4,1}, *p;
p=a;
*(p+2)+=2;
printf(“%d, %d ”, *p, *(p+2));}
该程序的运行结果是___________________________________。
四、将下列程序中不正确的语句改正。
1. main( )
{ int k ;
k=35555 ;
printf ( “%d “, k) ; }
2. main ( )
{ int a , b ;
scanf ( “input a ,b:”,a , b );
printf (“a=%d, b=%d”,a,b); }
3. main( )
{ int sum , k ;
sum=0 ;
k= 1 ;
while (k < =100 )
sum = sum+k ;
k + + ;
printf (“ sum=%d\n”, sum) ; }
4. main( )
{ int k , a( 8 ) ;
for( k=0; k<10 ; k++)
scanf(“%d”, &a(k));
...... }
5. main( )
scanf(“%d”, a);
if (a = 1)
printf(“One\n”) ; }
五.编程题题
1. 用程序计算下列表达式:s=1!+2!+3!+4!
2、从键盘上输入三个数,求出其中最大的一个数。
3. 输入两个整数,调用函数stu( )求两个数差的平方,返回主函数显示结果。。
4.从键盘上输入10个评委的分数,去掉一个最高分,去掉一个最低分,求出其余8个人的平均分,输出平均分,最高分,最低分。
5.write.txt中,遇到回车键输入结束。。(用“\n”表示回车键)
《C语言程序设计》试题五答案
一、填空
1.float double 2. 0
3.ch!=‘\0’ (ch>=‘a’ && ch<=‘z’) || (ch>=‘A’ && ch<=‘Z’)
4.将字符c所包含的值输出到标准的输出设备上。5.定义一个整型的指针变量p
6.0 7.FILE *fp 8. 12
二、单项选择题
1、 A 2、 C 3、 B 4、 B 5、 D 6、C D 7、 D
8、 B 9、 D 10、 C 11、 A. 13、 D 14、B
15、 A. 16、 A 17、 A. 18、 B 19、 A 20、 C 21、C 22、A
三、读出下列程序,写出程序的运行结果。
1. a=9,b=9 2. 28 3. f=68 4. 95 5. 8,11
四、将下列程序中不正确的语句改正。
1. long int k ; printf ( “%ld “, k) ; }
2. scanf ( “%d,%d”,a , b );
3. while (k < =100 )
{ sum = sum+k ;
k + + ; }
4. int k , a[8] ;
scanf(“%d”, &a[k]);
5. if (a = = 1)
五.编程题
1. main()
{ long int a,b,sum=0,p;
for(a=1;a<=4;a++)
{ p=1;
for(b=1;b<=a;b++)
p*=b;
sum+=p; }
printf(“%ld”,sum); }
2、main()
{ int a,b,c,max;
scanf(“%d,%d,%d”,&a,&b,&c);
if (a>b)
max=a;
else
max=b;
if (max<c)
max=c;
printf(“max=%d”,max); }
3. int stu(int a,int b)
{ int c;
c=a*a+b*b;
return c; }
main()
{ int x,y,z;
scanf(“%d,%d”,&x,&y);
z=stu(x,y);
printf(“%d”,z); }
4.main()
{ float a[10],b,max,min,sum=0,aver;
for(b=0;b<10;b++)
scanf(“%f”,&a[b]);
max=min=a[0];
for(b=1;b<10;b++)
{ if(a[b]>max)
max=a[b];
if(a[b]<min)
min=a[b];
sum+=a[b]; }
sum=sum-max-min;
aver=sum/8;
printf(“%f,%f,%f”,aver,max,min); }
5. main()
{ FILE *fp;
Char ch;
fp=fopen(“write.txt”,“w”);
ch=getchar();
while(ch!= ‘\n’)
{ fputc(ch,fp);
ch=getchar(); }
fclose(fp);
}
《C语言程序设计》试题 六 1
一.单项选择题 1
二.写出下列程序的运行结果 3
三.判断题 4
四.编程题 5
《C语言程序设计》试题 六答案 6
《C语言程序设计》试题 六
一.单项选择题
1.各种基本数据类型的存贮空间正确的长度排列为__________。
A.Char<long<int<float<double B.Double<float<long<int<char
C.Char<int<long<float<double D.Float<int<long<char<double
2.下面的变量说明中_____________是正确的。
A.Char:a, b, c; B.Char a; b; c;
C.Char a, b, c; D.Char a, b, c
3.main( )
{ int n;
( n=6*4,n+6),n*2;
printf(“n=%d\n”,n);
} 此程序的输出结果是______________.
A.30 B. 24 C. 60 D. 48
4.若有如下定义,则__________和_________是对数组元素的正确的引用。.
int a[10] , *p ;
p=a ;
A. *&a[10] B. a[11] C. *(p+2) D. *p
5.设整型变量n的值为2,执行语句“n+=n-=n*n;”后,n的值是__________
A. 0 B. 4 C. - 4 D. 2
6.表达式y=(13>12?15:6>7?8:9)的值为____________ 。
A 9 B 8 C 15 D. 1
7.若x=5,y=3 则y*=x+5; y的值为_______________.
A. 10 B. 20 C. 15 D. 30
8.C语言的输入与输出操作是由____________完成的。
A.输入语句 B.输出语句
C.输入与输出函数 D.输入与输出语句
9.语句 for(k=0;k<5;++k)
{ if(k= = 3) continue;
printf(“%d”,k);
}的输出结果为___________.
A.012 B. 0124 C. 01234 D. 没有输出结果
10.从循环体内某一层跳出,继续执行循环外的语句是:___________。
A. break语句 B.return语句
C.continue语句 D.空语句。
11.Break语句的正确的用法是____________。
A.无论在任何情况下,都中断程序的执行,退出到系统下一层。
B.在多重循环中,只能退出最靠近的那一层循环语句。
C.跳出多重循环。
D.只能修改控制变量。
12.两个指针变量的值相等时,表明两个指针变量是__________。
A.占据同一内存单元。 B.指向同一内存单元地址或者都为空。
C.是两个空指针。 D.都没有指向。
13.不正确的指针概念是__________。
A.一个指针变量只能指向同一类型的变量。
B.一个变量的地址称为该变量的指针。
C.只有同一类型变量的地址才能存放在指向该类型变量的指针变量之中。
D.指针变量可以赋任意整数,但不能赋浮点数。
14.设char ch=’A’;表达式ch!(ch>=’A’&&ch<=’Z’)?ch:(ch+32)的值是_________。
A.A B. a C. Z D. z
15.根据C语言的语法规则,下列________个是不合法标识符。
A.While B. Name C. Rern5 D. _exam
16.设单精度变量f,g均为5.0,使f为10.0的表达式是__________。
A. f+=g B. f-=g+5 C. f*=g-15 D. f / =g*10
17. 设整型变量n的值为2,执行语句“n+=n- =n*n ;”后,n的值是__________。
A. 0 B. 4 C. –4 D. 2
18.下列不是赋值语句的是__________。
A.A++ B. a= = b C. a+=b D. a=1
19. 为表示关系x≥y≥z,应使用C语言表达式__________
A.(x>=y)&&(y>=z) B. (x>=y) AND (y>=z)
C.(x>=y>=z) D. (x>=z)&(y>=z)
20.设有数组定义:char array[]=”China”;则数组所占的存贮空间为__________。
A.4个字节 B. 5个字节 C. 6个字节 D. 7个字节
二.写出下列程序的运行结果
1. main ( )
{ int x=10,y=10;
printf(“%d %d\n”,x--,--y); }
该程序的运行结果是___________________________________。
2.main( )
{ int j , k , p, s;
s=0 ;
for (j=1; j<=3; j++)
{ p=1;
for(k=1; k<=j; k++)
p=p*k;
s=s+p;
}
printf(“s=%d\n”,s); }
该程序的运行结果是___________________________________。
3. # include “stdio.h”
main( )
{ int a[]={1,2,3,4,5}, *p;
p=a;
*(p+2)+=2;
printf(“%d, %d ”, *p, *(p+2)); }
该程序的运行结果是___________________________________。
4.main( )
{ int a[]={2,4,6,8,10};
int y=1,x,*p;
p=&a[1];
for(x=0;x<3;x++)
y + =*(p+x);
printf(“%d\n”,y); }
该程序的运行结果是___________________________________。
5.main()
{ int a[5], k;
for(k=0;k<5;k++)
a[k]=10*k ;
printf(“%d”, a[k-1]) ; }
该程序的运行结果是___________________________________。
三.判断题
1. 函数一般由函数的说明部分和函数体部分组成。 ( )
2. C语言中数据类型只有整型、实型和字符型。 ( )
3. 数组的下标从1开始。 ( )
4. 假设有int a[10], *p; 则P=&a[0]与p=a等价。 ( )
5. getchar()函数的功能是从键盘上输入一个字符串。 ( )
6. 在C语言中定义一个文件指针的方法为:FILE *fp; 。 ( )
7. 构成数组的各个元素可以有不同的数据类型。 ( )
8. C语言的数据类型只有int 型和 float 型。 ( )
9. 从循环体中退出只能使用goto语句。 ( )
10.Continue语句的作用是继续程序中的下一个循环。 ( )
四.编程题
1. 从键盘上输入20个元素的值存入一维数组a中,然后将下标为(1、3、5、7、9……)的元素值赋值给数组b,输出数组b的内容。
2. 编程序求 3,-30,20,6,77,2,0,-4,-7,99这十个数中最大值与最小值。
3. 输入两个整数,调用函数stu( )求两个数和的立方,返回主函数显示结果。
4. 将文件file1.txt中的内容读出并显示到屏幕上。
5. 编程计算1-100之间的奇数和与偶数和。
《C语言程序设计》试题 六答案
一.单项选择题
1. C 2. C 3. C 4. C D 5. C 6. B 7. D 8. C
9. B 10. C 11. B 12.A 13 D 14. B 15. A 16. A.
17. C 18. B 19. A.20. C.
二.写出下列程序的运行结果
1.10 9 2.S=9 3. 1,5 4.19 5.40
三.判断题
1. 对 2. 不对 3. 不对 4. 对 5.不对
6. 对 7. 不对 8. 不对 9. 不对 10.不对
四.编程题
1. main()
{ int m[20],n[10];
int a,b=0;
for(a=0;a<20;a++)
{ scanf(“%d”,&m[a]);
if(a%2= =1)
{ n[b]=m[a];
b++; }
}
}
2. main()
{ int m[10]={ 3,-30,20,6,77,2,0,-4,-7,99},max,min;
max=min=m[0];
for(a=0;a<10;a++)
{ if(m[a]>max)
max=m[a];
if(m[a]<min)
min=m[a];
}
printf(“%d,%d”,max,min);
}
3. int stu(int a,int b)
{ int c;
c=a*a+b*b;
return c; }
main()
{ int x,y,z;
scanf(“%d,%d”,&x,&y);
z=stu(x,y);
printf(“%d”,z); }
4.main()
{ FILE *fp;
Char ch;
fp=fopen(“write.txt”,“r”);
ch=fgetc (fp);
while(ch!= EOF)
{ putchar(ch);
ch=fgetc(fp); }
fclose(fp);
}
5.main()
{
int sum1=0,sum2=0,a,b;
for(a=1;a<=100;a++)
if(a%2= =0) if(a%2= =0)
sum1+=a;
else
sum2+=a;
printf(“%d,%d”,sum1,sum2);
}
《C语言程序设计》试题七 1
一、填空题 1
二、选择题 2
三、判断题 3
四、程序填空题 3
五、阅读程序,写出下列程序段的结果 4
六、编程题 5
《C语言程序设计》试题 七答案 6
《C语言程序设计》试题七
一、填空题
1.在C语言程序设计中,正确的标识符是由____________________组成的。
2. 设x=4,y=(++x)+(++x);那么y的值为_____,表达式执行后,变量x的值为_______。
3.一个变量的指针是指_____________________________________________。
4.能够构成一个数组,其元素满足的特点是__________________________________;
那么,构成结构体的成员可以是_________________________________________。
5.下面运算符 < % ++ = 按照优先级从高到低排列顺序为______________。
6.C程序设计中语句后的符号 /*……*/ 所起作用是_________________________。
7.写出下面表达式的值
3*5/7+7%3____________________ x=2 ; y=4; (x++)+y _____________________
3+4>=7-10_____________________ 3>4 ? 3%2: 1 ___________________
x=2,y=2;++x||++y_______________ x=3 ; x+=x-=2 _____________________
二、选择题
⑴.在使用TurboC2.0环境编辑程序时,运行某程序使用的菜单项为( )
A.FILE B.RUN C.EDIT D.OPTION
⑵.下列语句不具有赋值功能的是( )
A.a*=b B.x=1 C.a+b D.a++
⑶.C语言程序中,当出现条件分支语句if~else时, else与( )组成配对关系
A.同一复合语句内部的if B.在其之前任意的if
C.在其之前未配对的最近的if D.首行位置相同的if
⑷.下列数组定义方式不正确的语句是( )
A.char x[5]; B.char y[]={‘h’, ‘e’, ‘l’, ‘l’, ‘o’};
C. int x[10]={12,13,14,15}; D.int y[];
⑸. 若有如下定义和语句,且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=5; b=8; c=10; d=0
A.a*2>8+2 B.a&&d C. (a*2-c)||d D.a-b<c*d
⑺. 下列字符数组长度为5的是( )
A. char a[]={‘h’, ‘a’, ‘b’, ‘c’, ‘d’};
B. char b[]= {‘h’, ‘a’, ‘b’, ‘c’, ‘d’, ‘\0’};
C. char c[10]= {‘h’, ‘a’, ‘b’, ‘c’, ‘d’};
D. char d[6]= {‘h’, ‘a’, ‘b’, ‘c’, ‘\0’ }
⑻. 执行下列程序后,其结果为( )
int a[]={2,4,6,8,10,12}; *p;
p=a;
*(p+4) =2;
printf(“%d,%d\n”,*p,*(p+4));
A.0,10 B.0,2 C.2,10 D.2,2
⑼. 有下列结构体,对该结构体变量stu的成员项引用不正确的是( )
struct student
{ int m;
float n;
} stu ,*p;
A. stu.n B.p->m C.(*p).m D.p.stu.n
⑽.下列函数中不能用于对文件进行输入输出操作的是( )
A.fscanf( ) B.printf( ) C.fgetc( ) D. fputs( )
三、判断题
1.C语言程序设计可以对计算机硬件进行操作。 ( )
2.在循环过程中,使用break语句和continue语句的作用是一样的。 ( )
3.在函数的定义和调用过程中,形式参数和实在参数数目可以不一致。 ( )
4.对于某一指针变量可以接收任何类型的值。 ( )
5.在C语言程序设计中,不同类型的数在计算机内存中所占空间是不同的。( )
6.文件指针是结构体类型,可以用表示file来定义。 ( )
7.选择结构不可以使用嵌套形式,但是循环结构可以使用嵌套形式。 ( )
8.在定义数组时,有时可以将该数组的维数省略。 ( )
9.运算符 && + * 的优先级是 * 优先于 + 优先于&&。 ( )
10.任何数组都可以实现对其进行整体操作。 ( )
四、程序填空题
1.下面是实现输出九九乘法表的程序,在画线的位置填上适当的语句,使该程序完整。
main()
{ int i , j , k;
for(i=1;_____________; i++)
{bsp; {
for(__________; j<=i ; j++)
printf(“%d*%d=%d”,_______________);
printf(________________);
}
}
2.设计一个自定义函数,实现如下功能:求两个数的平方和,并且返回该和。
自定义函数如下:
int max(x,y)
{
}
3.设有如下面的结构体,请用C语言的语句定义出正确的结构体形式:
学生信息:包括(姓名,性别,年龄,分数:根据合适情况选择各项类型)
struct student
{
}
4. 根据给出的程序段,请写出正确的结果
x=1 ; p=1 , sum=0 ;
for (x=1 ; x<=5 ; x++)
{ p=p*x;
sum=sum+p ; }
上面的程序段实现的功能是计算下面的式子_______________________________ ;
其运行结果为_________________________________________________________。
五、阅读程序,写出下列程序段的结果
1. int *p,i;
i=100;
p=&i;
i=*p+10; 执行完上面的语句段后, i的值是 ______
2. int A,B,C,m=1,n=0;
A=(--m=n++)?- -m:++n;
B=++m;
C=n--;
执行完上面的语句段后,A的值为 B的值为 C的值为
3. main()
{ int c1=10,c2=10;
printf(“c1=%d,c2=%d \n c1=%d”,++c1,c2++,c1--);
}
该程序的运行结果是_______________________________________________。
4.main()
{ int i;
for(i=3;i<10;i++)
{ if(i%4==0)
continue;
else
printf(“%d,”,i);
} }
该程序输出的结果是 _______________________________________
5. main()
{ int x;
x=3;
do
{ printf(“%d”,x--);
}while(!x); }该程序运行的结果是___________________________________________________________
六、编程题
1.编程实现:从键盘上接收10个整数,并对其进行排序(要求排成升序)。
2.编程实现求下面的式子的结果
3.编程实现将文本文件file1.dat中的内容复制到文本文件file2.dat中去,同时将小写字母转换成大写字母。
《C语言程序设计》试题 七答案
一、填空题
1.字母、数字、下划线 2. 12,6 3.该变量的地址
4.同一类型;不同类型 5. ++ % < = 6.注释
6.3, 1, 1, 6 1 2
二、选择题
⑴.B ⑵.C ⑶. C ⑷. C ⑸. A
⑹.D ⑺. A ⑻. D ⑼. D ⑽.B
三、判断题
1.对 2.不对 3.不对 4.不对 5.对 6.不对 7.不对 8.对 9.对 10.不对
四、程序填空题
1.i<=9 j=1 i , j , i*j “\n”
2 2 2.int max(x,y)
int x,y;sp; int x,y;
{ int z;
z=x*x+y*y;
return(z); }
3. struct student
{ char xm [10];
char sex;
int age;
float score; }
4. 1!+2!+3!+4!+5! 1+2+6+24+120=153
五、阅读程序,写出下列程序段的结果
1. 110
2. –1 0 1
3. c1=10 ,c2=10
c1=10
4.3,5,6,7,9
5. 3
六、编程题
1.main()
{ int a[10];
int m,n,t;
for (m=0;m<10;m++)
scanf(“%d”,&a[m]);
for(m=0;m<9;m++)
for(n=0;n<9;n++)
if(a[n]>a[n+1])
{ t=a[n]; a[n]=a[n+1]; a[n+1]=t;}
for (m=0;m<10;m++)
printf(“%d”,a[m]);
}
2.
main()
{ float x,y;
scanf(“%f”,&x);
if(x>6)
y=(x+2)/(3*x+1);
else
y=x*x+3*x+1;
printf(“%f”,y);
}
3.main()
{ FILE *fp1 , *fp2;
char ch;
fp1=fopen(“file1.dat”, “r”);
fp2=fopen(“file1.dat”, “w”);
ch=fgetc(fp1);
while(ch!=EOF)
{
if(ch>=’a’ && ch<=’z’)
ch=ch-32;
fputc(ch,fp2); fputc(ch,fp2);
ch=fgetc(fp1);
}bsp; }
fclose(fp1);
fclose(fp2);
}
《C语言程序设计》试题八 1
一、选择题 1
二、填空题 2
三、判断题 3
四、程序填空题 3
五、编程题 (25分) 5
六、附加题 5
《C语言程序设计》试题八答案 6
《C语言程序设计》试题八
一、选择题
1.一个C语言程序是由( )构成。
A.语句 B.行号 C.数据 D.函数
2.下面标识符中正确的是( )。
A.a#bc B.123ABC C.sime D.Y·M·D
3.在C语言中,存储一个整型、字符型、双精度实型变量所需的字节数是( )。 )。 )。 )。
A.2、1、8 B.4、1、4
C.4、1、4 D.2、2、8
4.为了避免嵌套的条件分支语句 if--else中的else总是与( ) 组成成对关系。
A. 缩排位置相同的 B. 在其之前未配对的
C. 在其之前未配对的最近的if D. 在同一行上的if
5.下列表达式的结果正确的是( )。
int a,b,c,d;
a=b=c=d=2;
d=a+1==3?b=a+2:a+3
A.2 B.4 C.3 D.5
二、填空题
1.在C语言中,正确的标识符是由______________________组成的,且由_______________开头的。
2. 设x=3,那么表达式y=(++x)+(++x)的结果为_________,表达式执行后,变量x的结果为_________。
3. 一个变量的指针是指_________________________________________________________________。
4. 组成数组元素的特点是_______________________________________________;
组成结构体元素的特点是________________________________________________。
5. 在C语言程序中,对文件进行操作首先要______________________________;然后对文件进行操作,最后要对文件实行__________________________________操作,防止文件中信息的丢失。
6. 对字符串进行操作的函数有_______________________________________________________等。
7. C语言程序是由___________________构成的,而C语言的函数是由____________________构成的。
8. 要想定义整型变量a , 实型变量 b , 字符型的变量c,应该使用的正确语句为______________________________________________________________________________________。
9. 写出下面表达式的值
3*5/7+7%3_______________________ x=2 ; y=4; (x++)+y _________________________
3+4>=7-10_______________________ 3>4 ? 3%2: 1 ______________________________
x=2,y=2;++x&&++y_________________ x=3 ; x+=x-=2 ______________________________
三、判断题
1. C语言的一个特点是可以对计算机硬件进行操作 ( )
2. 在循环过程中,使用break语句和continue语句的作用是一样的 ( )
3. 在函数的定义和调用过程中,形式参数和实在参数数目可以不一致 ( )
4. 指针变量可以接收任何类型的值 ( )
5. 在C语言程序设计中,字符数组和字符串不是完全一样的概念 ( )
6. 文件指针是结构体类型,用符号file来表示 ( )
7. 选择结构(if语句)和循环结构都可以使用嵌套形式 ( )
8. 在定义二维数组时,可以将该数组的两个维数全部省略 ( )
9. 逻辑运算符 && || ! 的运算顺序是 ! 优先于 && 优先于 || ( )
10. 任何数组都可以实现整体使用操作 ( )
四、程序填空题
1.下面是实现打印九九乘法表的程序,请在画线的位置填上适当的语句,使程序(段)完整。
main()
{ int i , j , k;
for(i=1;_____________; i++)
{ for(j=1;______________; j++)
printf(“%d*%d=%d”,_______________);
printf(________________);
}
}
2.自己设计一个自定义函数,实现求两个数的最大数的功能,自定义函数如下:
int max(x,y)
int x , y ;
{
}
3.设有如下面的结构体,请用C语言的语句定义出正确的结构体形式:
学生信息:包括(姓名,性别,年龄,分数),并且定义变量stud和数组stud1[30]
struct student
{
}
4. 根据给出的程序段,请写出正确的结果
x=1 ; sum=1 ;
for (x=1 ; x<=5 ; x++)
sum=sum*x;
上面的程序段实现的功能是:______________________________________________________ ;
其运行结果为______________________________________________________________________。
5.设有如下的语句。
int a=43,b,c;
b=23;
c=a++ * --b;
(1)上面的语句段执行后a= b= c= ;
(2)简述a++和++a的相同点和不同点:
6.设有如下的程序:
main( )
{ int i=3,*p1;
int a[3]={15,30,45},*p2;
p1=&i; p2=a;
p1=p2+2;
printf(“%d,%d\n”,*p1,*p2);
}
程序运行结果是: 。
五、编程题 (25分)
1.编程实现对10个整数进行冒泡排序(要求排成升序)。
2.编程实现求下面的式子的结果
3.编程实现将文本文件file1.dat中的内容复制到文本文件file2.dat中去
六、附加题
用C语言程序实现在已知链表中的第三个位置插入数值为a的程序
《C语言程序设计》试题八答案
一、选择题
1.D 2. C 3. A 4. C 5. B
二、填空题
1.字母、数字、下划线;以字母、下划线开头。 2.10;5。 3. 该变量的地址。
4.一组数据类型相同的元素构成的;一组数据类型不同的元素构成的。
5. 打开;关闭。 6.字符串长度、取子字符串、字符串替换、字符串复制等。
7. 函数;语句。 8. int a ; float b ; char c ;
9 9 9.3 6 1 1 1 2
三、判断题
1. 对 2. 错 3. 错 4. 错 5. 对 6. 错 7. 对 8. 错 9.对 10. 错
四、程序填空题
1. i<=9 j<=9
printf(“%d*%d=%d”,i,j,i*j);
printf(“\n”); i , j , k;
2. int z;
if (x>=y) z=x;
else z=y;
return z;
3. char name[20];
char sex;
int age;
float score;
4. 实现功能:计算连续数之积, 即sum=1*2*3*4*5 ;
运行结果:sum=120
5. 44 22 946
a++:先加1,后使用表达式的值;++a表示先加1,后使用表达式的值,它们最后的结果使a加1。
6.45,15
五、编程题
1.编程实现对12个整数进行冒泡排序(要求排成升序)。
Main()
{ int a[12]; int m,n,p;
for (m=0;m<=11;m++)(m=0;m<=11;m++)
scanf(“%d”,&a[m]);
for (m=0;m<=11;m++)
for(n=0;n<11-m;n++)
if(a[n]>a[n+1])
{ p=a[n]; a[n]=a[n+1]; a[n+1]=p; }
for (m=0;m<=11;m++)
printf(“%d”,a[m]); }
2.编程实现求下面的式子的结果
# include “math.h”
main()
{ float x,y;
scanf(“%f”&x);
if (x>6) y=(x-3)/(2*x-12);
else y=-2*x*x+4*x-10;
printf(“y=%f”,y); }
3.编程实现将文本文件file1.dat中的内容复制到文本文件file2.dat中去
main()
{ char ch;
FILE *fp1,*fp2;
Fp1=fopen(“file1.dat”, “r”);
Fp2=fopen(“file2.dat”, “w”);
Ch=fgetc(fp1);
While(ch!=EOF)
{ fputc(ch,fp2);
Ch=fgetc(fp1); }
Fclose(fp1);
Fclose(fp2); }
六、附加题
p=H;K=0;
While(p!=NULL && k<i-1)
{ p=p->next;
k++; }
if(p==NULL && H!=NULL) printf(“this is invilid”);
else
{ q=(Struct Linklist *)malloc(sizeof(Struct Linklist));
q->data=x; q->data=x;
q->next=p->next;
p->next=q; }
《C语言程序设计》试题九 1
一、选择题 1
二、填空题 3
三、程序填空与算法题 4
四、编程题 5
《C语言程序设计》试题九答案 6
《C语言程序设计》试题九
一、选择题
1.一个C语言程序是由( )构成。
A.语句 B.行号 C.数据 D.函数
2.下面标识符中正确的是( )。
A.d&ef B.6a C.z4x5c D.a3/b4
3.在C语言中,存储一个字符型、整型、单精度实型变量所需的空间是()。型、单精度实型变量所需的空间是()。
A.1、2、4 B.1、1、4 C.1、2、8 D.2、2、8
4.为了避免嵌套的条件分支语句 if--else中的else总是与( ) 组成成对关系。
A. 缩排位置相同的 B. 在其之前未配对的
C. 在其之前未配对的最近的if D. 在同一行上的if
5.下列表达式的结果正确的是( )。
int aa,bb,cc,dd;
aa=bb=cc=dd=1;sp; aa=bb=cc=dd=1;sp; aa=bb=cc=dd=1;
(aa+1==2)?bb=aa+2:aa+3
A.2 B.3 C. 1 D.5
6.设有int x=11 ;则表达式(x+1/3)的值是( )。
A.3 B. 4 C. 11 D.12
7.设有字符串A=“He has 钱!”,则该字符串的长度为( )。
A. 9 B. 10 C. 11 D. 8
8.有如下程序段,则正确的执行结果是( )
int m=3;
while(m<=5)
{ printf(“%d ”,m-3); m++;}
A. 0 0 0 B.0 1 2 C.1 2 3 D.无结果
9.执行语句:printf("%d",(a=2)&&(b= -2);后,输出结果是( )。
A.无输出 B.结果不确定 C.-1 D. 1
10.有如下定义类型语句,若从键盘输入数据,正确的输入语句是( )。
int x; char y; char z[20];
A. scanf("%d%c%c",&x,&y,&z); B. scanf("%d%c%s",&x,&y,&z);
C. scanf("%d%c%c",&x,&y,z); D. scanf("%d%c%s",&x,&y,z);
11. struct ex
{ int x ; float y; char z ;} example;
则下面的叙述中不正确的是( )。
A. struct结构体类型的关键字 B. example是结构体类型名
C. x,y,z都是结构体成员名 D. struct ex是结构体类型
12.在C语言中对于实型数组,其每个数组元素的类型是( )。
A. 实型 B. 整型 C. 可以为任何类型 D. 不确定
13. 若已定义:int a[9],*p=a;不能表示a[1] 地址的表达式是( )。
A. p+1 B. a+1 C. a++ D. ++p
14. 在TC2.0环境中,对文件进行保存使用的命令是( )。
A. OPEN B. SAVE C. LOAD D. WRITE TO
15.在C++的类中,用于表示公共类型的关键字是( )。
A. class B. private C. protect D. public
二、填空题
1.在C语言中,正确的标识符是由____________组成的,且由____________开头的。
2. 设p=30,那么执行q=(++p)后,表达式的结果q为______,变量p的结果为________。
若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是_________。
3. 一个变量的指针是指___________________________________________________。
4. 在C语言程序中,对文件进行操作首先要____________________;然后对文件进行操作,最后要对文件实行__________________________操作,防止文件中信息的丢失。
5. 以下程序运行后的输出结果是 。该程序的功能是 。
main()
{ int x=10,y=20 ,t=0;
if(x!=y) t=x; x=y; y=t;
printf("%d,%d\n",x,y); }
6. 若fp已正确定义为一个文件指针,d1.dat为二进制文件,请填空,以便为"读"而打开此文件:fp=fopen( );。
7. 有以下程序,当输入的数值为2,3,4时,输出结果为 __。
main()
{ int x,y,z;
cout << “please input three number”;
cin >>x>>y>>z;
sum=x*x+y*2+z;
cout<<“sum of number is :”<<sum;
}
8. 有以下程序
main()
{ char c;
while((c=getchar())!='?') putchar( - - c ); }
程序运行时,如果从键盘输入:YDG?N?<回车>,则输出结果为 。
9.在循环中,continue语句与break语句的区别是:continue语句是语句的区别是:continue语句是
,break 是 。
三、程序填空与算法题
1. 下面程序是计算10个整数中奇数的和及其偶数的和,请填空。
#include <stdio.h>
main()
{ int a,b,c,i;
a=c=0;
for(i=1;i<=10;i++)
{ scanf(“%d”,&b);canf(“%d”,&b);
}
printf("偶数的和=%d\n",a);
printf("奇数的和=%d\n",c); }
2.编写一个自定义函数,实现求两个实数的平方和
3. 以下程序运行后的输出结果是 。
main()
{ char s[ ]="GFEDCBA";
int p=6;
while(s[p]!=‘D’)
{ printf("%c ", p);
p=p-1; } }
4.定义一个反映学生信息的结构体,包括学生的姓名,性别,年龄,成绩等。
5.以下程序输出的结果是 。
int ff(int n)
{ static int f=l;
f=f*n;
return f; }
main()
{ int i;
for(i=1;i<=5;i++) printf("%d\n",ff(i)); }
6. 设有以下程序:
main()
{ int n1,n2;
scanf("%d",&n2);
while(n2!=0)
{ n1=n2%10;
n2=n2/10;
printf("%d ",n1); } }
程序运行后,如果从键盘上输入1298;则输出结果为 。
7.下面程序的功能是:输出 100以内(不包含100)能被 3整除且个位数为 6的所有整数,请填空。
#Include<stdio.h>
main()
{ int i, j;
for(i=1; ____________; i++)
if (________________)
printf("%d", j); }
8.现有一个单链表Head,如下图所示,如果要在元素B和D之间插入一个字符型元素C。
所需要的语句为:(如果用到指针,在图中标出指针的位置)
四、编程题
1.编程实现求解下面的式子的结果
s=1*2+2*3+3*4+…+20*21
2.编程实现求下面的式子的结果
3.编程实现将文本文件file1.dat的内容读出来,显示到屏幕上。
《C语言程序设计》试题九答案
一、选择题
1.D 2. C 3. A 4. C 5. B
6.C 7. B 8. B 9. D 10. D
11.B 12. A 13. C 14. B 15. D
二、填空题
1.字母、数字、下划线;以字母、下划线开头。
2.4,4 -12 3. 该变量的地址。
4.打开;关闭。 5. 20 , 10 变量的交换
6.“d1.dat”, “rb” 7. sum of number is :14 8. xcf
9 9 9 9.结束本次循环,进入下一次循环;结束循环。
三、程序填空与阅读程序题(参考答案)
1. if (b%2==0) a=a+b else c=c+b
2. float sum(float x,float y)
{ return x*x+y*y; }
3. A B C
4. struct student{
char name[10];
char sex;
int age;
float score; }
5. 1 2 6 24 120
6.8 9 2 1
7.i<100 if(i%3==0 && i%10==6)
8.P->NEXT=Q->NEXT; P->NEXT=NEW;
五、编程题
1.参考答案
main()
{ int m,n,sum=0;
for (m=1;m<=20;m++)
sum=sum+m*(m+1);
printf(“%s”,sum);
}
2.参考答案
# include “math.h”
main()
{ float x,y;
scanf(“%f”&x);
if (x>6)
y=(x-3)/(2*x-12);
else
y=-2*x*x+4*x-10;
printf(“y=%f”,y); }
3.main()
{ char ch;
FILE *fp1,*fp2;
fp1=fopen(“file1.dat”, “r”);
fp2=fopen(“file2.dat”, “r”);
fp3=fopen(“file3.dat”, “w”);
Ch=fgetc(fp1);
While(ch!=EOF)
{ fputc(ch,fp3); fputc(ch,fp3);
Ch=fgetc(fp1); }
Ch=fgetc(fp2);
While(ch!=EOF)
{ fputc(ch,fp3); fputc(ch,fp3);
Ch=fgetc(fp2); }
Fclose(fp1);
Fclose(fp2);
Fclose(fp3);
}
《C语言程序设计》试题十 1
一、 单项选择题(共30分,每题1分) 1
二、 填空(20分,每空1分) 4
三、 读程序(30分) 5
四、 编写程序(20分) 6
《C语言程序设计》试题十答案 7
《C语言程序设计》试题十
一、 单项选择题(共30分,每题1分)
1. 下列不正确的转义字符是( )
A.\\ B.\’ C.074 D.\0
2. 不是C语言提供的合法关键字是( )
A.switch B.cher C.case D.default
3.正确的标识符是( )
A.?a B.a=2 C.a.3 D.a_3
4.下列字符中属于键盘符号的是( )
A.\ B.\n C.\t D.\b
5.下列数据中属于“字符串常量”的是( )
A.ABC B.“ABC” C.‘ABC’ D.‘A’
6.char型常量在内存中存放的是( )
A.ASCII码 B.BCD码 C.内码值 D.十进制代码值
7.设a为5,执行下列语句后,b的值不为2的是( )
A.b=a/2 B.b=6-(--a) C.b=a%2 D.b=a>3?2:2
8.在以下一组运算符中,优先级最高的运算符是( )
A.<= B.= C.% D.&&
9.设整型变量i的值为3,则计算表达式i---i后表达式的值是()
A.0 B.1 C. 2 D.表达式出错
10.设整型变量a,b,c均为2,表达式a+++b+++c++的结果是( )
A.6 B.9 C.8 D.表达式出错
11.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是( )
A.1 B.2 C.2.0 D.2.5
12.设a=1,b=2,c=3,d=4,则表达式:a<b?a:c<d?a:d的结果是( )
A.4 B.3 C.2 D.1
13.设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)
14.若有以下定义:char a、 int b 、 float c 、 double d,则表达式a*b+d-c值的类型为()
A.float B.int C.char D.double
15.表达式“10!=9”的值是( )
A.true B.非零值 C.0 D.1
16.循环语句 for (x=0,y=0; (y!=123)|| (x<4);x++);的循环执行( )
A.无限次 B.不确定次 C.4次 D.3次
17.在C语言中,下列说法中正确的是( )
A. 不能使用“do while”的循环
B.“do while”的循环必须使用break语句退出循环
C.“do while”的循环中,当条件为非0时将结束循环
D.“do while”的循环中,当条件为0时将结束循环。
18.设a,b为字符型变量,执行scanf(“a=%c,b=%c”,&a,&b)后使a为’A’,b为’B’,从键盘上的正确输入是( )
A.’A’ ‘B’ B.’A’,’B’ C.A=A,B=B D.a=A,b=B
19.设i,j,k均为int型变量,执行完下面的for循环后,k的值为( )
for (i=0,j=10;i<=j;i++,j--)k=i+j;
A.10 B.9 C.8 D.7
20.设有定义:char s[12]={“string”};则printf (“%d\n”,strlen(s));的输出是( )
A.6 B.7 C.11 D.12
21.合法的数组定义是()
A.int a[]={“string”}; B.int a[5]={0,1,2,3,4,5};
C.char a={“string”}; D.char a[]={0,1,2,3,4,5}
22.函数调用strcat(strcpy(str1,str2),str3)的功能是()
A.将字符串str2复制到字符串str1中后再将字符串str3连接到字符串str1之后
B.将字符串str1复制到字符串str2中后再连接到字符串str3之后
C.将字符串str1复制到字符串str2中后再复制到字符串str3之后
D.将字符串str2连接到字符串str1中后再将字符串str1复制到字符串str3中
23.设有如下定义,则正确的叙述为( )
char x[]={“abcdefg”};
char y[]={‘a’,’b’,’c’,’d’,’e’,’f’,’g’};
A.数组x和数组y等价 B.数组x和数组y的长度相同
C.数组x的长度大于数组y的长度 D.数组x的长度小于数组y的长度
24.设有单精度变量f,其值为13.8。执行语句“n=((int)f)%3;”后,n的值是()
A.4 B.1 C.4.333333 D.4.6
25.执行语句“f=(3.0,4.0,5.0),(2.0,1.0,0.0);”后,单精度变量f的值是( )
A.3.0 B.5.0 C.2.0 D.0.0
26.设a、b均为整型变量,下列表达式中不是赋值表达式的是( )
A.a=3,4,5 B.a=3*2 C.a=a&&b D.a=b=4
27.表达式“1?(0?3:2): (10?1:0)”的值为( )
A.3 B.2 C.1 D.0
28.sizeof(double)的结果值是( )
A.8 B.4 C.2 D.出错
29.指出下面正确的输入语句是( )
A.scanf (“a=b=%d”,&a,&b); B.scanf(“a=%d,b=%f”,&m,&f);
C.scanf(“%3c”,c); D.scanf(“%5.2f,&f);
30.若有以下定义和语句,且0<=i<5,则( )是对数组元素地址的正确表示
int a[]={1,2,3,4,5},*p,i;
p=a;
A.&(a+i) B.&p C.a++ D.&p[i]
二、 填空(20分,每空1分)
1.在内存中存储“A”要占用( )个字节,存储‘A’要占用( )字节。
2.符号常量的定义方法是( )。
3.能表述“20<x<30或x<-100”的C语言表达式是( )。
4.结构化程序设计方法规定程序或程序段的结构有三种:顺序结构、( )和( )。
5.C语言共提供了三种用于实现循环结构的流程控制语句,它们是( )、( )和( )。
6.若在程序中用到“putchar”,应在程序开头写上包含命令( ),若在程序中用到“strlen()”函数时,应在程序开头写上包含命令( )。
7.设有定义语句“static int a[3][4]={{1},{2},{3}}”,则a[1][1]值为( ),a[2][1]的值为( )。
8.“*”称为( )运算符,“&”称为( )运算符。
9.赋值表达式和赋值语句的区别在于有无( )号。
10.用{}把一些语句括起来称为( )语句
11.设a=12、b=24、c=36,对于“scanf (“a=%d,b=%d,c=%d”,&a,&b,&c);”,输入形式应为( )
12.表达式“sqrt(s*(s-a)*(s-b)*(s-c));”对应的数学式子为( )
13.C语言编绎系统在判断一个量是否为“真”时,以0代表“假”,以( )代表“真”
三、 读程序(30分)
1. main()
{ int a=10,b=4,c=3;
if (a<b) a=b;
if (a<c) a=c;
printf(“%d,%d,%d”,a,b,c);}
2. main( )
{int y=9;
for (;y>0;y--)
if (y%3= = 0) {printf (“%d”,--y);continue;}
3. main()
{ int x,y;
for (y=1,x=1;y<=50;y++)
{ if (x>=10) break;
if (x%2= =1) { x+=5;continue;}
x-=3; }
printf (“%d”,y);}
4. main()
{ static int a[][3]={9,7,5,3,1,2,4,6,8};
int i,j,s1=0,s2=0; i,j,s1=0,s2=0;
for (i=0;i<3;i++)
for (j=0;j<3;j++)
{ if (i= =j )s1=s1+a[i][j];
if (i+j= =2) s2=s2+a[i][j];
}
printf (“%d\n%d\n”,s1,s2);}
5. main()
{static char a[]={‘*’,’*’,’*’,’*’,’*’};
int i,j,k;
for (i=0;i<5;i++)
{printf (“\n”);
for (j=0;j<i;j++) printf (“%c”,’ ’);
for (k=0;k<5;k++) printf (“%c”,a[k]); } }
6. int fac(int n)
{static int f=1;
f=f*n; return(f);}
main()
{int i;
for (i=1;i<=5;i++)
printf (“%d!=%d\n”,i,fac(i));}
四、 编写程序(20分)
1. 编一个程序,输入X的值,按下列公式计算并输出Y的值
2. 编程序按下列公式计算e的值(精度为1e-6)
e=1+1/1!+1/2!+1/3!+……1/n!
《C语言程序设计》试题十答案
一、 单项选择题(共30分,每题1分)
1.C 2. B 3. D 4. A 5. B 6. A 7. C 8. C 9. A 10. A 11. C 12. D 13. A 14. D 15. D 16. C 17. D 18. D 19. A 20. B 21. D 22. A 23. C 24. B 25. D 26. D 27. B 28. A 29. B 30. C
二、 填空(20分,每空1分)
1. 2,1
2. #define 符号常量 常量
3.(x>20 && x<30) || x<-100
4.分支结构,循环结果
5. while do for
6. #include “stdio.h” # include “string.h”
7. a[1][1]=0 , a[2][1]=0
8. * 指针运算符, &地址运算符
9. 分号;
10. 复合语句
11. a=12,b=24,c=36
13. 非0
三、 读程序(30分)
1. 结果:10,4,3
2. 结果:8 5 2
3. 6
4. 18
10
5. *****
*****
*****
*****
*****
6. 5!=120
四、 编写程序(20分)
1.
Main()
{int x,y;
scanf (“%d”,&x);
if (x<=1) y=x; (x<=1) y=x;
else if (x>1&&x<10) y=2*x-1;
else y=3*x-11;
printf (“x=%d,y=%d\n”,x,y);
}bsp; }
2.
Main()
{float E;
int n;
s=0;E=1;
《C语言程序设计》试题十一 1
一、 单项选择题(共30分,每题1分) 1
二、 填空(20分,每空1分) 4
三、 读程序(30分) 4
四、 编写程序(20分) 6
《C语言程序设计》试题十一答案 8
《C语言程序设计》试题十一
一、 单项选择题(共30分,每题1分)
1.在PC机中,‘\n’在内存占用的字节数是( )
A.1 B.2 C. 3 D.4
2.字符串“ABC”在内存占用的字节数是( )
A.3 B. 4 C.6 D.8
3.在C语言中,合法的长整型常数是( )
A.0L B.4962710 C.0.054838743 D.2.1869 e10
4.执行语句“x=(a=3,b=a--)”后,x,a,b的值依次是( )
A.3,3,2 B.3,2,2 C.3,2,3 D.2,3,2
5.设有语句int a=3;,则执行了语句a+=a-=a*a后,变量a的值是( )
A.3 B.0 C.9 D.-12
6.设int k=32767;执行k=k+1;后k值为( )
A.32768 B.-32768 C.0 D.-1
7.下列正确的标识符是( )
A.hot_do B.a+b C.test! D.%y
8.设int a=5,使b不为2的表达式是( )
A.b=6-(--a) B.b=a%2 C.b=a/2 D.b=a>3?2:1
9.执行x=(6*7%8+9)/5;后,x的值为( )
A.1 B.2 C.3 D.4
10.执行语句x=(a=3,b=a--)后,x,a,b的值依次为( )
A.3,2,3 B.2,3,2 C.3,3,2 D.3,2,2
11.设a=-3;执行(a>0)?a:-a;后,a的值为( )
A.3 B.1 C.0 D.-3
12.设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值为( )
A.7 B.8 C.9 D.2
13.下面正确的字符常量是( )
A.”c” B.’\\’’ C.’W’ D. ‘’
14.若有代数式3ae/bc,则不正确的c语言表达式是( )
A.a/b/c*e*3 B.3*a*e/b/c C.3*a*e/b*c D.a*e/c/c*3
15.在C语言中,要求运算数必须是整型的运算符是( )
A./ B.++ C.!= D.%
16.若有说明语句:char c=’\72’;则变量c ( )
A.包含1个字符 B.包含2个字符
C.包含3个字符 D.说明不合法,c值不确定
17.sizeof (float)是( )
A.一个双精度型表达式 B.一个整型表达式
C.一种函数调用 D 一个不合法的表达式
18.设变量a 是整型,f是实型,i是双精度型,则表达式10+’a’+i*f值的数据类型是( )
A.int B.folat C.double D.不确定
19.若有定义int a[10],*p=a;,则p+5表示( )
A.元素a[5]的地址 B.元素a[5]的值
C.元素a[6]的地址 D.元素a[6]的值
20.以下与int *q[5];等价的定义语句是( )
A.int q[5]; B.int * q C.int (q[5]) D.int (*q)[5]
21.若有定义int a[5],*p=a;则对a数组元素地址的正确引用是( )
A.P+5 B.*a+1 C.&a+1 D &a[0]
22.凡是函数中未指定存储类别的局部变量,其隐含的存储类别是( )
A.auto B.static C.extern D.register
23.若用数组名作为函数调用的实参,传递给形参的是( )
A.数组的首地址 B.数组第一个元素的值
C.数组中全部元素的值 D .数组元素的个数
24.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是( )
A.float B.int C.long D.double
25.以下对二维数组a的正确说明是( )
A.int a[3][] B.float a(3,4)
C.double a[1][4] D.float a(3)(4)
26.若有说明int a[3][4];则对a数组元素的正确引用是(A )
A.a[2][4] B.a[1,3] C.a[1+1][0] D.a(2)(2)
26.语句while(!E);中的表达式!E等价于( )
A.E= =0 B.E!=1 C.E!=0 D.E= =1
27.C语言中while和do—while循环的主要区别是( )
A. do—while的循环体至少无条件执行一次
B. While的循环控制条件比do—while的循环控制条件严格
C. do—while允许从外部转到循环体内
D. do—while循环体不能是复合语句
28.为了避免在嵌套的条件语句if—else中产生二义性,C语言规定:else子句总与( )配对
A.缩排位置相同的if B.其之前最近的if
C.其之后最近的if D.同一行上的if
29.判断char型变量ch是否为大写字母的正确表达式是( )
A.’A’<=ch<=’Z’ B.(ch>=’A’)&(ch<=’Z’)
C.(ch>=’A’)&&(ch<=’Z’ D.(‘A’<=ch)AND (‘Z’>=ch)
30.以下能正确定义整型变量a、b、c并为其赋初值5的语句是( )
A.int a=b=c=5; B.int a,c, c=5;
C.a=5,b=5,c=5; D.a=b=c=5;
二、 填空(20分,每空1分)
1.C语言中的实型变量分为两种类型,它们是( )和( )。
2.C语言中的标识符只能由三种字符组成,它们是( )、( )和( )。
3.若有定义:char c=’\010’;则变量c中包含的字符个数是( )。
4.C语言提供的三种逻辑运算符是( )、( )、( )。
5.设y为int型变量,请写出描述“y是奇数”的表达式( )。
6.设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式( )。
7.在C语言中,二维数组元素在内存中的存放顺序是( )。
8.若有定义:double x[3][5];则x数组中行下标的下限为( ),列小标的上限为( )。
9.若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值是( ),a[2][2]得到的初值是( )。
10.若自定义函数要求返回一个值,则应在该函数体中有一条( )语句,若自定义函数要求不返回一个值,则应在该函数说明时加一个类型说明符( )。
11.函数中的形参和调用时的实参都是数组名时,传递方式为( ),都是变量时,传递方式为( )。
三、 读程序(30分)
1. main()
{int a=2,b=3,c;
c=a;
if (a>b) c=1;
else if (a= =b) c=0;
else c=-1;
printf (“%d\n”,c);} 运行结果:
2. main()
{int a=2,b=7,c=5;
switch (a>0)
{ case 1: swithch (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”);
}
3.#include <stdio.h>
main()
{ int i;
for (i=1;i<=5;i++)
switch (i%5)
{ case 0:printf(“*”);break;
case 1:printf(“#”);break;
default:printf(“\n”);
case 2:printf (“&”); 运行结果:
}
}
4. main()
{ int i,b,k=0;
for (i=1;i<=5;i++)
{b=i%2;
while (b-->=0) k++;
} 运行结果:
printf (“%d,%d”,k,b);
}
5. #include <stdio.h>
main()
{ char ch[7]={“12ab56”};
int i,s=0;
for (i=0;ch[i]>=’0’&&ch[i]<=’9’;i+=2)
s=s*10+ch[i]-‘0’; 运行结果:
printf (“%d\n”,s);
}
6. main()
{ int a=2,i;
for (i=0;i<3;i++)
printf (“%4d”,f(a));
}
f(int a)
{ int b=0;static int c=3;
b++;c++; 运行结果:
return(a+b+c);
}
四、 编写程序(20分)
1. 从键盘输入的10个整数中,找出第一个能被7整除的数。若找到,打印此数后退出循环;若未找到,打印“not exist”。
2. 已有变量定义和函数调用语句:int x=57;isprime(x);函数isprime()用来判断一个整数a是否是素数,若是素数,函数返回1,否则返回0。请编写isprime函数。
insprime( int a)
{……}; {……}
《C语言程序设计》试题十一答案
一、 单项选择题(共30分,每题1分)
1.A.2.B.3.A 4. C 5. D 6. B 7. A 8. B 9. B 10. A 11. D 12. A
13. C 14. C 15. D 16. A 17. B 18. C 19. A 20. D 21. D 22. A 23. A 24. B 25. C 26. A 27. A 28. B 29. C 30. A
二、 填空(20分,每空1分)
1. 单精度,双精度
2. 数字、下划线、英文字母
3. 1个
4. 与&&、或||、非!
5. y%2!=0
6. x<z||y<z
7. 行列
8. 0,4
9. 0,8
10.return,void
11.地址传送,值传送
三、 读程序(30分)
1.-1 2.&
3.#&
*
4.8,-2 5.1 6. 7 8 9
四、 编写程序(20分)
1.#include<stdio.h>
main()
{int i,a;
for (i=1;i<=10;i++)
{scanf(“%d”,&a);
if (a%7= =0) {printf (“%d”,a); break;}
}
if (i>10) printf (“not exist”);
}
2.insprime(int a)
{int i;
for (i=2;i<=a-1;i++)
if (i%2= =0)return(0); =0)return(0);
return(1); }
《C语言程序设计》试题十二 1
一、 填空与选择 1
二、 读程序(结果写在试卷的右边) 2
三、 程序填空:(根据题意,将空缺的语句补上。) 4
四、改错: 5
五、编程: 6
《C语言程序设计》试题十二答案 7
《C语言程序设计》试题十二
一、 填空与选择
1. C语言从源程序的书写到上机运行输出结果要经过_______________四个步骤。
2. C语言的表达式与语句的区别在于___________________________________。
3. C语句_____________ (有、没有)输入、输出语句。
4. 结构化程序的编写有_______________________________三种程序结构。
5. 表达式10/3*9%10/2的值是___________________。
6. 设有“int x=2,y”说明,则逗号表达式“y=x+5,x+y”的值是_________________。
7. 设有“int x=1”,则“x>0?2*x+1: 0”表达式的值是______________________。
8. 变量Y满足以下两条件中的任意一个:①能被4整除,但不能被100整除;②能被400整除。请用逻辑表达式表示所给条件。
_________________________________________________________________
9. 逻辑运算符“&&、||、 !”中的优先级是____________________
10. C语言是由________________基本单位组成的。
A.过程 B.语句 C.函数 D.程序
11.有如下语句: X+Y*Z>39 && X*Z||Y*Z是什么表达式__________
A.算术表达式 B.逻辑表达式 C.关系表达式 D.字符表达式
12.下面几种说法中哪个是正确的?_____________
A.else语句需与它前面的if语句配对使用;
B. else语句需与前面最接近它的if语句配对使用;
C. else语句需与前面最接近它,且没有和其它else语句配对的if语句配对;
D.以上都正确。
13.有说明语句:char a[ ]=“this is a book”。请问该数组到底占了几个字节?
A.11 B.12 C.14 D.15
14.设整型变量a为5,使b不为2的表达式是___________
A. b=a/2 B. b=6-(--a) C. b=a%2 D.b=a>3?2:1
15.设整型变量n的值为2,执行语句“n+=n-=n*n”后,n的值是_________
A.0 B.2 C.-4 D. 4
16.执行语句“x=(a=3,b=a--)”后,x,a,b的值依次为_________
A. 3, 3, 2 B. 3,2,2 C.3,2,3 D.2,3,2
17.如果X=5,执行语句X*=X+=X*3后,则X的值为__________
A.100 B. 400 C. 450 D. 900
18.下列常量中哪个是不合法的_________________
A.2e32.6 B. 0.2e-5 C. “basic” D. 0x4b00
19.下列标识符错误的是_______
A. x1y B._123 C. 2ab D. _ab
20. c语言中int型数-8在内存中的存储形式为_____
A.1111111111111000 B. 1000000000001000
C. 0000000000001000 D. 1111111111110111
二、 读程序(结果写在试卷的右边)
1. 写出下列程序段的输出结果:
main()
{int x=5; int y=10;
printf("%d\n",x++);
printf("%d\n",++y); }
2. 下面程序的输出结果是什么?
#include "stdio.h"
main()
{ int x=3;
switch(x)
{ case 1:
case 2:printf("x<3\n");
case 3:printf("x=3\n");
case 4:
case 5:printf("x>3\n");
default:printf("x unknow\n"); } }
3.根据源程序,写出相应的数学表达式
#include “stdio.h”
main()
{ int x,y;
scanf(“%d”,&x);
if (x<0) y= -1;
else if (x= = 0)
y=0;
else y=1;
printf(“x=%d,y=%d\n”,x,y); }
4. 读出下列程序的输出结果:
main()
{ int a=1,b=1,c=1;
printf(“%d,%d,%d\n”,a,b,c)
a+=b+=++c;
printf(“%d,%d,%d\n”,a,b,c);
printf(“%d,%d,%d\n”,a++,--b,++c);
printf(“%d,%d,%d\n”,a,b,c); }
三、 程序填空:(根据题意,将空缺的语句补上。)
1. 下列程序的功能是计算圆的面积,将程序补充完整。
#define PI = 3.14159
main()
{ float r,s;
printf(“Enter a number r:”);
____________________________
s=PI*r*r
___________________; }
2. 该程序完成的功能是求1+2+3+…+10的累加和,并进行累加和的输出打印。变量sum是存放累加值的。
#include "stdio.h"
main()
{ ________________
i=1,sum=0;
for(; i<=10;)
{ sum+=i;
_________ }
printf("%d\n",sum); }
四、改错:
求Fibonacci数列40个数。这个数列有如下特点:第1,2 两个数为1,1。从第3个数开始,该数是其前面两个数之和。即:
F1=1 (n=1) F2=1 (n=2) Fn=Fn-1+Fn-2 (n≥3)
程序如下,请改正:
main()
{ long int f1,f2
int i;
f1=f2=1;
for (i=1, i<=20 , i- -);
{ printf(“%12ld %12ld”,f1,f2);
if (i%4=0) printf(“\n”);
f1=f1+f2
f2=f2+f1; } }
五、编程:
1. 给定一个正整数,判断它是否能同时被3、5、7整除。
2.计算分段函数:
3.从键盘录入10个数到数组A,请将它们进行由小到大的排序(方法不限)。
《C语言程序设计》试题十二答案
一、 填空与选择
1. 编辑、编译、连接、执行
2. “表达式”未尾加“;”号就成“语句”
3. 没有
4. 顺序、分支、循环
5. 3 6. 9 7. 3 8. y%4= =0 && y%100!=0 || y%400==0
9. ! &&||
10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
C B C D C C C B A C A
二、 读程序
1. 5 2. X=3 4. 1,1,1
11 X>3 4,3,2
X unknow 4,2,3
5,2,3
3.
三、 程序填空:(根据题意,将空缺的语句补上。)
1. 下列程序的功能是计算圆的面积,将程序补充完整。
#define PI = 3.14159
main()
{float r,s;
printf(“Enter a number r:”);
____scanf(“%f”,&r);________________________
s=PI*r*r
____printf(“s=%f ”,_s); }
2. int I , sum
I++;
四、 改错: main()
{ long int f1,f2;
int i;
f1=f2=1;
for (i=1;i<=20; i++);
{ printf(“%12ld %12ld”,f1,f2);
if (i%4=0) printf(“\n”);
f1=f1+f2;
f2=f2+f1; } }
五、 编程:(略)
1.main()
{
int a;
scanf(“%d”,&a);
if(a%3==0&&a%5==0&&a%7==0)
printf(“%d”,a);
}
2.#include<math.h>
main()
{
float x,y;
scanf(“%f”,&x);
if(x>20)
y=x*x+3*x+2;
if(x>=10&&x<20)
y=sqrt(3*x)-2;
if(x>10)
y=1/x+fabs(x);
printf(“%f”,y);
}
3. main()
{ int a[10]={10,9,8,7,6,5,4,3,2,1};
int b,c,d;
for(b=0;b<9;b++)
for(c=0;c<9-b;c++)
if(a[b]>a[c])
{ b=a[b];a[b]=a[c];a[c]=d;}
for(b=0;b<9;b++)
printf(“%d”,a[b]);
}bsp; }
《C语言程序设计》试题十三 1
一、单项选择题。(每题1分,共20分) 1
二、填空题。(每空1分,共15分) 3
三、将下列程序补充完整。(每空2.5分,共30分) 3
四、按格式写出程序运行结果。每题4分,共16分。 5
五、按题目要求写出可运行程序:(19分) 6
《C语言程序设计》试题十三答案 7
《C语言程序设计》试题十三
一、单项选择题。(每题1分,共20分)
1. C程序的基本单位是:( )
A.子程序 B.程序 C.子过程 D.函数
2.在C语言中,非法的八进制是:( )
A.016 B.018 C.017 D.02
3. 不是C语言实型常量的是:( )
A.55.0 B.0.0 C.55.5 D.55e2.5
4 .字符串“xyzw”在内存中占用的字节数是:( )
A.6 B.5 C.4 D.3
5. 若已定义f,g为double类型,则表达式:f=1,g=f+5/4的值是:( )
A.2.0 B.2.25 C.2.1 D.1.5 D.1.5 D.1.5 D.1.5
6. 若有语句char c1=`d`,c2=`g`;printf(“%c,%d\n”,c2-`a`,c2-c1);则输出结果为:( )
(a的ASCII码值为97)
A.M,2 B.G,3 C.G,2 D.D,g
7. 使用语句scanf(“a=%f,b=%d”,&a,&b);输入数据时,正确的数据输入是:( )
A.a=2.2,b=3 B.a=2.2 b=3 C.2.2 3 D.2.2,3
8.表示关系12<=x<=y的C语言表达式为:( )
A.(12<=x)&(x<=y) B. (12<=x)&&(x<=y) C. (12<=x)|(x<=y)
D.(12<=x)||(x<=y)
9.设x=1,y=2,m=4,n=3,则表达式x>y?x:m<n?y:n的值为:( )
A.1 B.3 C.2 D.4
10. 若有说明和语句:int a=5,b=6;b*=a+1;则b的值为:( )
A.5 B.6 C.31 D.36
11. 设整型变量s,t,c1,c2,c3,c4的值均为2,则执行语句(s=c1==c2)||(t=c3>c4)后,s,t的值为:( )
A.1,2 B.1,1 C.0,1 D.1,0
12. 语句for(a=0,b=0;b!=100&&a<5;a++)scanf(“%d”,&b); scanf最多可执行次数为:( )
A.4 B.6 C.5 D.1
13. 对于for(s=2; ;s++)可以理解为:( )
A. for(s=2;0 ;s++) B. for(s=2;1 ;s++)
C. for(s=2;s<2 ;s++) D. for(s=2;s>2;s++)
14. 若有char h=`a`,g=`f`;int a[6]={1,2,3,4,5,6};则数值为4的表达式为:( )
A.a[g-h] B.a[4] C.a[`d`-`h`] D.a[`h`-`c`]
15. 设:char s[10]={“october”};则printf(“%d\n”,strlen(s));输出是:( )
A.7 B.8 C.10 D.11
16. 若有int a[3][5]={2,2},{2,6},{2,6,2}},则数组a共有个元素:( )
A.8 B.5 C.3 D.15
17. 设int a=5,b,*p=&a,则使b不等于5的语句为: ( )
A.b=*&a B.b=*a C.b=*p D.b=a
18. 若有int a[7]={1,2,3,4,5,6,7},*p=a则不能表示数组元素的表达式是: ( )
A.*p B.*a C.a[7] D.a[p-a]
19. 若有int b[4]={0,1,2,3},*p则数值不为3的表达式是: ( )
A.p=s+2,*(p++) B.p=s+3,*p++ C. p=s+2,*( ++p) D.s[3]
20.设有如下定义:struct jan{int a;float b;}c2,*p;若有p=&c2;则对c2中的成员a的正确引用是:( )
A.(*p).c2.a B.(*p).a C.p->c2.a D. p.c2.a
二、填空题。(每空1分,共15分)
1.C语言标识符由 _________、__________和___________来构造。
2.在C语言中,字符串常量是用 一串字符。
3.若有说明和语句:int a=25,b=60;b=++a;则b的值是 。
4.若int x=5;while(x>0)printf(“%d”,x--);的循环执行次数为 。
5.若有int a[5],*p=a;则p+2表示第 个元素的地址。
6.若有说明和语句:int a=5,b=6,y=6;b-=a;y=a++则b和y的值分别是 、 。
7.已知整型变量a=3,b=4,c=5,写出逻辑表达式a||b+c>c&&b-c的值是 。
8.C程序设计的三种基本结构是 ________、________和________。
9.数组是表示类型相同的数据,而结构体则是若干 数据项的集合。
10.C语言中文件是指 。
三、将下列程序补充完整。(每空2.5分,共30分)
1.输入三角形的三条边a,b,c,求三角形的面积。
#include “math.h”
#include “stdio.h”
main( )
{float a,b,c,d,t,s;
printf(“请输入三角形的三条边:”);
scanf(“%f,%f,%f”,&a,&b,&c);
if (1)
printf(“%f%f%f不能构成三角形!”, a,b,c);
else {t=(a+b+c)/2;
s= (2)
printf(“a=%7.2f,b=%7.2f,c=%7.2f,area=%7.2f\n”, a,b,c,s);}}
(1)
(2)
2.输入两个整数,n1,n2(要求n1<n2),统计两整数范围内被3整除的数的个数。
#include “stdio.h”
main()
{int n1,n2,j,n=0;
printf(“\n请输入两个数:”);
scanf ( (3) );
if(n1>n2){ (4) }
for(j=n1;j<=n2,j++)
if (5) n++;
printf(“a=%5d,b=%5d,n=%5d\n”n1,n2,n);}
(3)
(4)
(5)
3.输入两个整数,n1,n2(要求n1<n2),统计两整数范围内的素数的个数。
#include “math.h”
#include “stdio.h”
int prime (int x)
{int k;
for (6)
if (x%k==0) return(0);
return(1)}
main()
{int a,b,j,n=0;
printf(“\n请输入两个数:”);
scanf(“%d,%d”,&a,&b);
if(a>b){ (7) }
for(j=a;j<=b,j++)
if( (8) ) n++;
printf(“a=%4d,b=%4d,n=%4d\n”a,b,n);}
(6)
(7)
(8)
4.编写程序,输入n个整数(n由键盘输入),统计其中正数、负数和零的个数。
#include “stdio.h”
main( )
{int x,n,k,k1=0,k2=0,k3=0;
printf(“input n=:”);
(9)
for(k=0;k<n;k++)
{scanf(“%d”,&x);
if (x<0)k1++;
(10) ;
else k3++;
printf(“k1=%4d,k2=%4d,k3=%4d\n”,k1,k2,k3)}}
(9)
(10)
5.设计一个程序完成以下功能:若从键盘输入英文字母,则原样输出;输入其他字符不理会,直到输入Q键结束.]
#include “stdio.h”
main( )
{char ch;
do{ch=getchar();
if ( (11) )break;
else if( (12) )putchar(ch);
}while(1);}
(11)
(12)
四、按格式写出程序运行结果。每题4分,共16分。
1.格式化输出函数]
main()
{ int a=1,c=65,d=97;
printf(“a10=%d,a8=%o,a16=%x\n”,a,a,a);
printf(“c10=%d,c8=%o,c16=%x,cc=%c\n”c,c,c,c);
d++;
printf(“d10=%d,dc=%c\n”d,d);}
输出结果:
2. 循环结构
main()
{ int y=9,k=1;
for(;y>0;y--)
{if(y%3==0){printf(“%4d”--y);continue;}
k++;}
printf(“\nk=%4d,y=%4d\n”,k,y);}
输出结果:
3.数组
#include “stdio.h”
main( )
{int k,j;
in ta[]={3,-5,18,27,37,23,69,82,52,-15};
for(k=0,j=k;k<10;k++)
if(a[k]>a[j])j=k;
printf(“m=%d,j=%d\n”,a[j],j);}
输出结果为:
4.字符输出
main( )
{char *p,s[]=“ABCD”;
for ( p=s;p<s+4;p++)
printf(“%s\n”,p);}
输出结果:
五、按题目要求写出可运行程序:(19分)
1.求元素个数为10的一维数组元素中的最大值和最小值。
2.将矩阵 9 7 5 倒置为 9 3 4
3 1 2 7 1 6
4 6 8 5 2 8
3.编写函数:输入两个正整数m,n,求它们的最大公约数和最小公倍数。
编写程序如下:
《C语言程序设计》试题十三答案
一、单项选择题:
1.D 2.B 3.D 4.B 5.B 6.B 7.A 8.B 9.B 10.C
11.A 12.C 13.B 14.C 15.A 16.D 17.B 18.C 19.A 20.B
二、填空题:
1.字母、数字和下划线 2.双引号 3.26 4.5 5.三(3) 6.1,20
7.1 8.顺序结构、选择结构、循环结构 9.类型不同
10.存储在外部介质上的相关数据集合。
三、将下列程序补充完整。
1.(1)((a+b<c)||(b+c<a)||(a+c<b))(2)sqrt(t*(t-a)*(t-b)*(t-c))
2.(3)”%d%d”,&n1,&n2 (4) j=n1;n1=n2;n2=j;(5)j%3==0
3.(6)(k=2;k<=sqrt(x);k++) (7) j=a;a=b;b=j;(8)prime(j)
4.(9)scanf(“%s”,&n)(10)else if (x==0)
5.(11)ch==`Q`||==`q`(12)ch>=`A`&&ch<=`Z`||ch>=`a`&&ch<=`z`
四、按格式写出程序运行结果。
1.a10=1,a8=1,a16=1
c10=65,c8=101,c16=41,cc=A
d10=98,dc=b
2.8 5 2
k=4 y=0
3.m=82,j=7
4.ABCD
BCD
CD
D
五、按题目要求写出可运行程序。
1.#include “stdio.h”
main()
{ int term[10];
int i,max,min;
printf(“请输入10个整数:”);
for(i=0;i<10;i++)
scanf(“%d”,&term[i]);
(max=term[0];
min=term[0];
for(i=0;i<10;i++)
{if(term[i]<min)min=term[i];
if(term[i]>max)max=term[i];}
printf(“max=%d,min=%d”,max,min);}
2. main()
int j,k,x;
int a[][3]={9,7,5,3,1,2,4,6,8};
for(j=0;j<3;j++)
for(k=j+1,k<3;k++)
{x=a[j][k];a[j][k]=a[k][j];a[k][j]=x;}
for(j=0;j<3;j++)
{for(k=0,k<3;k++)
printf(“%4d”,a[j][k]);}}
3.#include “stdio.h”
int gcd(int m,int,n)
{if(n==0)return(m);
else return(gcd(n,m%n));
int tim(int m,int,n)
return(m*n/gcd(m,n));}
main()
{int m,n,g,t;
printf(“enter two number please:”);
scanf(“%d,%d”,&m,&n);
g=gcd(m,n);t=tim(m,n);
printf(“gcd(m,n)=%d\n”,g);
printf(“tim(m,n)=%d\n”,t);}
《C语言程序设计》试题十四 1
一、选择题(1—14每题1分,15-18每题1.5分,共20分) 1
二、填空题(每空1分,共12分) 3
三、程序补充题(每空3分,共24分) 3
四、按格式写出程序运行结果。(每题4分共20分) 4
五、按题目要求写出可运行程序:(24分) 5
《C语言程序设计》试题十四答案 7
《C语言程序设计》试题十四
一、选择题(1—14每题1分,15-18每题1.5分,共20分)
1.可选作用户标识符的一组标识符是( )
A void B c5_b8 C For D 3a
Define _53 -ab DO
WORD IF Case int
2.在C语言中,非法的八进制是:( )
A.018 B.016 C.017 D.0257
3.在TC中,基本int a[4]类型变量所占的字节数是( )
A.1 B.2 C.4 D.8
4.设x,y,z,k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为( )
A.4 B.16 C.32 D.52
5.设int型变量a为5,使b不为2的表达式是( )
A.b=a/2 B.b=6-(-a) C.b=a%2 D.b=a>3?2:1
6.一个C程序的执行是从( )
A.main()函数开始,直到main()函数结束。 B.第一个函数开始,最后一个函数结束。
C.第一个语句开始,最后一个语句结束。 D.main()函数开始,直到最后一个函数。
7.C语言中用于结构化程序设计的三种基本结构是( )
A.if、switch、break B.if while for
C.while do- while for D.顺序结构、选择结构、循环结构
8.以下叙述中不正确的是( )
A.在不同的函数中可以使用相同名字的变量。
B.函数中的形式参数是局部变量。
C.在一个函数内的符合语句中定义变量在本函数范围内有效。
D.在一个函数内定义的变量只在本函数范围内有效。
9.若k为int 类型,且k的值为3,执行语句k+=k-=k*k后,k的值为( )
A.-3 B.6 C.-9 D.-12
10.有以下程序
main()
{int x=3,y=3,z=3;
printf(“%d %d\n”(++x,y++),++z);} 输出结果( )
A.3 3 B.3 4 C.4 2 D.4 3
11.若有定义和语句:int a=21,b=021; printf(“%x,%d \n”,a,b);输出结果( )
A.17,15 B.16,18 C.17,19 D.15,17
12.已有定义语句:int x=3,y=4,z=5;则值为0的表达式是( )
A.x>y++ B.x<=++y C.x!=y+z>y-z D.y%z>=y-z
13.能正确表达逻辑关系“a≥10或a≤0”的C语言表达式是( )
A.a>=10 or a<=0 B.a>=10||a<=0 C.a>=10&&a<=0 D.a>=10|a<=0
14.n为整型常量,且n=2;while(n--);printf(“%d”,n);执行后的结果是:( )
A.2 B.1 C.-1 D.0
15.若有以下定义和赋值double *q,a=5.5; int *p,i=1; double *q,a=5.5;int *p,i=1; p=&i; q=&a; 以下对赋值语句叙述错误的是( )。
A)*p=*q 变i中的值。 B)p=oxffd0;将改变p的值,使p指向地址为ffd0的存储单元。
C)*q=*p;等同于a=i; D)*p=*q;是取q所指变量的值放在p所指的存储单元
16.若有以下定义语句double a[8],*p=a; int i=5; 对数组元素错误的引用是( )
A)*a B) *a[5] C)*(p+i) D)p[8]
17.以下选项中不能使指针正确指向字符串的是( )
A) char *ch;*ch=“hello” B) char *ch=“hello”
C) char *ch=“hello”;ch=“bye” D) char *ch”;ch=“hello”
18.若有以下说明和定义语句:union uti {int n;double g;char ch[9];}
struct srt{float xy;union uti uv;}aa;则变量aa所占内存的字节数是( )
A) 9 B) 8 C) 13 D) 17
二、填空题(每空1分,共12分)
1.C语言源程序文件的扩展名是 (1) ,经过编译后,生成文件的扩展名是 (2) ,经过连接后,生成文件的扩展名是 (3) 。
2.把a,b定义成长整型变量的定义语句是 (4)
3.设x和y均为整型变量,且x=3,y=2,则1.0*x/y表达式的值为 (5)
4.已有定义:float x=5.5;则表达式:x=(int)x+2的值为 (6)
5.已有定义:int x=0,y=0;则表达式:(x+=2,y=x+3/2,y+5)后,变量x的值为 (7),变量y的值为 (8),表达式的值为 (9) 。
6.执行以下for(i=1;i++<=5)语句后,变量i的值为(10) 。
7.数组是表示类型相同的数据,而结构体则是若干 (11) 数据项的集合。
8.C语言中文件是指 (12) 。
三、程序补充题(每空3分,共24分)
1.从键盘上输入若干个学生成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。
main()
{ float s,gmax,gmin;
scanf(“%f,”&s);
gmax=s;gmin=s;
while (1)
{if(s>gmax)gmax=s;
if (2) gmin=s;
scanf(“%f”,&s);}
printf(“gmax=%f\ngmin=%f\n”gmax,gmin);}
2.求任意两个正整数的最大公约数和最小公倍数
#include “stdio.h”
main()
{int r,m,n,temp,gcd,lcm;
printf(“enter two number please:”);
scanf(“ (3) ”,&m,&n);
lcm=m*n;
while(m%n!=0)
{r=m%n;(4);n=r;}
gcd=n;lcm=lcm/n;
printf(“gcd=%d\nlcm=%d\n”,gcd,lcm);}
3.求y的x次方。
Double fun1(double y,int x)
main(){int i;
double z=1.0;
for(i=1;i (5) ;i++)
z= (6) ;
return z;}
4.对输入一个整数进行判断,若是偶数,输出even,否则输出odd,在子函数fun2功能是判定整数是否为偶数,若是偶数,返回1,否则返回0。
int fun2(int x)
{if(x%2==0) (7) ;
return 0 ;}
main()
{int n;
scanf(“%d”,&n);
if (8) printf(“even\n”);
else printf(“odd\n”);}
四、按格式写出程序运行结果。(每题4分共20分)
1. main()
{int a=1,c=65,d=97;
printf(“a8=%o,a16=%x\n”,a,a);
printf(“c10=%d,c8=%o,c16=%x,cc=%c\n”c,c,c,c);
d++;
printf(“d10=%d,dc=%c\n”d,d);}
程序运行结果为:
2.有以下程序
void f(int x,int y)
{int t;
if(x<y){t=x;x=y;y=t;}}
main()
{int a=4,b=3;c=5;
f(a,b); f(a,c); f(b,c);
printf(“%d,%d,%d”,a,b,c);} 执行后的结果是:( )
3.程序执行的结果是( )
main()
{int i=0,a=2;
if(i==0)printf(“**”);
else printf(“$$”);
printf(“*”);}
4.有以下程序
main()
{int sum=0,n;
scanf(“%d”,&n);
while(n<=5)
{sum+=n;
n++;}
printf(“sum=%d”,sum);}
当输入:1 程序运行的结果为( )
5.执行以下程序段,输出的结果为( )
main()
{ int a[2][3]={{3,2,7},{4,8,6}};
int *p,m;
p=&a[0][0];
m=(*p)*(*(p+2))*(*(p+4));
printf(“m=%d”,m);}
五、按题目要求写出可运行程序:(24分)
1.模拟计算器功能,编写程序,根据用户输入的运算符,对两个数进行运算。(用switch语句) ()
2.求3~100之间的全部素数,并统计素数个数。
3.编写程序完成矩阵转置,即将矩阵的行和列对换:
. 如将矩阵 9 7 5 1 倒置为 9 3 4
3 1 2 8 7 1 6
4 6 8 10 5 2 8
1 8 10
《C语言程序设计》试题十四答案
一、选择题(20分)
1.B 2.A 3.B 4.C 5.C 6.A 7.D 8.C 9.D 10.B
11.D 12.A 13.B 14.C 15.B 16.D 17.A 18.C
二、填空题(12分)
(1).C (2).OBJ (3).EXE(小写也正确) (4)long(int) a,b;(5)1.5 (6)7.000000 (7)2 (8)3
(9)8 (10)7 (11)类型不同 (12)存储在外部介质上的相关数据集合
三、程序补充题(24分)
(1)s>=0 (2)s<gmin (3)%d,%d (4) m=n (5)i<=x (6)z*y (7)return 1 (8)fun2(n)
四、按格式写出程序运行结果(20分)
1.a8=1,a16=1
2. 4,3,5 3. *** 4.sum=15 5. m=56
c10=65,c8=101,c16=41,cc=A
d10=98,dc=b
五、编写程序(24分)
1.main()
{ float x,y;
char operator;
scanf(“%f,%c,%f”,&x,&operator,&y)
switch(operator)
{ case `+`:printf(“\n%.2f+%.2f”,x,y,x+y);break;
case `-`:printf(“\n%.2f-%.2f”,x,y,x-y);break;
case `*`:printf(“\n%.2f-%.2f”,x,y,x*y);break;
case `/`:printf(“\n%.2f-%.2f”,x,y,x/y);break;
case `/`: if(y==0)
{printf(“error!”);break;}
printf(“\n%.2f-%.2f”,x,y,x/y);break;
default:printf(“operator is invalid”);}}
2. #include “math.h”
main()
{ int m,k,i,n;
for(m=3;m<=100;m+=2)
{ k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0) break;
if(i>=k+1)
{printf(“%d”,m);
n++;}
}}
3. #include “stdio.h”
#define ROW 3
#define COL 4
main()
{int i,j,a[ROW][COL], a[ROW][COL];
for(i=0;i<=ROW;i++)
for(j=0;j<=COL;j++)
scanf(“%d”,&a[i][j]);
for(i=0;i<=ROW;i++)
for(j=0;j<=COL;j++)
b[j][i]=a[i][j];
for(i=0;i<=ROW;i++)
for(j=0;j<=COL;j++)
printf(“%5d”,b[i][j]);}}
《C语言程序设计》试题十五 1
一、填空与选择 1
二、读程序 3
二、 程序填空:(根据题意,将空缺的语句补上。) 6
四、编程: 8
《C语言程序设计》试题十五答案 9
《C语言程序设计》试题十五
一、填空与选择
1. C语言从源程序的书写到上机运行输出结果要经过_______________四个步骤。
2. C语言的表达式与语句的区别在于___________________________________。
3. C语句_____________ (有、没有)输入、输出语句。
4. 结构化程序的编写有_______________________________三种程序结构。
5. C语言中,变量的存储类别共有四种,即时___________________和寄存器型。
6. 表达式10/3*9%10/2的值是___________________。
7. 设有“int x=2,y”说明,则逗号表达式“y=x+5,x+y”的值是_________________。
8. 设有“int x=1”,则“x>0?2*x+1: 0”表达式的值是______________________。
9. 变量Y满足以下两条件中的任意一个:①能被4整除,但不能被100整除;②能被400整除。请用逻辑表达式表示所给条件。
_________________________________________________________________
10.C语言调用函数中,参数的虚实结合是_________________
A. 传值 B. 传址 C. 不分
11. 逻辑运算符“&&、||、 !”中是短路运算符号是____________________
12. C语言是由________________基本单位组成的。
A.过程 B.语句 C.函数 D.程序
13.有如下语句: X+Y*Z>39 && X*Z||Y*Z是什么表达式__________
A.算术表达式 B.逻辑表达式 C.关系表达式 D.字符表达式
14.若进入TC集成环境后,运行(RUN)源程序系统提示包含文件(Include)或库文件(Lib) 无法定义时,应修改TC菜单中的哪一项中的哪个子菜单项?
A.File\Change B. File\Directory
C. Option\Directories D.TC系统出故障了,应重新安装TC环境。
15.下面几种说法中哪个是正确的?_____________
A. else语句需与它前面的if语句配对使用;
B. else语句需与前面最接近它的if语句配对使用;
C. else语句需与前面最接近它的,且没有和其它else语句配对的if语句配对;
D. 以上都正确。
16.定义结构体的关键字是_______________
union enum C.struct D.typedef17.定义联合体的关键字是___________________
18.链表的首指针能根据程序的需要进行移动读取链表中的某项内容,即链表可以没有首指针吗?
A.当然可以 B.不可以 C.无所谓 D.最好不要移动首指针
19.定义一个数组a是一个具有3个元素的指针数组,它的定义语句格式是____
A. <类型标识符> (*a)[3] B. <类型标识符> *a[2]
C. <类型标识符> *a[3] D.以上写法都不对。
20.有说明语句:char a[ ]=“this is a book”。请问该数组到底占了几个字节?_____
A.11 B.12 C.14 D.15
21.设整型变量a为5,使b不为2的表达式是___________
A.b=a/2 B.b=6-(--a) C. b=a%2 D.b=a>3?2:1
22.设整型变量n的值为2,执行语句“n+=n-=n*n”后,n的值是_________
A.0 B.2 C.-4 D. 4
23.设A,B均为整型变量,下列表达式中不是赋值表达式的是__________
A. A=b+3,b+5,--b B. A=4*5; C. A=++A-B D.a=b=5
24.执行语句“x=(a=3,b=a--)”后,x,a,b的值依次为_________
A.3,3,2 B. 3,2,2 C.3,2,3 D.2,3,2
25.下列对数组操作不正确的语句是_________
A.int a[5]; B.char b[ ]={‘h’,’e’,’l’,’l’,’o’};
C. int a[ ]={2,3,4,5}; D. char b[3 ][ ]={1,2,3,4,5,6};
26.设A为存放短整型的一维数组,如果A的首地址为P,那么A 中第I个元素的地址为_______________
A. P+I*2 B. P+(I-1)*2 C. P+(I-1) D. P+I
27.如果X=5,执行语句X*=X+=X*3后,则X的值为__________
A.100 B.400 C. 450 D. 900
28.下列常量中哪个是不合法的_________________
A.2e32.6 B. 0.2e-5 C. “basic” D. 0x4b00
29.下列标识符错误的是_______
A. x1y B._123 C. 2ab D. _ab
30. c语言中int型数-8在内存中的存储形式为_____
A.1111111111111000 B. 1000000000001000
C. 0000000000001000 D. 1111111111110111
二、读程序
1.写出下列程序段的输出结果:
main()
{int x=5;
int y=10;
printf("%d\n",x++);
printf("%d\n",++y); }
2.写出下列程序的输出结果:
main()
{int x,y,z;
x=y=z=-1;
printf("x=%d\ty=%d\tz=%d\n",x,y,z);
++y&&++x||++z;
printf("x=%d\ty=%d\tz=%d\n",x,y,z);
x=y=z=-1;
++x||y++&&z;
printf("x=%d\ty=%d\tz=%d\n",x,y,z);}
3.下面程序的输出结果是什么?
#include "stdio.h"
main()
{ int x=3;
switch(x)
{ case 1:
case 2:printf("x<3\n");
case 3:printf("x=3\n");
case 4:
case 5:printf("x>3\n");
default:printf("x unknow\n"); } }
4.标记出变量 p、q、 a、b、c、x、y和c1的作用范围和变量性质(局部、全局)
int p=1,q=5;
float f1(int a)
{int b,c;
char ch;
… 局部变量ch在此范围内有效
}
char c1;
char f2(int x,int y)
{int i,j;
5.根据源程序,写出相应的数学表达式
#include “stdio.h”
main()
{int x,y;
scanf(“%d”,&x);
if (x<0) y= -1;
else if (x= = 0)
y=0;
else y=1;
printf(“x=%d,y=%d\n”,x,y); }
6.分析下列程序所完成的功能。
main()
{int a,b,c,*pa=&a,*pb=&b,*pc=&c,*p;
scanf("%d,%d,%d",pa,pb,pc);
if (*pa>*pb)
p=pa,pa=pb,pb=p;
if (*pa>*pc)
p=pa,pa=pc,pc=p;
if (*pb>*pc)
p=pb,pb=pc,pc=p;
printf("%d<=%d<=%d",*pa,*pb,*pc); }
二、 程序填空:(根据题意,将空缺的语句补上。)
1.该程序完成的功能是求1+2+3+…+10的累加和,并进行累加和的输出打印。变量sum是存放累加值的。
#include "stdio.h"
main()
{ ________________
i=1,sum=0;
for(; i<=10;)
{sum+=i;
_________ }
printf("%d\n",sum); }
2.阅读函数,根据函数完成的主要功能,补充、完善主函数。
float av(float a[],int n)
{int i;float s;
for (i=0,s=0;i<n;i++) s=s+a[i];
return (s/n); }
main()
{float a[10];
_______________
for (i=0;_________)
scanf("%f"______);
printf("%f",av(a,10)); }
3.从键盘输入一些字符,逐个把它们送到磁盘文件TEXT.txt中,直到输入一个“$”为止。请将空缺地方补充完善。
#include "stdio.h"
main()
{FILE *fp;
char ch;
if ((fp=fopen("test.txt","w"))==NULL)
{printf("cannot open file\n");
;
}
;
while(ch!='$')
{ fputc(ch,fp);putchar(ch);
ch=getchar(); }
_______________________; }
四、编程:
1.输入一单精度二维数组a[4][3],计算该二维数组中的最大元素的值及其所在位 置(行、列),并输出计算结果。
2.个学生,每个学生的信息包括学号、性别、姓名、四门课的成绩,从键盘上输入N个学生的信息,要求输出总平均成绩最高的学生信息,包括学号、性别、姓名和平均成绩。
《C语言程序设计》试题十五答案
一、 填空与选择
1. 编辑、编译、连接、执行
2. “表达式”未尾加“;”号就成“语句”
3. 没有
4. 顺序、分支、循环
5 自动型、外部型、静态型
9. y%4= =0 && y%100!=0 || y%400==0
6. 7. 8. 10. 11 12. 13. 14 15 16 17
3 9 3 A &&、|| C B C C C Union
18 19 20 21 22 23 24 25 26 27 28 29 30
B C D C C B C D D B A C A
二、 读程序
1. 5 2. X=-1 Y=-1 Z=-1 3. X=3
11 X=-1 Y=0 Z=0 X>3
X=0 Y=0 Z=-1 X unknow
4. 标记出变量 p、q、 a、b、c、x、y和c1的作用范围和变量性质(局部、全局)
int p=1,q=5;
float f1(int a)
{int b,c;
char ch; 全局变量P、Q在此范围内有效
… 局部变量a,b,c和ch在此范围内有效
}
char c1; 全局变量C1从此开始向下的范围内有效
char f2(int x,int y)
{int i,j; 局部变量X、Y在函数f2中有效
……
5.
6. 从小到大排序。
三、 程序填空:(根据题意,将空缺的语句补上。)
1. int I , sum
I++;
2. int I
I<10;I++
&a[I]
3. exit(o)
ch=getchar()
fclose(fp)
四、编程:(略)
1.
main()
{
float a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}
int m,n,b,c,d;
b=a[0][0];c=0;d=0;
for(m=0;m<4;m++)
for(n=0;n<4;n++)
if(b<a[m][n])
{ b=a[m][n]; c=m;d=n; }
printf(“a[%f][%f]=%f”c,d,a[c][d],); }
2. N个学生,每个学生的信息包括学号、性别,从键盘上输入N个学生的信 息,要求输出学号、性别等信息。
struct abc
{ char a[20];
char b; }
main()
{
struct abc stud1[10];
int a;
for(a=0;a<10;a++)
scanf(“%s”,a);