C语言期中测试卷
班级:学号:姓名:
一、判断题(1×10分)
1.在C语言中,一个double型所占字节数为8。
2.strcat的作用是连接两个字符数组中的字符串。
3.在求C语言的表达式时,只需考虑运算符的优先级。
4.在标准C中,变量必须先定义后使用。
5.逗号运算符的求值顺序是从左到右的,逗号表达式的值为第一个表达式的值。
6.在标准C中,以“%8.2f”形式输出的数字共有10位。
7.C语言不直接提供输入输出函数
8.一个C程序可以有若干个C源程序组成,而C源程序可以由若干个函数和预处理组成。
9.C语言中用于结构化程序设计的三种基本结构是顺序结构、选择结构、循环结构。
10.在标准C中,赋值表达式可以出现在表达式的任何位置。
二、选择题(2×10分)
第1题:假定a和b为int型变量,则执行以下语句后b的值为
a=1;b=10;
do{
b-=a;
a++;
}while(b--<0);
A、9
B、-2
C、-4
D、8
第2题:以下叙述不正确的是
A、一个C源程序可由一个或多个函数组成
B、一个C源程序必须包含一个main函数
C、C程序的基本组成单位是函数
D、在C程序中,注释说明只能位于一条语句的后面
第3题:若有以下说明,则数值为4的表达式是:
int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};
char c='a',d;
A、a[d-c]
B、a[4]
C、a['d'-'c']
D、a['d'-c]
第4题:下面有关for循环的正确描述是:
A、for循环只能用于循环次数已经确定的
B、for循环是先执行循环体语句,后判断表达式
C、在for循环中,不能用break语句跳出循环体
D、for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
第5题:下列符号中,不属于转义字符的是
A、\\
B、\x00
C、\n
D、\09
第6题:以下程序的输出结果是
# include
# include
void main()
{
char str[12]={'s','t','r','i','n','g'};
printf("%d\n",strlen(str));
}
A、6
B、7
C、12
D、13
第7题:下列符号可以作为变量名的是:
A、+a
B、*p
C、_DAY
D、next day
第8题:下列选项中,不属于C语言关键字的是
A、if
B、printf
C、sizeof
D、for
第9题:循环for(i=1,j=6; ++i!=--j; ) s=i+j; 将执行
A、2次
B、3次
C、4次
D、以上均不是
第10题:一个C语言程序是由
A、一个主程序和若干子程序组成
B、函数组成
C、若干过程组成
D、若干子程序组成
三、程序填空题(2×10分)
第1题:用π/4≈1 - 1/3 + 1/5 - 1/7 + ……公式求π的近似值。#include
void main()
{
int s;
float n,t,pi;
t=1; pi=0; n=1.0; s=1;
while(fabs(t)>1e-6)
{
pi=pi+t;
n=__1__;
s=-s;
t=__2__;
}
pi=__3__;
printf("pi=%10.6f \n",pi);
}
第2题:
以下的程序能使二维数组的主对角线为1,辅对角线元素为0,其它元素为其行列下标之和。请为程序填空。
#include
#define SIZE 4
void main()
{
int a[SIZE][SIZE], I,j;
for(I=0;I for(j=0;j if(__4__) a[I][j]=1; else if(__5__) a[I][j]=0; else ___6__; for(I=0;I { for(j=0;j printf("%d ",a[I][j]); ___7__; } } 第3题: 输入一行字符,统计并输出其中英文字母、数字和其他字符的个数。运行示例: Enter characters: f(x,y)=3x+5y-10 letter=5, digit=4, other=6 #include void main( ) { int digit, I, letter, other; char ch; digit = letter = other = 0; printf("Enter characters: "); while((__8__) != '\n') if(__9__||ch>='A'&&ch<='Z') letter++; else if (ch >= '0' && ch <= '9') digit ++; else__10_; printf("letter=%d, digit=%d, other=%d\n", letter, digit, other); } 四、程序阅读题(4×5分) 第1题: 阅读程序,写出运行结果。 #include void main ( ) { int a=1, b=4, c=3; if(a if(a printf(“%d, %d, %d\n”, a, b, c) ; } 第2题: 阅读程序,当输入为:ab*AB%CD时,写出程序运行结果。#include void main ( ) { char c; while( (c=getchar( ))!=’\n’) { if(‘A’<=c && c<=’Z’)putchar(c); else if(‘a’<=c && c<=’z’)putchar(c-32); } } 第3题: 阅读程序,写出运行结果。 #include void 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("x=%d,y=%d\n",x,y) ; } 第4题: 阅读程序,写出运行结果。 #include void main( ) { int a[ ][3]={9,7,5,3,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(I= =j ) s1=s1+a[I][j]; if(I+j= =2) s2=s2+a[I][j]; } printf( "%d,%d\n", s1, s2) ; } 第5题: 阅读程序,写出运行结果。 #include void main( ) { int num[10]={50,-20,-53,10,5,-29,14,-32,0,21}; int j , sum=0 ; for(j=0 ; j<10 ; j++) if(num[j]>0) sum+=num[j] ; printf("sum=%d\n", sum) ; } 五、程序设计题(3×10分) 第1题:把100-500之间的能同时被5和7整除的数输出来(用continue语句),5个一行,每个数占四列宽。 第2题:输出以下图形(用循环结构实现)。 * * * * * * * * * * * * * * * * * * * * * * * * * 第3题:用随机函数产生10个数,输出其中最大的数和最小的数。 C语言期中测试答卷 班级:学号:姓名: 三、程序填空题(2×10分) 五、程序设计题(3×10分)