综合强化练习一
一、选择题(每题1分,共40分)
1、以下叙述正确的是(  )
A)C语言总是从第一个定义
的函数开始执行
B)在C程序中,要调用的函数必须在main函数中定义
C)C程序的执行总是从main函数开始执行的
D)C程序中的main函数必须放在程序的开始部分
2、下列合法的用户标识符为( )
A)_4sum B) static C) 1max D) #dtotal
3、ch为字符型变量,则下面赋值语句正确的为( )。
A)ch="ABC" B) ch="A" C) ch= a D) ch=67
4、C语言中整形常量有哪几种形式( )
A) 十进制、八进制、十六进制
B) 二进制、十进制、八进制、十六进制
C) 二进制、八进制、十六进制
D) 二进制、十进制
5、字符串" China "在内存中占用的字节数是( )
A)  1 B) 2 C) 5 D) 6
6、int x,y; x=7/2;y=7/2.0;则x的值为( )
A) 3.500000    3 B) 3    3.500000
C) 3.500000    3.500000  D)3    3
7、下面程序int x=0x2B; p rintf("%d",x);的输出结果为( )
A) 2B  B) 0x2B C) 43 D) 44
8、实型常量用指数形式表示,下列哪一项不是合法的( )
A)  3.65e3 B)0.356E3  C)356e3 D)3.56e3.0
9、设有语句int a=3;则执行了语句a-= a+=a*a;后变量a的值是( )
A)0 B)3 C) -9 D) -3
10、下列字符中,错误的转义字符是( )
A)'\085' B) '\\' C) '\0' D) '\n '
11、下面程序的输出结果是( )
int a=2;
if(a=5) a=a+2;
printf("%d ",a);
A) 2 B) 4 C) 5 D)7
12、下列程序段的循环次数是( )
int k=0;
while(k= =0) printf("%d",k);
k--; printf ("\n");
A) 无限次B) 0 次C) 1次D)2次
13、下列说法正确的是( )
A) 在循环体中可以用break语句结束本次循环
B) 在循环体中可以用continue语句结束本次循环
C) break语句仅能使用在switch结构中14、以下正确的函数形式是()。
A) int fun(int x,int y) B) int fun(int x,y)
{z=x+y; return z;} {int z; z=x+y; return z;}
C) int fun(x,y) D) int fun(int x,int y)
{int x,y; int z; z=x+y; return z;} {int z; z=x+y; return z;}
15、若有定义float a[3][6];数组a的第10个元素是( )
A) a[2][1]  B) a[10] C) a[2][3] D) a[1][3]
16、若有定义:int a=7;float x=2.5,y=4.7;则表达式
x+a%3*(int)(x+y)%2/4的值是
A)2.500000 B)2.750000 C)3.500000
D)0.000000
17、判断字符串a和字符串b是否相等,应当使用( )
A)if(a= =b) B) if(a=b)
B)if(strcpy (a,b)) D) if(strcmp(a,b)= =0)
18、在函数调用时,若形参和实参都是简单变量,下面说法正确的是( )
A)实参和形参共用内存单元
B)实参和形参各占独立的内存单元
C)由用户确定是否共用内存单
D)由系统确定是否共用内存单元
19、变量x为整型,给int *p;x=5;指针变量赋值正确的是( )。
A)p=5; B) p=x; C) p=*x; D) p=&x;
20、下面代码int a=3,*p; p=&a; 如果想通过指针变量让a的值改变为4,则( )。
A) p=*a+1; B) (*p)++;  C) p++; D) p=&a+1;
21、下列不属于C语言基本类型的是( )。
A) 指针B) 整型C) 实型D) 字符型
22、有下列程序:
main()
{ int a,b;
a=97; b=' b ';
printf("%c%c%c%c\n",a,a-32,b,b-32);
}
则输出结果为()。
A) AaBb B) aAbB C) AB D) ab
23、以下程序的输出结果为()。
main()
{ int x,y,z,m;
x=y=z=2;
m=++x && ++y || ++z;
printf("x=%d,y=%d,z=%d\n",x,y,z,m);
A) x=3,y=3,z=2,m=1 B) x=3,y=2,z=2,m=1
C) x=3,y=3,z=3,m=1 D) x=3,y=2,z=3,m=1
24、以下程序输出结果为()。
main()
{ int x,y;
y=(x=4,x*5);
printf("y=%d\n ",y);
}
A) y=4 B) 运算出错C) y=0 D) y=20
25、有数学不等式-5<x<=7,则用C语言可描述为( )。
A) -5<x<=7 B) x>-5&& x<=7
C) x>-5 AND x<=7 D) x>-5 || x<=7
26、有变量定义int a=7,b=2;则表达式(float) a/b的值以及执行表达式后a、b的值分别是( )。
A) 3 7    2
B) 3.500000 7    2
C) 3.500000 7.000000    2
D) 3.500000 7.000000    2.000000
27、有变量定义int x=3,y,z; 则执行语句y=x++; z=++x; 后,x,y,z 的值分别为( )。
A) 4    4    5 B) 5    4    5
C) 5    3    4 D) 5    3    5
28、有变量定义int x=5,y=9,z; 则执行语句
if(x<y) { z=x; x=y; y=z; }后x,y的值分别是( )。
A) 5 9 B) 9    5 C) 5    5 D) 9 9
29、设有以下程序段int x=0,s=0;
while(!x!=0)s+=++x;
printf("%d",s); 则
A)运行程序段后输出0 B)运行程序段后输出1
C)程序段中的控制表达式是非法的D)程序段执行无限次
30、有变量定义int x=0, y=0;则执行以下语句后y的值是( )。
switch(x)
{ case 0:y++;
default:y++;
}
A)    3 B) 2 C) 1  D) 0
31、以下程序的输出结果是( )。
for(i=0;i<1;i++)
for(j=2;j>0;j--)
printf("*");
A) * B) ** C) *** D) ****
32、如果想使一个数组在初始化时全部元素的值都为0,则以下写法错误的是()。
A) int a[4]=0; B) int a[4]={0,0,0,0};
C) int a[4]={0}; D) int a[]={0,0,0,0};
以下()是不正确的字符串常量
33、语句printf("\101\x42C");其输出结果为()。
A) ABC B) abc C) Abc D) aBC
34、字符数组a,则正确的输入格式是()。
A) gets(a[]); B) scanf("%s",a); C) gets("a") D) scanf("%s ",&a);
35、凡是函数中未指定存储类型的局部变量,其隐含的存储类别为( )。
A) auto B) static C) extern D) register 36、以下程序有语法行错误,有关错误原因的正确说法是()。
main()
{ int M=5,t;
void prt_char( );
……
t=prt_char(M);
……
}
A) 语句void prt_char();有错,它是函数调用语句,不能用void说明
B) 变量名不能使用大写字母
C) 函数说明和函数调用语句之间有矛盾
D) 函数名不能使用下划线
37、设有两条语句: int a, *p=&a;和*p=a;则下列说法正确的是()。
A) 两条语句中的“*p”含义完全相同
B) 两条语句中的“*p=&a”和“*p=a”功能完全相同
C) 第一条语句中的“*p=&a”是定义指针变量p并对其初始化
D) 第二条语句中的“*p=a”是将a的值赋值给变量p
38、定义一个结构体变量时,系统分配给它的内存是()。
A) 结构体中第一个成员所需存储单元
B) 结构体中最后一个成员所需存储单元
C) 结构体成员占存储单元最大者
D) 结构体中各成员所需存储单元的总和。
39、有以下共用体定义:
union stu
{
int i;
char c;
float m;
}str1;
则变量un1所占字节数为()。
A) 1 B)    2 C) 4 D) 7
40、当顺利打开了一个文件时,fopen()函数的返回值是()。
A) NULL B) FILE类型指针C) 1 D) 0
二、读程序叙述其功能( 每题5 分,共40 分)
1、#include <stdio.h>
void main()
{
int i, sum=0;
for(i=1;i<100;i++)
if(i%2!=0)
sum=sum+i;
printf ("sum=%d\n", sum);
}
2、#include <stdio.h>
void main()
{
char c1,c2;
c1=65;c2=66;
printf ("%d, %d\n", c1,c2);
printf ("%c, %c\n", c1+32,c2+32);
}
3、#include <stdio.h>
void main()
{
int i,t=1;
i=1;
while(i<=5)
{ t=t*i;
i++;
}
printf ("t = %d\n",t);
}
4、#include <stdio.h>
main( )
{ int x,y;
scanf("%d",&x);
if(x<-5) y=3;
else if (x<=5) y=4;
else y=5;
printf("y=%d\n ",y);
}
5、#include <string.h>
#include <stdio.h>
main( )
{ char ch[100];
int i,cap=0,let=0,dig=0,spa=0,oth=0;
gets(ch);
for(i=0;ch[i]!=’\0’;i++)
{
if(ch[i]>=’A’ &&ch[i]<=’Z’) cap++;
else if (ch[i]>=’a’ &&ch[i]<=’z’) let++;
else if (ch[i]>=’0’ &&ch[i]<=’9’) dig++;
else if (ch[i]==’’) spa++;
else oth++;
}
printf("cap=%d,let=%d,dig=%d,spa=%d,oth=%d\n",ca p,let,dig,spa,oth);
}
6、#include<stdio.h>
void main()
{
int ia[]={1,2,3,4,5,6,7,8,9,0},*pi;
for(pi=ia;pi<ia+10;pi++)
{
printf("%d",*pi);
}
}
7. #include <stdio.h>
main()
{ int m,i;
for(m=101;m<200;m++)
{
for(i=2;i<=m-1;i++)
if(m%i= =0) break;
if(i>=m) printf("%d",m);
}
printf("\n");
}
8. #include <stdio.h>
main()
{ int *p1,*p2,*p,a,b;
scanf("%d,%d",&a,&b);
p1=&a;
p2=&b;
if(a<b)
{ p=p1; p1=p2; p2=p;}
printf("a=%d,b=%d\n",a,b);
printf("max=%d,min=%d\n",*p1,*p2);
}
}
三、编程题(共20 分,3个题)
1.输入圆的半径,计算它的周长和面积并输出值,运算结果保留两位小数。
2.有一函数如下,要求写程序,输入x的值,输出y的值。
<
+
=
>
+
=
)0
(
1
2
)0
(
)0
(
1
2
x
x
x
x
x
y
3.编程求序列1-2+3-4+5-6+7-8+……的前n项的和并输出,n 值自己输入。
4.输入一个长度为10的整型数组,输出该数组的最大值、最小值及平均值(数组元素由程序运行时输入)。
综合强化练习一
一、1-5 CADAD  6-10 DCDAA 11-15 DABDD
16-20 ADBDB 21-25 ABADB 26-30 BDBBB  31-35 BAABA 36-40 CCDCB 二、1. 输出1-100间所有奇数的和
2. 输出65,66 和字符a,b
3. 功能:输出5!
4. 实现下面分段函数功能
⎪⎩
⎨⎧>≤≤--<=555
5453x x x y  5.统计字符串中 大写字母、小写字母、数字、空格、其
他字符的个数
6.按顺序将数组ia[]中的元素输出 7.输出101-200间所有素数
8.任意输入两个数,通过指针进行排序,输出最大值和最小值
三、编程题:  1、
#include <stdio.h> main()  {
int r;
float zc,mj;
printf("Please input r=");    scanf("%d",&r);      zc=2*3.14*r;      mj=3.14*r*r;
printf("%8.2f,%8.2f",zc,mj);  } 2、
#include <stdio.h> main() {
int x,y;
scanf("%d",&x);      if(x>0)
y=x*x+1;      else if(x==0)          y=0;      else
y=2*x+1;      printf("%d",y);  } 3、
#include <stdio.h> main() {
int i,n;    int t=1;      int sum=0;
printf("Please input n=");    scanf("%d",&n);      for(i=1;i<=n;i++)      {
sum=sum+i*t;        t=-t;    }
printf("%d",sum);  } 4、
#include <stdio.h> main( ) {
int i,max,min,a[10];
float avg,sum=0;
printf("Please input 10 number:\n");    for(i=0;i<10;i++)    {
scanf("%d",&a[i]);    }
max=min=a[0];        for(i=0;i<10;i++)    {
if(max<a [i])            max=a [i];        if(min>a[i])            min=a[i];        sum=sum+a[i];    }
avg=sum/10;
printf("max=%d,min=%d,average=%f",max,min,avg); }

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