1、完整word版)程序考试系统题 一、选择题 1.若已定义:int a[9], *p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式为( ) A) p+1 B) a++ C) a+1 D) ++p 2.以下选项中不能作为C语言合法常量的是() A)cd B)100000 C)"cba" D)'\101' 3.以下选项中正确的定义语句是() A)float a;b; B)float a=b=3; C)float a=5,b=5; D)char a=”hel”; 4.执行以下程序段后,z的值为() int z='A',x=14,y=15;z=
2、x||y)&&(z<'a')); A)-1 B)NULL C)1 D)0 5.若变量已经正确定义,语句“if(a>b) k=0; else k=1;”和下列哪个表达式等价() A)k=(a>b)?1:0; B)k=a>b; C)k=a<=b; D)a<=b?0:1; 6.下面的函数调用语句中fun函数的实参个数是() fun(v1,v2+v3,max(v4,v5)); A)3 B)4 C)5 D)6 7.算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为( ) A) 算术运算、赋值运算、关系运算 B)
3、算术运算、关系运算、赋值运算 C) 关系运算、赋值运算、算术运算 D) 关系运算、算术运算、赋值运算 8.若有定义语句:char s[10]="12345678";,则strlen(s)的值是() A)8 B)9 C)10 D)不确定 9.一个C程序的执行是从() A)本程序的main函数开始,到main函数结束 B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C)本程序的main函数开始,到本程序文件的最后一个函数结束 D)本程序文件的第一个函数开始,到本程序main函数结束 10.若有定义语句:int arr[]={5,4,3,2,1},i=4;,
4、则下面对arr数组元素的引用错误的是() A)arr[--i] B)arr[2*2] C)arr[arr[0]] D)arr[arr[i]] 11.C 语言规定:在一个源程序中,main函数的位置() A) 必须在最开始 B) 必须在系统调用的库函数的后面 C) 可以任意 D) 必须在最后 12.若x、i、j和k都是int型变量,则计算下面表达式x=(i=1,j=7,k=31)后,x的值是() A)1 B)7 C)0 D)31 13.一个C 语言程序是由()。 A)一个主程序和若干子程序组成 B)函数组成 C)若干过程组成 D)若干子程序组成 14.设有
5、语句 int a=3;,则执行了语句 a+=a-=a*=a;后,变量 a 的值是( ) A)3 B)0 C)9 D)-12 15.以下用户标识符中,合法的是() A) stu_count B) int C) 123Stu D) a+b 16.已知字母A的ASCII码为十进制数65,且c2为字符型变量,则执行语句C2=’A’+’6’-‘3’;后c2中的ASCII码值是() A) D B)68 C)不确定的值 D)C 17.以下叙述中正确的是() A) C程序中的注释只能出现在程序的开始位置和语句的后面 B) C程序书写格式严格,要求一
6、行内只能写一个语句 C) 用C语言编写的程序只能放在一个程序文件中 D) C程序书写格式自由,一个语句可以写在多行上 18.合法的数组定义是( ) A) char a[ ]= "string " ; B) int a[5] ={0,1,2,3,4,5}; C) char a= "string " ; D) char a[ ]; 19.以下关于long、int和short类型数据占用内存大小的叙述中正确的是() A)均占4个字节 B)根据数据的大小来决定所占内存的字节数 C)由用户自己定义 D)由C语言编译系统决定 20.若变量x,y,n均已正确定义并赋
7、值,以下合法的C语言赋值表达式是() A) x=y==5 B) x=n%2.5 C) x+n=3 D) x=5=4+1 21.以下叙述中正确的是() A)C程序的基本组成单位是语句 B)C程序中的每一行只能写一条语句 C)简单C语句必须以分号结束 D)C语句必须在一行内写完 22.以下叙述中错误的是() A)用户定义的函数中可以没有return语句 B)用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值 C)用户定义的函数中若没有return语句,则应当定义函数为void类型 D)函数的return语句中可以没有表达式 23.若变量
8、已正确定义为int型,要通过语句scanf("%d%d%d",&a,&b,&c);给a赋值1、给b赋值2、给c赋值3,以下输入形式中正确的是(μ代表一个空格符)() A)μμμ1,2,3<回车> B)1μ2μ3<回车> C)1,μμμ2,μμμ3<回车> D)1,2,3<回车> 24.在C语言中,用()表示逻辑值“真” A)1 B)非0的数 C)非1的数 D)大于0的数 25.设整型变量 m,n,a,b,c,d 均为1,执行(m=a>b)&&(n=c>d)后, m,n 的值分别是() A) 0,0 B) 0,1 C) 1,0 D) 1,1 26.在C
9、语言中,每个语句必须以()结束。 A)回车符 B)冒号 C)逗号 D)分号 27.C 语言中,要求运算对象只能为整数的运算符是() A) % B) / C) > D) * 28.合法的数组定义是( ) A) char a[ ]= "string " ; B) int a[5] ={0,1,2,3,4,5}; C) char a= "string " ; D) char a[ ]; 29.以下叙述中正确的是() A) C程序中的注释只能出现在程序的开始位置和语句的后面 B) C程序书写格式严格,要求一行内只能写一个语句 C) 用C
10、语言编写的程序只能放在一个程序文件中 D) C程序书写格式自由,一个语句可以写在多行上 30.若有表达式(w)?(--x):(++y),则其中与w等价的表达式是() A)w==1 B)w==0 C)w!=1 D)w!=0 二、判断题 1.函数既可以嵌套定义,又可以嵌套调用。 2.数组定义 int a[10]; 也可以写成 int a(10)。 3.在对全部数组元素赋初值时,可以不指定数组长度。 4.定义arr为5×6(5行6列)的数组,则可写成 float arr[5,6]。 5.数组定义 int a[10]; 表示数组名为a,此数组有10个元素
11、第10个元素为a[10]。 6.char c[]={'a' ,' ','b','o','o','k'}; 与charc[6]={'a' ,' ' ,'b','o','o','k'}; 等价。 7在C语言中不区分字符的大小写。 8.C语言中,习惯上符号常量要大写,以便跟变量区分开来 9.C 语言程序的注释可以出现在程序中的任何地方,是为了对程序语句做解释说明。 10.在C语言中 do-while 循环和for循环均是先执行循环体语句,再判断循环条件表达式。 11.C语言中所有字符串都是以‘\0’结束的。 12.函数形参只有在被调用时才分配存储空间。 13.在调用函数时,实参传
12、值给形参,调用结束时,形参值传给实参。 14.所有函数定义都是并行的,相互独立的。 15.在C语言中,在表示逻辑运算结果时,用数值1表示"真",0表示"假"。 16.定义函数时,形参的类型说明可以放在函数体内。 17.unsigned 和void 在C中都是关键字。 18.函数既可以嵌套定义,又可以嵌套调用。 19.C允许对数组的大小作动态定义,即可用变量定义数组的大小。 20.在对全部数组元素赋初值时,可以不指定数组长度。 21.数组定义 int a[10]; 表示数组名为a,此数组有10个元素,第10个元素为a[10]。 22..在C语言中 do-while 循环和for
13、循环均是先执行循环体语句,再判断循环条件表达式。
三、填空题
1.输入年月,输出该月有多少天?如输入2014 11 输出30
#include
14、
case 2:
if (year%4==0&&year%100!=0||year%400==0)
_________;
else
num=28;
}
printf("%d\n",num);
return 0;
}
2.分段函数:输入等级(ABC或者其他),输出对应的百分段
等级=〉百分
A 85~100
B 70~84
C 60~69
F 0~59
#include
15、f("%c",_______);
switch(______)
{
case 'A':
printf("85~100\n");break;
case 'B':
printf("70~84\n");break;
case 'C':
printf("60~74\n");break;
_______:
printf("0~59\n");
}
return 0;
}
四、编程题
1.输入两个整数,求其和.
#include
16、
scanf("%d,%d",&a,&b);
sum=a+b;
printf("a+b=%d\n",sum);
return 0;
}
2.编程求 1+2+…+100 (需要用循环语句计算,不得直接输出结果)
#include
17、算,不得直接输出结果)
4.输出如下图案(需要用循环语句计算,不得直接输出结果)
*****
****
***
**
*
#include
18、int main()
{
inti;
double a[20],max;
printf("请输入20个实数\n");
for(i=0;i<=20;i++)
scanf("%lf",&a[i]);
printf("\n");
printf("数组为:");
for(i=0;i<=20;i++)
printf("%lf",a[i]);
printf("\n");
max=a[0];
for(i=0;i<=20;i++)
{
if(max 19、
return 0;
}
6.编写程序,求一维int型数组的最小值。数组有20个元素,数据从键盘输入,输出最小值。
#include 20、if(min>a[i])
min=a[i];
}
printf("min=%d",min);
return 0;
}
7.本题不需要写出main函数,只要完成如下函数即可。函数功能是比较字符串s1和s2,返回值是第一个不同字符的差。函数原型如下:
int strcmp(char * s1,const char *s2);
int strcmp(char *s1,const char *s2)
{
for(;*s1==*s2;++s1,++s2)
if(*s1==\0)
return 0;
return(*s1-*s2);
}
8.本题 21、不需要写出main函数,只要完成如下函数即可。函数功能是求出字符串s的长度。函数原型如下:
int strlen(const char *s);
int strcat(const char *s)
{
int i=0;
while(*s++!=NULL)
i++;
return i;
}
9.字符串连接函数(strcat)
char *strcat(char *p1,char *p2)
{
char *p3=p1;
while(*p1!='\0')
p1++;
while(*p2!='\0')
*(p1++)=*(p2++);
return p3;
}
10.字符串粘贴函数
char *strcat(char *p1,char *p2)
{
char *p3=p1;
while(*p2!=NULL)
*p1++=*p2++;
return p3;
}






