一、单项选择题(本大题共20小题,每小题2分,共40分。在每小题给出的四个备选项中选出一个正确的答案,并将所选项前的字母填写在答题纸的相应位置上。)
1.设n=3;则表达式n++的结果是()
A. 2
B. 3
C. 4
D. 5
2.以下能正确定义且赋初值的语句是()
A. char a=b=‘a’,
B. char c=65;
C. char a,b=a;
D. char c=“a”;
3.以下选项中可作为C语言合法常量的是()。
A. 0ΧΑ
B. 080
C. 8el.0D. "
则以下引用方法不正确的是()
A. work.no
B. (*p).no
C. p->no
D. work->no
5.以下对二维数组进行正确初始化的是()
A. int a[2][3]={{1,2},{3,4},{5,6}};
B. int a[][3]={1,2,3,4,5.6};
C.int a[2][]={1,2,3,4,5,6};
D.int a[2][0={{1,2%,{3,4}};
A.数组的长度
B. 数组的首地址
C.该元素的地址
D. 该元素中的值
7,已知有变量定义: int a;char c;用scanf(“%d%c”,&a,&c);语句给a和c输入数据,使30存入a.字符b存入c,则正确的输入是()
A. 30’b’<回车>
B. 30 b<回车>
C. 30<回车>b<回车>
D. 30b<回车>>
A. This is a book!
B. This is
C. This i
D.> .格式描述不正确,没有确定输出
A不同的函数中可以使用相同的变量名
B.形式參数是局部变量
C.一个函数内部定义的变量只能在本函数范围内有效
D;在一个函数内部的复合语句中定义的变量可以在本函数范围内有效
10,为了判断两个字符串s1和s2不相等,应当使用()
A. if(sls2)
B. if(sl=s2)
C. if(strcmp(s1,s2))
D. if(strcmp(s1.s2)-0)
A. 10,01
B. 02,12
C. 102,10
D. 02,01
12,以下能正确定义数组并正确赋初值的语句是()
A. int n=5;char a[n][n];
B. chara[1][2]={{“a”),{“b”}};
C. char c[2]={“ab”};
D. char a=“abcde”;
A. return 语句中的表达式类型所决定
B.在定义该函数时所指定的函数类型所决定
C.调用该函数时系统临时决定
D.调用该函数时的主调函数类型所决定
14,下列关于#include命令的叙述中,错误的是()
A. #include命令中,文件名可以用双引号或尖括号括起来
B.一个被包含文件中又可以包含另一个被包含文件
c. 一个#include命令中可以指定多个被包含文件
D.一个#include命令中只能指定一个被包含文件
15.在定义 int a[10];之后,对a 的元素引用正确的是()
A. a[10]
B. a[7.3]
C. a(6)
D. a[20-12]
16,若有定义inta=8,b,*p=&a;则下列语句中使b不为8的语句是()
A. b=*&a;
C. b=a;
B. b=*p;
D. b=*a;
A. 10
B. 11
C. 7
D. 8
18,在while (!x)语句中的x与下面条件表达式等价的是()
A. x0
B.x1
C. x!=1
D. x!=0
A.全局变量的作用域一定比局部变量的作用域范围大
B.静态(static)类别变量的生存期贯穿于整个程序的运行期间
c.函数的形参都属于全局变量
D.未在定义语句中赋初值的auto变量和static变量的初值都是随机值
A. 4
B. 6
c. 12
D. 16
二、程序阅读题(本大题共5小题,每小题6分,共30分。请将程序的运行结果填写的相应位置上。)
1_______
#include
void sub(int s[], int y) {
static int t = 3;
y = s[t];
t--;
}
int main() {
int a[] = {5, 6, 7, 8};
int i, x = 0;
for (i = 0; i < 4; i++) {
sub(a, x);
}
for (i = 0; i < 4; i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
2_________
#include
void fun(int b[4]) {
int j;
for (j = 0; j < 4; j++) {
b[j] = j;
}
}
int main() {
int a[4] = {1, 2, 3, 4};
int k;
fun(a);
for (k = 0; k < 4; k++) {
printf("%d ", a[k]);
}
return 0;
}
3_________
#include "stdio.h"
int d = 10;
void fun(int p) {
int d = 8;
d += p++;
printf("%d ", d);
}
int main() {
int a = 3;
fun(a);
{
int d = 15;
d += a++;
printf("%d ", d);
}
printf("%d ", d);
return 0;
}
4_______
输入5,18
#include "stdio.h"
void main() {
int a, b, t; // Removed duplicate declaration of 't'
scanf("%d,%d", &a, &b);
t = a + b;
printf("b-%d", b);
}
5_______
#include
void ast(int x, int y, int *cp, int *dp) {
*cp = x * y;
*dp = *dp / y; // Fixed the division assignment
}
int main() {
int a, b, c, d;
a = 5;
b = 3;
ast(a, b, &c, &d);
printf("%d, %d\n", c, d);
return 0;
}
三、程序填空题(每空 5分,共 35分。请将答案填写在答题纸的相应位置上。)
#include
void main() {
int num, k;
_________;
printf("Please enter a number:");
scanf("%d", &num);
do {
num /= 10;
k++; // Increment k to count the number of divisions
} while (num > 0);
printf("%d\n", k);
}
2,程序功能: e=1+1/11+1/2!+1/3!++1/n!+,计算e的近似值。
#include
#include
void main() {
long int n, j;
float sum = 1.0, t;
for (n = 1; fabs(1 / t)_________1e-6; n++) {
t = 1.0;
for (j = 1; j <= n; j++) {
_______;
}
sum += 1 / t;
}
printf("%10.2f\n", sum);
}
以下程序中函数fun的功能是:统计person所指结构体数组中所有性别(sex)为M的记录的女,存入变量n中,并作为函数值返回。请填空。
#include <stdio.h
#define N 3
typedef struct {
int num;char nam[10];char sex;
int fun(SS person[])
{
int i, n = θ;
for(i=0;i<N;i++)
if(__________='M')n++;
return n;
}
int main() {
int i, n = 0;
SS W[N] = {{1, "AA", 'F'}, {2, "BB", 'M'}},int n;
n=___________:
, char gender) {
if (person.sex == gender) {
return 1;
}
return 0;
}
int main() {
int i, n = 0;
SS W[N] = {{1, "AA", 'F'}, {2, "BB", 'M'}},
n=__________;printf("n=%d\n",n)
四编程题(本大题共3小题,每小题15分,共45分。请在答题纸的相应位置上作答。)
1…在主函数中输入10个等长的字符串,子函数对它们排序,最后在主函数中输好序的字符串。
2.编写函数intstrcmpfciar*p1,char *p2):实现两个字符串的比较。用主函数调用之。要针实现,不允诤使用标准库函数。
3,一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问多少?试编程求之。