资源描述
(完整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=((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) 算术运算、关系运算、赋值运算
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;,则下面对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.设有语句 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程序书写格式严格,要求一行内只能写一个语句
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均已正确定义并赋值,以下合法的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.若变量已正确定义为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语言中,每个语句必须以()结束。
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语言编写的程序只能放在一个程序文件中
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个元素,第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.在调用函数时,实参传值给形参,调用结束时,形参值传给实参。
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循环均是先执行循环体语句,再判断循环条件表达式。
三、填空题
1.输入年月,输出该月有多少天?如输入2014 11 输出30
#include <stdio.h>
int main()
{
intyear,month,num;
scanf("%d%d",_______ ,&month);
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: num=31;break;
case 4:
case 6:
case 9:
case 11: num=30;_________;
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 <stdio.h>
int main()
{
char ch;
scanf("%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<stdio.h>
int main()
{
inta,b,sum;
printf("请输入两个整数\n");
scanf("%d,%d",&a,&b);
sum=a+b;
printf("a+b=%d\n",sum);
return 0;
}
2.编程求 1+2+…+100 (需要用循环语句计算,不得直接输出结果)
#include<stdio.h>
int main()
{
inti,sum;
i=1;
sum=0;
for(i=1;i<=100;i++)
sum=i+sum;
printf("1+2+...+100=%d\n",sum);
return 0;
}
3.编程求 1+2^2+3^2+…+100^2(需要用循环语句计算,不得直接输出结果)
4.输出如下图案(需要用循环语句计算,不得直接输出结果)
*****
****
***
**
*
#include<stdio.h>
int main()
{
inti,j,a;
a=6;
for(j=1;j<=5;j++)
{
a=a-1;
for(i=a;i>0;i--)
printf("*");
printf("\n");
}
return 0;
}
5.编写程序,求一维double型数组的最大值。数组有20个元素,数据从键盘输入,输出最大值。
#include<stdio.h>
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<a[i])
max=a[i];
}
printf("max=%lf\n",max);
return 0;
}
6.编写程序,求一维int型数组的最小值。数组有20个元素,数据从键盘输入,输出最小值。
#include<stdio.h>
int main()
{
inti,a[20],min;
printf("请输入20个实数\n");
for(i=0;i<=20;i++)
scanf("%d",&a[i]);
printf("\n");
printf("数组为:");
for(i=0;i<=20;i++)
printf("%d ",a[i]);
min=a[0];
for(i=0;i<=20;i++)
{
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.本题不需要写出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;
}
展开阅读全文