上海市高等学校计算机等级考试试卷二级C语言程序设计( B 卷)
上海市高等学校计算机等级考试试卷
二级 C语言程序设计( B 卷)
一、单选题
1. 下列C语言的标识符中,不合法的标识符为____________
A. star
B. 1234
C. _a100
D. circuit9
2. 若已定义: int x=10;
则表达式 x=(4*5,x*5,x+25) 的值是 ______ 。
A. 20
B. 45
C. 125
D. 35
3. 若x是int类型变量,y是float类型变量,则为了将数据55和55.5分别赋给x和y,则执行语句: scanf(“%d, %f”,&x,&y,); 时,正确的键盘输入是 ______ 。
A. 55,55.5↙
B. x=55, y=55.5↙
C. 55↙55.5↙
D. x=55↙y=55.5↙
4. 若有说明语句:int x=25,y=20,z=30;
则执行语句:if(x>y) {y=z; z=x;} x=y; printf(“%d,%d,%d”,x,y,z); 后,输出是____________
A. 25,20,30
B. 30,30,25
C. 25,30,30
D. 25,30,25
5. 程序段:int num=2;
while(num)
printf(“%d ,”,num--);
的运行结果是_______________
A. 2,1,
B. 2,1
C. 2,1,0
D. 2,1,0,
6. 若有说明:int a[3][4],s;则对数组a的元素引用正确的是____________
A. s=0; for(i=0;i<=3;i++) for(j=0;j<4;j++) s+=a[i][j];
B. s=0; for(j=0;j<=4;j++) for(i=0;i<3;i++) s+=a[i][j];
C. s=0; for(i=0;i<4;i++) for(j=0;j<=3;j++) s+=a[j][i];
D. s=0; for(i=0;i<3;i++) for(j=0;j<4;j++) s+=a[i][j];
7. 如果形参获取实参的地址,则____________作为函数调用时的实参。
A. 数组名
B. 全局量
C. 数组中全部元素的值
D. 数组中的元素个数
8. 若有定义:int i,j,*pi=&i; 则与i==j等价的比较表达式是____________
A. i==*pi
B. *pi ==*&j
C. i==&j
D. i==**pi
9. 若有定义:struct person{
int id ;
char name[20];
} per,*s=&per;
则以下对结构体成员的引用中正确的____________
A. https://www.360docs.net/doc/3912470610.html,[0]
B. s->name[0]
C. https://www.360docs.net/doc/3912470610.html,[8]
D. per.id
10. 若有以下语句:char x=5,y=9,z; z=(y|x)<<2;
则z的二进制值是________________
A. 00011011
B. 00001010
C. 00110100
D. 00001100
二、填空题
1. 设有说明语句:int a=15, b=6;
则a/b的十进制数值为________
2. 设有说明语句:int x=3, y=2; 则计算表达式(x=0)&& (y=6*x) 后变量y的值是
_____________
3. 设a,b,c,t为整型变量,初值为a=3,b=4,c=5,执行完语句t=!(a+b)+c-1||b+c/2后,t 的值是_____________
4. 定义函数时,将其类型定义为void 则表示所定义的函数返回值为____________.
5. 下列程序的输出结果是________________
f(int a[])
{ int i=0;
while (a[i]<=10)
{ printf(“%d ”, a[i]);
i++;
}
}
main()
{ int a[]={8,4,10,11,9,20};
f(a);
}
6. 下列程序的输出结果是______________
long fib(int g)
{ switch(g){
case 0: return(0);
case 1:
case 2: return(2);
}
return ( fib(g-1) + fib(g-2) );
}
main()
{ long k;
k = fib(5);
printf("k=%ld\n", k);
}
7. 假定建立了以下链表结构:struct node{
int id ;
struct node *next;
} *head,*p;
如图6-11所示:指针p指向一个新结点,将新结点插入到链表中的两条C语言语句是【】
图6-11 新结点插入到链表
三、程序填空题 ( 本大题 3 道小题,每空 3 分,共 30 分)。
1. 下列程序的功能是:计算机给出10个不大于31的正整数让人猜,并根据猜中的情况统计总得分后输出。具体规则如下:
(1) 计算机每给出一个要猜的数最多允许中5次,第一次猜对得10分,第二次猜对得8分,第三次猜对得6分,第四次猜对得4分,最后一次猜对得2分,否则不得分。
(2) 若人猜的数太小,计算机给出提示“too small !”;若人猜的数太大,计算机给出提示“too large !”;若人猜对这个数,计算机给出提示“right !”,并给出下一个数继续让人猜;若一个数已经猜了5次都猜错,计算机给出提示“out of time !”,也给出下一个数继续让人猜。直至猜完10个数。
下面是人猜一个数的过程,有下划线的部分是人猜的数:(假设机器产生的随机数为9) 请输入你猜测的数y= 16
too large !
请输入你猜测的数y= 4
too small !
请输入你猜测的数y= 9
right ! (本题是第三次猜对,得6分)
#include
#include
void main()
{ int i, c, x, y, score, right;
1 ; /* 变量赋初值 */
for (i=1; i<=10; i++)
{ x=random(32);
/* 随机产生一个不大于31的要猜的数 */
c=0;
do{ c++;
printf("\n 请输入你猜测的数y= ");
scanf("%d", &y);
right=(y==x); /* 猜对时right为1,否则为0 */
if (right==1)
printf(" 2 ");
else
printf("%s\n", ( 3 )? "too small !" :"too large !");
}while(right==0&& 4 );
if (right)
score+= ( 5 ); /* 统计成绩 */
else
printf("out of time !\n");
}
printf("\nTotal score:%d\n", score);
}
2. 以下程序输入10行字符串,要求按字典顺序从小到大排序。
#include
#define N 10
int biggerthan( char *str1, char *str2 )
/*若字符串str1大于 str2时,则返回1*/
{ for ( ; *str1 || *str2; 1 )
{ if ( *str1 > *str2 )
return 2 ;
else if (*str1<*str2)
return 0 ;
}
return 0; /* 两个字符串相等 */
}
void main()
{ char ls[N][100];
char *ps[N], *t;
int i, j;
for ( i = 0; i < N; i++ )
{ gets( ls[i] );
ps[i] = ls[i];
}
for ( i = 0; i < N-1; i++ ) /* 冒泡法排序 */
for ( j = 0; j < N-i-1; j++ )
if ( biggerthan( 3 ) )
{ t = ps[j];
4 ;
5 ;
}
for ( i = 0; i < N; i++ )
printf( " %s \n",ps[i] );
}
3. 将两个文本文件中字符'$'之后的内容合并到一个文件中去,其中函数void
sub(FILE*all, FILE*f1 ,FILE *f2 )的功能是将文件指针f1,f2所指向的文件中的内容写到文件指针all所指向的文件中; main函数完成如下功能:先打开目标文件,再依次打开源文件,调用sub函数完成文件内容的拷贝。
例如三个源文件 f1.txt ,f2.txt, 每个文件的内容分别如下
文件名内容
f1 aaa$aa
f2 bbb$bb
则产生一个新的目标文件fall.txt,包括f1,f2三个文件字符'$'之前的内容,fall的内容为aabb。
#include
#include
main(){
FILE *f1, *f2,*fall;
void sub(______1________ );
if ((fall=fopen(______2_______ ))==NULL) {
printf("Cannot open file!\n");
exit(1);
}
if ((f1=fopen("f1.txt","r"))==NULL || (f2=fopen("f2.txt","r"))==NULL) {
printf("Cannot open file!\n");
exit(1);
} else {
sub(______3________ );
______4________ ;
}
fclose (f1);
fclose(f2);
}
void sub(FILE *all, FILE *f1, FILE *f2)
{
char c;
while((fgetc(f1))!='$');
while((c=fgetc(f1))!=EOF) fputc(c,all);
while((fgetc(f2))!='$');
while((c=fgetc(f2))!=EOF) fputc(c,all);
}
四、操作题
三.程序调试题
1. 程序调试题1(E_3_1.c)
调试要求:下列程序不能得到正确的结果,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*modified*/字样的注释),使其运行能得到正确的结果。将结果(包括
E_3_1.c文件和E_3_1.exe文件)保存到指定目录中。
功能说明:统计一字符串中各个字母出现的次数,该字符串从键盘输入,统计时不区分大小写。对数字、空格及其他字符都不予统计。最后在屏幕上显示统计结果。
例如字符串:“abcdefgh23 ABCDEF abc”的统计结果与输出格式为:
a b c d e f g h i j k l m n o p q r s t u v w x y z 出现的次数为:;
3 3 3 2 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
#include
#include
void main( )
{
int i, a[26];
char ch,str[80],*p=str;
gets(&str); /* 获取字符串 */
for(i=0;i<26;i++) a[i]=0; /* 初始化字符个数*/
while(*p) {
ch=(*p)++; /* 移动指针统计不同字符出现的次数 */
ch=ch>=’A’&&ch<=’Z’ ?ch+’a’-‘A’:ch;
/* 大小写字符转换*/
if(’a’<=ch<=’z’) a[ch-‘a’]++;
}
for(i=0;i<26;i++) printf(“%2c”, ’a’+i); /*输出26个字母 */
printf(“出现的次数为:\n”);
for(i=0;i<26;i++) printf(“%2d”,a[i]);
/*输出各字母出现次数 */
printf(“\n”);
}
2.程序调试题2(E_3_2.C)
调试要求:下列程序不能得到正确的结果,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*modified*/字样的注释),使其运行能得到正确的结果。将结果(包括E_3_1.c 文件和E_3_1.exe文件)保存到指定目录中。
功能说明:递归算法求x n,即x n=x*x n-1,其中x为实数,n≥0。原程序(见\E_3_2.c) void main(){
float x, y;
int n;
scanf("%f%d",&x,&n);
y=xn(x,n);
printf("x^n=%f\n",y);
}
float xn(float x, int n){
fload z;
if(n<0) {
printf("n is a wrong number!\n");
exit(0);
}
if(n!=0) z=1;
else z=xn(x,n);
return z;
}
五.编程题
1.编程题1(E_5_1.c)
编程要求:请按题中的功能要求,编写程序并能得到正确结果。将结果(包括E_5_1.c文件和E_5_1.exe文件)保存到指定目录中。
功能说明:编写一个函数,将数组a中的n个数每5个相邻的元素为一组分别求和(假设求
和结果不溢出),结果放到数组b中,最后一组如果不足5个也进行求和。例如,若数字a的元素为4,8,3,3,0,5,2,9,7,8,4,3,2,1,8,4,3,2,则数组b的元素为18,31,18,9。
2.编程题2(E_5_2.c)
编程要求:请按题中的功能要求,编写程序并能得到正确结果。将结果(包括E_5_2.c文件和E_5_2.exe文件)保存到指定目录中。
功能说明:某中学要对新入学的10名学生根据考试成绩分到插入到两个班(class1,class2)中,插入的方法是成绩第1名在class1班,第2名在class2班,第3名在class1班,第4名在class2班,依次类推,…,原来class1,class2学生是按成绩由高分到低分排列的。
请编写程序,输入这10个学生的编号和成绩,输出如下格式的分班情况:
Class1班:编号成绩;编号成绩;…
Class2班:编号成绩;编号成绩;…
C语言程序设计模拟试题1(附答案)
《C语言程序设计》模拟试卷一 一、单项选择题(每题2分,共30分) 1、下列有关C语言的叙述中错误的是()。 A) C语句必须以分号结束 B) 任何一个C程序中有且只有一个主函数 C) 复合语句在语法上可被看作一条语句 D) C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的是()。 A) MAIN B) _HJ C) 2ong D) LINE1 3、下列符号中用来表示C语言中的回车换行的是()。 A) \r B) \n C) \b D) \t 4、如有如下定义:int a=1,则语句printf(“%d,%d”, a, ++a);的运行结果为()。 A) 1, 1 B) 1, 2 C) 2, 2 D) 2, 1 5、已知ch为字符型变量,下面表达式中正确的是()。 A) ch=’\xff ’B) ch=’\ff ’C) ch=’ ff ’D) ch=” ff ” 6、以下能正确定义一维数组的是()。 A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”; C) char a[ ]=”012345”; D) char a[5]={0,1,2,3,4,5}; 7、以下语句中能正确定义变量并赋初值的是()。 A) char c=65; B) float f=f+1.1; C) double x=12.3e3.6; D) int m=n=2.0; 8、在执行下列程序时输入:1357924,则程序的运行结果为()。 main( ) { int x, y; scanf(“%2d%2d”,&x,&y); printf(“%2d”,x*y); } A) 13 B) 1357 C) 74 D) 741 9、执行下列程序段后输出的结果是()。 x = 9; while (x > 7)
C语言程序设计试题1
C语言程序设计试题1 一、单项选择题 1.C语言规定,在一个源程序中main函数的位置______d___ 。 A.必须在最开始B.必须在最后 C.必须在预处理命令的后面D.可以在其他函数之前或之后 2.以下选项中,_________d__ 是C语言关键字 A.printf B.include C.fun D.default 3.已知有声明"int a=3,b=4,c;",则执行语句"c=1/2*(a+b);"后,c的值为____a_ 。 A.0 B.3 C.3.5 D.4 4.设指针变量占4个字节的内存空间,若有声明"char *p="123";int c;",则执行语句 "c=sizeof(p);"后,c的值为__d__ A.1 B.2 C.3 D.4 5.已知有声明"int a=3,b=4;",下列表达式中合法的是_d___。 A.a+b=7 B.a=|b| C.a=b=0 D.(a++)++ 6.已知有声明"char s[20]="Hello";",在程序运行过程中,若要想使数组s中的内容修改为"Good",则以下语句中能够实现此功能的是___d_。 A.s="Good"; B.s[20l="Good"; C.strcat(s,"Good"); D.strcpy(s,"Good"); 7.已知有声明"int a[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};",若需要引用值为12的数组元素,则下列选项中错误的是_a___ 。 A.*(a+2)+3 B.*(*(a+2)+3) C.*(a[2]+3) D.a[2][3] 8.已知有声明"int n;float x,y;",则执行语句"y=n=x=3.89;"后,y的值为_b___ 。 A.3 B.3.0 C.3.89 D.4.0 9.已知有声明"int a=12,b=15,c;",则执行表达式"c=(a||(b-=a))"后,变量b和c的值分别为 __b__。 A.3,1 B.15,12 C.15,1 D.3,12 10.下面的函数定义正确的是_____d________ A)float fun (float x ; float y) {return x*y;} B)float fun (float x,y) {return x*y;} C)float fun (x,y) {int x,y;return x*y;} D)int fun (int x, int y) {return x*y;} 11.某程序需要使用一个代表常数3.14的符号常量名P,以下定义中正确的是_d___。 A.#define P 3.14; B.#define P(3.14) C.#define P=3.14; D.#define P 3.14 12.下列四个选项中,属于C语言关键字的是__c__ 。 A.Float B.single C.double D.real 13.已知某编译系统中signed int类型数据的长度是16位,该类型数据的最大值是_D___。 A.32767 B.32768 C.127 D.65535
c语言程序设计试题答案
习题7 7.1选择题。 (1)下列对字符串的定义中,错误的是: A 。 A) char str[7] = "FORTRAN"; B) char str[] = "FORTRAN"; C) char *str = "FORTRAN"; D) char str[] = {'F','O','R','T','R','A','N',0}; (2)以下程序段的输出结果是:____D_________ char a[] = "ABCDE" ; char *p = NULL; for (p=a; p main() { static char a[5]; a = "abcde" ; printf("%s\n", a); }
B) #include <> main() { static char a[7]= "goodbye!"; printf("%s\n", a) ; } C) #include <> main() { char a[5] = "abcde"; printf("%s\n", a) ; } D) #include <> main() { static char a[]="abcde"; printf("%s\n", a) ; } (4)阅读下列函数,函数功能为___A_____。 void Exchange(int *p1, int *p2) { int p; p = *p1; *p1 = *p2; *p2 = p; } A)交换*p1和*p2的值B)正确,但无法改变*p1和*p2的值 C)交换*p1和*p2的地址 D)可能造成系统故障
C语言程序设计模拟试题A附答案
《C语言程序设计》模拟试卷A 一、单项选择题(每题2分,共20分) 1、下列有关C语言的叙述中错误的就是(D)。 A) C语句必须以分号结束 B) 任何一个C程序中有且只有一个主函数 C) 复合语句在语法上可被瞧作一条语句 D) C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的就是(C)。 A) MAIN B) _HJ C) 2ong D) LINE1 3、以下能正确定义一维数组的就是(C)。 A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”; C) char a[ ]=”012345”;D) char a[5]={0,1,2,3,4,5}; 4、执行下列程序段后输出的结果就是(C)。 x = 9; while (x > 7) { printf(“*”); x- -; } A) **** B) *** C) ** D) * 5、设char str1[10] = “ABCDE”, str2[10] = “xyz”; 则执行语句 printf(“%d”, strlen(strcpy(str1, str2))); 后的输出结果就是(D)。 解析: strcpy(str1,str2); 后,str1[] 里就是"XYZ", Z 后面有字符串结束符 strcpy(str1,str2); 执行后,函数返回的就是str1, 因为str1[] 里就是新值"XYZ", 而 strlen(strcpy(str1,str2)) 就就是strlen(str1的新值),所以得3。 strlen 统计到字符串结束符以前,即,不计入字符串结束符。 A) 9 B) 8 C) 5 D) 3 6、若用数组名作为函数调用的实参,则传递给形参的就是(A)。
c语言程序设计期末试题B(含答案)
c语言程序设计期末试题B(含答案) 一单项选择题(每小题1分,共10分) 1. A 2. C 3. D 4. A 5. B 1.以下4组用户定义标识符中,全部合法的一组是() A)_total clu_1 sum B)if -max turb C)txt REAL 3COM D)int k_2 _001 2.以下程序的输出结果是() #include
C语言程序设计期末考试试题(含答案)
C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后(
#include
C语言程序设计期末考试试题及答案知识分享
C语言程序设计试题 (2008 /2009 学年第二学期) 一.选择题(满分30分,每题2分) 1.若a、b、c都定义为int类型且初值为0,则以下不正确的赋值语句是 D 。 A. a=b=c+8; B. a+=y+3; C. c++; D. a+b+c 2. 已知int j,i=1;执行语句“j=i++;”后,变量i的值是 B 。 A. 1 B. 2 C. –1 D. -2 3.执行下面程序: #include "stdio.h" void main() { int a=1,b=2,c=3; c=(a+=a+2),(a=b,b+3); printf(“%d,%d,%d”,a,b,c); } 则输出结果是: A 。 A. 2,2,4 B. 4,2,3 C. 5,5,3 D. 4,2,5 4.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为 D 。 A. a< >0 B. !a C. a=0 D. a 5. for (j=0;j<11;j++);循环结束后,j的值是 B 。 A. 12 B. 11 C. 10 D. 9 6. C语言中函数返回值的类型由 D 决定的。 A. return语句中的表达式类型 B. 调用该函数的主调函数的类型 C. 调用函数时临时决定 D. 定义函数时所指定的函数类型 7. 下列说法中正确的是 B 。 A 在调用用户自定义函数时,必须对其进行声明。 B 函数可以返回一个值,也可以什么值也不返回。 C 说明函数时,必须明确参数的类型和返回值。 D 在程序设计中空函数没有什么作用。8. 若int i=10;执行下列程序后,变量i的正确结果是 D 。 switch ( i ) {case 0: i+=1; case 10: i+=1; case 11: i+=1; default: i+=1; } A. 10 B. 11 C. 12 D. 13 9. 下列语句中不正确的字符串赋值或初始化的是 C 。 A. char str[10]={"strings"}; B.char str[8]={'s','t','r','i','n ','g','s','\0'}; C. char str[10]; str= "strings"; D. char str[]= "strings"; 10. 有如下程序: #include 《C语言程序设计》模拟试卷二 一、填空题。(每空2分,共30分) 1.设有变量说明语句 int x=1,y=2; 则执行下述printf语句的输出结果是___1.000000___ _____。 printf("%f\n",1.0+x/y); 2.执行下述程序 #include float x,amax,amin; scanf("%f",&x); amax=x; amin=x; while ( X>0&&X<=100 ) { if (x>amax) amax=x; else if (x _k++ _________; d=1.0/(k*(k+1)); } while (k<=n); printf("%f\n",s); 5.执行下述程序的输出结果是_-3 -4 0 4 4 3___ ____。 #inclued 一、单项选择题(本大题共20题,每题2分,共40分) 1、以下不是C语言的特点的是 A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是 A、ABC B、abc C、a_bc D、ab.c3、一个C语言程序是由。 A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是 A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为 A、int B、float C、double D、不确定6、在C语言中,char型数据在内存中的存储形式是。 A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后( printf("%d,%d\n",++i,j--); } A、11,10 B、9,10 C、11,9 D、10,910、巳知字母A的ASCII码是65,以下程序的执行结果 是。 #include 第一章基础知识 一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。 13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 C语言程序设计模拟试题. 一、填空题. 1. C语言程序的三种基本结构是顺序结构,选择结构,循环结构。 2.if语句控制表达式只有其值为非0表示逻辑值“真”,其值为0表示逻辑值“假”。 3.说明语句:int b[10]; 定义了数组b有10个整型元素,这些数组元素的下标是从0开始,最大为9。 4. 有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]=0,a[2][1]=6. 5. 设x,y,z均为int 型变量,C语言描述”x或y中有一个小于z”的表达式是x 8. 在C语言中,十进制数30的八进制表示形式是036 ,十六进制表示形式是0x1e 9. C程序是由函数组成的。一个C程序由一个main()函数和若干个子函数构成。函数的构成可分为两部分:函数说明(或函数头) 和函数体。 10.标识符是指程序中的符号常量、变量、函数等对象的名称。在C语言中,标识符只能由字母、数字和下划线组成,且第一个字符必须为字母或下划线。 11.在C语言中整型常量有十进制、八进制和十进制三种表示方法。实型常量有小数形式和指数两种表示方法。 12.C语言中语句的作用是向计算机系统发出操作命令,从而完成一定的操作任务。C语句可以分为:表达式语句、函数调用语句、控制语句、复合语句和空语句等五种类型。 二、单项选择题) 1.一个C语言的执行是从 A (A)本程序的main函数开始,到main函数结束 (B)本程序文件的第一个函数开始,到本程序文件的 最后一个函数结束 C语言程序设计的试题及答案 C语言程序设计的试题及答案C语言程序设计的试题及答案第一章基础知识 一、填空 1.每个C程序都必须有且仅有一个________函数。 2.C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3.软件是程序,以及______、使用和维护所需要的所有文档。 4.国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5.程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6.C语言是由________组成的。 7.C语言的函数可分为主函数ain、标准库函数和_________。 8.一个函数是由两部分组成的,即:________和函数体。 9.编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10.程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自 动化、管理信息系统、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11.机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12.与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对象,也可以用标号和符号来代替地址、常量和变量。 13.在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14.C程序的执行均是由执行_________开始。15.函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C语句组成的执行部分。 16.C语言程序中一条简单语句是以________字符作为结束符的。 17.C语言是结构化、________的程序设计语言。 18.由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19.用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20.第一个系统体现结构化程序设计思想的教学工具语言是_______语言。 1、编写程序,从键盘上连续输入若干字符,直到回车换行符结束。统计并输出所输入的空格、 大写字母、小写字母,以及其他字符(不含回车换行符)的个数。 #include "" main() { char ch=' '; int i=0, j=0, k=0, m= ?1; do { if (ch>='a' && ch<='z') i++; else if (ch>='A' && ch<='Z') j++; else if (ch == ' ') m++; else k++; }while((ch=getchar())!='\n'); printf ("small letter = %d, capital letter = %d\n", i, j); printf ("space = %d, other = %d\n", m, k); } 编写程序,求100~999之间所有的水仙花数。所谓“水仙花数”,即是一个三位数,它个位、十位、百位数字的立方和,恰好等于该数本身。 #include "" main() { int i, j = 1; int nf, ns, nt; for (i =100; i<=999; i++) { nf = i%10; ns = i/10%10; nt = i/100; nf = nf * nf * nf; ns = ns * ns * ns; nt = nt * nt * nt; if ((nf + ns + nt) == i) { printf ("The %d's number is %d\n", j, i); j++; } } 编写程序,求1-1/2+2/3-3/4+4/5-5/6+6/7….-99/100= 4、编写程序,随机产生1-35个不重复的数,并打印结果。 C 语言程序设计 笔试试题 试卷说明: 1. 笔试卷面总分100分,取卷面成绩的70%计入总分; 2. 综合成绩为平时成绩(10%)和实验成绩(20%)之和,占总分的30%; 3. 答题时禁止拆开试卷钉,试卷背面即为草稿纸; 4. 答题时间120分钟。 一、单项选择题。将正确答案填入下面框中。 (本题16分,每小题1分) 1. 有以下程序 main() {int a=1,b=0; if(!a) b++; else if(a==0) if(a) b+=2; else b+=3; printf(“%d\n ”,b); }则程序输出( A )。 A) 0 B) 1 C) 2 D) 3 2. 有以下定义:int a; long b; double x,y;则下列正确的是( A )。 A) a%(int)(x-y) B) a=x!=y C) (a*y)%b D) y=x+y=x 3. 若有定义 int (*p)[3];则下列说法正确的是( C )。 注意行为规范 遵守考试纪律 A) 定义了基类型为int的三个指针变量 B) 定义了一个名为*pt、具有三个元素的整型数值 C) 定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组 D) 定义了基类型为int的具有三个元素的整型数组 4. 有以下程序段 main() { int x=10; while(x--); printf("x=%d\n",x);} 则最后的输出结果是:( B)。 A) x=0 B) x= -1 C) x=1 D)while构成无限循环 5. 有以下程序: int fun() {static int x=1; x *= 2; return x;} main( ) { int i,s=1 ; for(i=1 ;i<=2 ;i++) s=fun() ; printf(“%d\n ”,s) ;} 执行后的输出结果为( D)。 A) 0 B) 1 C) 8 D) 4 6. void main( ){ int k=011; printf("%d\n",k++); } }程序输出结果是( D ) A)12 B) 11 C) 10 D) 9 7. 以下C语言标识符中,不合法的是( C)。 A) _2 B) a_b C) a--b D) AaBc 8. C语言允许函数类型默认定义,此时该函数值隐含的类型是( B)。 A) float B) int C) long D) double 9. 以下程序段运行结果是( B)。 enum weekday{aa,bb=2,cc,dd,ee}week=ee; C语言编程基础考试试题 文档名称文档密级 C语言编程基础考试 [考前说明]本题目中不考虑头文件引用问题(假定已经包含正确的头文件),C 语言的标 准函数都可用;如果不特别说明, 假定程序运行环境为:操作系统Windows 2000, VC6.0编译环境,缺省为四字节对齐, X86(80586)CPU处理器(32位小字节序处理器). 一、单选题 1、给出以下定义: char acX[ ]= "abcdefg"; char acY[ ]= {'a','b','c','d','e','f','g'}; 则正确的叙述为( ) A) 数组acX和数组acY等价 B) 数组acX和数组acY的长度相同 C) 数组acX的长度大于数组acY的长度 D) 数组acX的长度小于数组Y的长度 2、 void example(char acHello[]) { printf("%d", sizeof(acHello)); return; } void main() { char acHello[] = "hello"; example(acHello); return; } 的输出是( ) A 4 B 5 C 6 D不确定 3、以下叙述中不正确的是( ) A) 在不同的函数中可以使用相同名字的变量 B) 函数中的形式参数是在栈中保存 C) 在一个函数内定义的变量只在本函数范围内有效 D) 在一个函数内的复合语句中定义的变量在本函数范围内有效(复合语句指函数 中的成对括号构成的代码) 4、设有如下定义: unsigned long pulArray[] = {6, 7, 8, 9, 10}; unsigned long *pulPtr; 则下列程序段的输出结果为( ) 1 文档名称文档密级 pulPtr = pulArray; *(pulPtr + 2) += 2; printf ("%d,%d\n", *pulPtr, *(pulPtr + 2)); A)8,10 B)6,8 C)7,9 D)6,10 C语言程序设计试题 一、单项选择题(本题共25小题,每小题2分,共50分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其正确答案涂写在答题卡上。错选、多选或未选均无分。 1. 以下正确的C语言自定义标识符是_A_____。 A. _1a B. 2a_ C. do D. a.12 2. 在C语言中,错误的常数表示是_D_____。 A. 0L B.-0x6aL C. '6' D. 1.234E3.5 3. 设int a, x=2; 执行语句a=x>0?3*x:x=10;后,变量x的值是_B_____。 A. 1 B. 2 C. 6 D. 10 4.设有以下程序段: int x=2,y=2,z=0,a; a=++x||++y&&z++; printf("%d,%d,%d\n",x,y,z); 执行后输出的结果是_____C___。 A. 2, 2, 0 B. 3, 3,1 C. 3, 2, 0 D. 3, 2, 1 5. 在C语言中,字符串"\\TOP\t\65\""的长度是____B___。 A. 5 B.7 C. 8 D. 12 6. 设float x,由键盘输入:12.45, 能正确读入数据的输入语句是__A_____。 A. scanf("%5f",&x) B. scanf("%5d",&x); C. scanf("%f",x); D. scanf("%s",&x); 7.逗号表达式a=2*6,a*3,a+5的值是_B________。 A. 12 B. 17 C.36 D. 41 8. C语言程序中,整型常量的书写形式不包括___A______。 A. 二进制 B. 八进制 C. 十进制 D. 十六进制 9. 在C语言中,下列运算符中结合性属于自右向左的是_B_______。 A. && B. - C.<< D. -> 10. 设int x;,则与计算︱x︱等价的表达式是___B______。 A. x>0?-x:x B. x>0?x:-x C. x<0?x:-x D. x<0?-x:-x 11. 执行下面的程序段后,k的值是_______。 int k=1,n=325; do { k*=n%10;n/=10;}while(n); A. 3 B. 30 C. 523 D. 325 12. 表达式的值为0的是_________。 《C语言程序设计》模拟试卷三 一、填空题。(每空2分,共16分) 1.在内存中,短整型变量占字节,单精度实型变量占字节,字符型变量占字节。 2.一个C语言文件就是由若干个组成。 3.设有以下变量定义,并已赋确定得值 char w; int x; float y; double z; 则表达式:w*x+z-y所求得得数据类型为。 4.若x为int类型,请以最简单得形式写出与逻辑表达式!x等价得C语言关系表达 式。 5.若有如下图所示五个连续得int类型得存储单元并赋值如下图,a[0]得地址小于a[4]得地址。p与s就是基类型为int得指针变量。请对以下问题进行填空。 a[0] a[1] a[2] a[3] a[4] p,给s赋值,使s指向最后一个存储单元a[4]得语句就 是。 (2)若指针s指向存储单元a[2],p指向存储单元a[0],表达式s-p得值就是。 二、单项选择题。(每题2分,共40分) 1.设有 int x=11; 则表达式 (x++ * 1/3) 得值就是()。 A) 3 B) 4 C) 11 D) 12 2.下列程序得输出结果就是()。 A) 3 B) 3、2 C) 0 D) 3、07 main() {double d=3、2; int x,y; x=1、2; y=(x+3、8)/5、0; printf(“%d \n”, d*y); } 3.下列程序执行后得输出结果就是(小数点后只写一位)()。 A) 6 6 6、0 6、0 B) 6 6 6、7 6、7 C) 6 6 6、0 6、7 D) 6 6 6、7 6、0 main() { double d; float f; long l; int i; i=f=l=d=20/3; printf("%d %ld %f %f \n", i,l,f,d); scanf("%d",&d); } 4.下列变量定义中合法得就是()。 井冈山大学电子与信息工程学院2013 ~2014学年度第2学期 《 C语言程序设计》期末试卷(A卷)2014年6月 一、单项选择题(每题2分,共40分) 1.以下叙述不正确的一项是(1)。 (1)A.一个C语言源程序可由一个或多个函数组成 B.一个C语言源程序必须包含一个main函数 C.C语言源程序的基本组成单位是函数 D.在C程序中,main函数必须位于程序的最前面 2.若x为char型变量,y为int型变量,x,y均有值,正确的输出函数是(2)。(2)A.printf("%c%c",x,y);B.printf("%c%s",x,y); C.printf("%f%c",x,y);D.printf("%f%d",x,y); 3.若变量均已正确定义并赋值,以下合法的C语言赋值语句是(3)。 (3)A.x=y= =5;B.x=n%2.5;C.x+n=i;D.x=5=4+1; 4.若函数中有定义语句:int i;,则(4)。 (4)A.系统将自动给i赋初值0 B.系统将自动给i赋初值1 C.此时i中无任何值D.此时i中值无意义 5.若有定义:int a,b;,则表达式(a=2,b=5,b++,a+b)的值为(5)。 (5)A.2 B.5 C.7 D.8 6.若有定义:int x=43,y=0;char ch='A';,则表达式(x>=y && ch<'B' && !y)的值为(6)。(6)A.0 B.1 C.false D.非零值 7.下面正确的字符串常量是(7)。 (7)A."c" B.'w' C.'hello' D.'\x41' 8.设有定义:int x,y;,以下语句:x+=y;y=x-y;x-=y;,的功能是(8)。 (8)A.把x和y按从小到大排序B.把x和y按从大到小排序 C.无确定结果D.交换x和y中的值C语言程序设计模拟试题2(附答案)
C语言程序设计期末考试试卷
C语言程序设计试题集及其答案
C语言程序设计模拟试题1
C语言程序设计的试题及答案
C语言程序设计竞赛模拟试题
C语言程序设计试卷及答案
C语言编程基础考试试题
C语言程序设计试题
C语言程序设计模拟试题3(附答案)
C语言程序设计试卷A卷