做几个小网站还是做一个大网站南京建设企业
一、单项选择题(本大题共20小题,每小题2分,共40分。在每小题给出的四个备选项中,选出一个正确的答案,并将所选项前的字母填写在答题纸的相应位置上。)
1.以下不正确的C语言标识符是()
A. AB1
B._ab3
C. char
D. a2_b
- 若 x、i、j、k都是 int型变量,则计算下面表达式后,x的值为()
x=i=4.j=6,k=16; 
A. 4
B. 8
C. 16
D. 32
3,对于类型相同的两个指针变量之间,不能进行的运算是()
A. <
B.=
C.+
D.-
- 下设i 和 x 都是 int 类型,则 for 循环语句()
for(i=0,x=0;i<=9&&x!=876;i++) scanf(“%d”,&x); 
A. 最多执行 10 次
B. 最多执行 9 次
C. 是无限循环
D. 循环体一次也不执行
5,下列数组定义正确的是()
A. int a[5],b[2,3];
B. char no(30);
C. char x[];
D. int x[5]={1,2,3};
- 若有变量定义 double x;float a;要给 x 和 a 输入数据,正确的输入语句是()
 
A. scanf(“%Pf”,&x,&a);
B. scanf(“%f%lf”,&x.&a);
C.scanf(“%lf%f”,&x,&a);
D. scanf(“%lf%lf”,&x,&a);
7.若变量已正确定义,执行语句scanf("%d,%d,%d ",&kl,&k2,&k3);时,()的输入。
A. 2030,40
B. 20 30 40
C. 20,30 40
D. 20,30,40
- 已知 a=20,b=30,则执行 c=anb 后,c 的值是()
 
A. 10
B. 20
C. 30
D. 40
-  
下面程序的输出结果是()
#include<stdio.h>
void main
{ intx=10,y=10;
printf(“%d %dn”,x–,–y);
}
A. 10 9
B. 9 9
C. 9 10
D. 10 10 -  
如果在一个函数的复合语句中定义了一个变量,则该变量()
 
A.只在该复合语句中有效,在该复合语句外无效
B. 在该函数中任何位置都有效
C.在本程序的源文伴范围内均有效
D.此定义方法错误,其变量为非法变量
- 以下函数值的类型是()
int fun(float x)
{
float y;
y=3*x-4;
return y:
} 
A. 不确定
B. float
C. void
D. int
12,函数说明语句正确的是()
A. int Function(void A);
B. void Function(int);
C. int Function(A):
D.void Function(int)
13,函数调用语句: d=max(a,max(b.c.d),e):中实参的个数为
A.1
B. 2
C. 3
D. 4
14.以下能正确定义数组并正确赋初值的语句是()
A. intn=5,a[3][n];
B. int b[1][5]={{1},{3}};
C. int c[2]0={{1,2},{3,4}}:
D. int d[][2]={{1,2},{3,4)};
15,下列程序运行后的输出结果是()
 #include <stdio.b>
 void sub(int x,int y,int *z)
 {*z=y-x; }
 void main()
 { int a,b,c;
 sub(10,5,&a);
 sub(7,a,&b);
 sub(a,b,&c);
 printf(“%d,%d,%dln”,ab,c);
 }
A.-5,-12,-7
B. 5,-2,-7
C.-5,-12,-17
D. 5,2,3
- 设有定义语句"chars]=“xyz”;“,则表达式”*(s+3)"的值是()
 
A. ‘x’
B. у
C. ‘z’
D. ‘\0’
- 若有定义:int a[3][4];,()不能表示数组元素 a[1][1]
 
A. (a[1]+1)
B. (&a[1][1])
C. ((a+1)[1])
D. *(a+5)
- char *s=“ItlNamellAddressin”;指针s所指字符串的长度为()
 
A.说明不合法
B. 19
C. 18
D. 15
19,已知有宏定义#define SQR(a) 2aa,则SQR(3+4)的值为()
A. 22
B. 32
C. 98
D. 18
- 定义结构体的关键字是()
 
A. struct
B. typedef
C. Enum
D. Union
二、程序阅读题(本大题共5小题,每小题6分,共30分。请将程序的运行结果填写在答题纸的相应位置上。)
 1_______
#include <stdio.h>int main() {int x = 1, a = 1, b = 1;switch (x) {case 0:b++;case 1:a++;case 2:a++;b++;break;}printf("a=%d, b=%d\n", a, b);return 0;
} 
2________
#include <stdio.h>int main() {int i = 0, s = 0;do {s += i * 2 + 1;i++;} while (s < 10);printf("i=%d, s=%d\n", i, s);return 0;
} 
3______
#include <stdio.h>int main() {int k = 2;while (k < 7) {if (k % 2) {k = k + 3;printf("k-%d\n", k);continue;}k = k + 1;printf("k=%d\n", k);}return 0;
} 
4_______
#include <stdio.h>int LA(int *a, int n) {int i, s = 0;for (i = 0; i < n; i++) {s += a[i];}return s;
}int main() {int a[5] = {1, 2, 3, 4, 5};int b = LA(a, 5) + LA(a + 1, 3);printf("b=%d\n", b);return 0;
} 
5_______
#include <stdio.h>int WF(int x, int y) {static int k;x = x + y;y += x;k += x + y;return k;
}int main() {int x = 3, y = 5;printf("%d, %d\n", WF(x, y), WF(x, y));return 0;
} 
程序填空题(每空 5分,共 35分。请将答案填写在答题纸的相应位置上。).求满足下式的 x,y,z。
XYZ
 +YZZ
532
#include <stdio.h>
 { int maintintxyitesult=532
 for (x=1;_____;x++)
 for (y=1; y<=9 y+)
 for (_z<=9;z++)
 {
 i=③+(100y+10z+2);
 if (i=result) printf(“x=%d, y=%d, z=%dln”,x.y,z);
 }
 return 0;
 }
 2. 程序功能:输入一数字后,将输入的数字颠倒后输出。
 #include “stdio.h”
 int main()
 {
 int numb,rdigit;
 scanf(“%d”,&numb);
 while(①r)
 {
 digit-numb%10;
 printf(“%d”,)
 numb/=10;
 printf(“\n”);
 return 0;
 }
 3. 程序功能:下面的程序输入 10 个整数,按升序排序后输出。完善程序。
 #include <stdio.h>
 void Swap(int *x,int *y)
 int t = *x;
 ①
 *y=t;
 }
 void Sort(int *array, int n)
 {
 int i, j;
 for (i=n-1;i>0;–i)
 {
 for (j= 0; j <i; ++j)
 if (array[i]>array[j+1])
 ② ;
 }
 }
 int main()
 {
 int a[10],i;
 for(i=0;i<10;i++)scanf(“%d”,&a[i)):
 Sort(a,10);
 for(i=0;i<10;i++)
 printf(“%d”,a[i]);
 returm 0;
 }
四、编程题(本大题共3小题,每小题15分,共45分,请在答题纸的相应位置上作答。)
-  
编写程序,输入两个正整数 m 和 n. 求其最大公约数
 -  
编写函数 copy(char strl],char str2[],int n),实现将 str2 中字符串前 n 个字符复制到 strl 中
(1)用 for 循环编写函数 copy(char str1[],char str2],int n),不允许用 strcpy()函数。
(2)编写主函数输入字符串,调用 copy(char str1],char str2[],int n)并输出。 -  
编写程序,输出以下图形

 
