2013-12-30-001P
2013-12-30
08:30-10:00(90)分钟
[##1-25]一、单项选择题
[###1-1-4]
下面正确的自定义标识符是 D
(A) 2xy
(B) int
(C) root%x
(D) total
[###1-2-4]
下面正确的C语言常量是  A
(A) 012
(B) 'abc"
(C) 0xfp
(D) 2e1.25
[###1-3-4]
下列不是C语言运算符的是 A
(A) <>
(B) sizeof
(C) !
(D) *=
[###1-4-4]
表达式5+6!=0的值是 B
(A) 0
(B) 1
(C) 6
(D) 11
[###1-5-4]
设float x;则数学式子:-1≤x<3正确的C语言表达式是 C
(A) -1<=x<3
(B) -l<=x||x<3
(C) x>=-1 && x<3
(D) !(x>=-1)&&(x<3)
[###1-6-4]
设int a=3;,值为1的表达式是 D
(A) a%3
(B) 3-++a
(C) (a++)%3
(D) a>3?2∶1
[###1-7-4]
设int a=0,b=5,c;,执行语句c=(a==b)||++a;后c的值是 B
(A) 0
(B) 1
(C) 4
(D) 5
[###1-8-4]
设int m=0;,语句while(m!=0)m++;的循环次数是 A
(A) 0
(B) 1
(C) 2
(D) 无限
[###1-9-4]
定义数组并初始化正确的是 B
(A) int a[ ]=(2,4,6,8);
(B) int a[ ]={2,4,6,8};
(C) int a[3]={2,4,6,8};
(D) int *a[4]={2,4,6,8};
[###1-10-4]
设int a[3][5];,该数组两个下标的取值范围分别是 C
(A) 0~3和0~4
(B) 0~3和3~5
(C) 0~2和0~4
(D) 3~5和0~5
[###1-11-4]
设typedef float REAL;则REAL是 D
(A) 变量名
(B) 常量名
(C) 函数名
(D) 类型名
[###1-12-4]
设char s[10];,将字符串输入至数组s的正确语句是 C
(A) s=gets();
(B) getchar(s);
(C) scanf("%s",s);
(D) scanf("%s",&s[10]);
[###1-13-4]
关于函数叙述正确的是 D
(A) 函数必须有形参
(B) 函数的形参可以是常数
(C) 函数中只能出现一个return语句
(D) 函数类型为void时,该函数无返回值
[###1-14-4]
设int a[10],*p=a;,与数组元素a[0]等价的是 A
(A) *p
(B) p
(C) &a
(D) a
[###1-15-4]
结构型变量所占内存量应是 C
(A) 第一个成员占用的内存量
(B) 最后一个成员占用的内存量
(C) 所有成员占用内存量的总和
(D) 成员中占用内存量最大者所需的容量
[###1-16-4]
设int a=2,b=3,c;,正确的语句是 C
(A) (a+b)++;
(B) b=a%2.5;
(C) a+=b+=5;
(D) c=a+b=5;
[###1-17-4]
设int x=10,*p;,指针p指向x的正确语句是 D
(A) p=x;
(B) *p=*x;
(C) *p=&x;
(D) p=&x;
[###1-18-4]
设float a,b,c;,函数调用语句f(((a,b),a+c),5);中参数的个数是B
(A) 1
(B) 2
(C) 3
(D) 4
[###1-19-4]
设int m[]={5,4,3,2,l},i=2;,其值为l的数组元素是A
(A) m[i+2]
(B) m[i+3]
(C) m[i-l]
(D) m[m[i]]
[###1-20-4]
下列叙述正确的是B
(A) while语句中的循环体至少被执行一次
字符串常量可以存放在字符串变量中
(B) do-while语句中的循环体至少被执行一次
(C) switch语句中每个case后必须有break语句
(D) continue和break在循环语句中的作用是相同的
[###1-21-4]
设char s[2*5]="1234567";,数组s的长度是 A
(A) 10
(B) 9
(C) 8
(D) 7
[###1-22-4]
下列二维数组定义并初始化正确的是D
(A) int a[3][3]=[0,3];
(B) int a[2][]={{3,4},{5,6}};
(C) int a[2,3]={2,3,4,5,6,7,8,9};
(D) int a[]
[4]={{l,2,4,5},{2,3},{3,4,9}};
[###1-23-4]
设char s1[20]="China",s2[10]="Beijing";,执行下列语句后的输出结果是
strcat(sl,s2); printf("%s, %d\n",s1,strlen(s1));C
(A) China,5
(B) Beijing,7
(C) ChinaBeijing,12
(D) BeijingChina,12
[###1-24-4]
表示"回车"的转义字符是A
(A) '\r'
(B) '\t'
(C) '\o'
(D) '\n'
[###1-25-4]
设int (*p)[4];,则p的含义是D
(A) 指向整型变量的指针数组
(B) 指向4个整型变量的函数指针
(C) 4个指向整型变量的指针变量
(D) 指向具有4个整型元素的一维数组的指针
[##3-8]三、判断题
[###3-1-0]
C 语言标准格式输入函数 scanf() 的参数表中要使用变量的地址值。对
[###3-2-0]
条件表达式不能取代一般if的语句。错
[###3-3-0]
函数名代表该函数的入口地址。因此,可用函数名给指向函数的指针变量赋值。对
[###3-4-0]
如果函数定义出现在函数调用之前,可以不必加函数原型声明。对
[###3-5-0]
结构体成员的类型必须是基本数据类型。错
[###3-6-0]
凡在函数中未指定存储类别的局部变量,其默认的存储类别为static。错
[###3-7-0]
C 语言中 , 字符串常量存放在字符数组中要有一个结束符 , 该结束符是'0' 。错
[###3-8-0]
for循环的三个表达式可以任意省略,while,do-while也是如此。错
[##4-10]四、填空题
[###4-1-1]
设int n;,"n能被2整除"的C语言逻辑表达式是___n%2==0___。
[###4-2-1]
实现字符串拷贝的系统函数名是__strcpy__。
[###4-3-1]
实(浮点)型分为单、双精度两种,其中单精度类型保留字是___float___。
[###4-4-1]
在C语言中,运算符优先级最低的是___,___。
[###4-5-1]
设int a=3;,执行语句printf("%d",a<<2);后的输出结果是___12___。
[###4-6-1]
设float x=3.1;,执行语句printf("%.1f",3.2+(int)x);后的输出结果是___6.2___。
[###4-7-1]
设FILE*fp;,若fp指向文件尾部,则feof(fp)的返回值是___1___。
[###4-8-1]
设char*p="abcd";,执行语句printf("%c",*(p+2));后的输出结果是___c___。
[###4-9-1]
设char str[]="book\n";,执行语句printf("%d",sizeof(str));后的输出结果是___6___。
[###4-10-1]
设int n=123;,执行语句printf("%d",n/10%10);后的输出结果是___2___。
[##5-3]五、编程填空题
[###5-1-2]
从键盘输入一系列正数(负数作为结束),写入一个二进制文件data.dat。
#include<stdio.h>
void main()
{
FILE  *fp;
float  x;
fp=fopen("data.dat","wb" );/*第一空*/
while(1)
{
scanf("%f",&x);
if(x<=0.0) break;;/*第二空*/ 
fwrite(&x,sizeof(float),1,fp);
}
fclose(  fp  ); 
}
[###5-2-2]
利用交换排序法实现对数组元素的升序排序。
#include<stdio.h>
#define N  10
void main()
{
int i,j,temp,a[N];
for(i=0;i<N;i++)  scanf("%d",&a[i]);
for(i=0; i<N-1 ;i++)
{
for(j=i+1; j<N ;j++)/*第一空*/
if(  a[i]>
a[j]  )                 
{  temp=a[i];
a[i]=a[j];/*第二空*/
a[j]=temp;
}
}
for(i=0;i<N;i++)
printf("%d", a[i] );
printf("\n");
}
[###5-3-2]
计算1!+2!+3!+4!+5!的值并输出。
#include<stdio.h>
int f(int a)
{
static int c=1;
c=c*a;
return(c);/*  第一空  */
}
void main()
{
int i, k;
k=1;
for(i=2;i<=5;i++)
k+=f(i);/*  第二空  */
printf("%d\n",k);       
}
[##6-1]六、普通编程题
[###6-1-1]
用循环编程计算1+3+5+7+…+99+101的值。
**输入格式要求:无任何信息提示;
**输出格式要求:"sum=%d\n"
#include <stdio.h>
main()
{
int i, sum = 0;                  //1
for (i = 1; i <= 101; i = i+2)  //1
{
sum = sum + i;            //1
}
printf("sum=%d\n", sum);        //1
}
[##8-1]八、复杂编程题
[###8-1-1]
自己定义一个函数,用字符数组作为函数参数的类型,
以实现和函数strlen相同的功能,即在主函数中任意输入
一个字符串(长度不超过80个字符),调用该函数计算
输入字符串的实际长度,然后打印计算结果。
要求按如下函数原型编程实现计算字符串长度的功能。
int Mystrlen(char str[]);
要求必须按照题目要求和用函数编程,否则不给分。
**要求输入提示信息格式为:"Enter a string:"
**输出格式为:"The length of the string is:%d\n"
#include  <stdio.h>
int Mystrlen(char str[]);
int main()
{
char  a[80];
unsigned int  len;
printf("Enter a string:");
gets(a);                //1 
len = Mystrlen(a);  //1
printf("The length of the string is:%d\n", len);
return 0;
}
int Mystrlen(char str[]) //1
{
unsigned int  len = 0;
for ( ; *str!='\0'; str++)  //1
{
len++;          //1     
}
return (len);    //1     
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。