首页 / C语言 / 【计算机二级C语言】卷003
【计算机二级C语言】卷003
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了【计算机二级C语言】卷003,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含17735字,纯文字阅读大概需要26分钟。
内容图文
选择题
A.算法的时间复杂度是指算法在执行过程中基本运算的次数
B.算法的时间复杂度是指算法执行所需要的时间
C.算法的时间复杂度是指算法执行的速度
D.算法复杂度是指算法控制结构的复杂程度
B.循环队列是队列的一种顺序存储结构
C.循环队列中的队尾指针一定大于队头指针
D.循环队列中的队尾指针一定小于队头指针
B.8
C.9
D.10
B.线性结构一定能采用顺序存储结构
C.有的非线性结构也能采用顺序存储结构
D.非线性结构一定不能采用顺序存储结构
B.确定软件开发方法
C.确定软件开发工具
D.确定软件开发人员
B.扇出数
C.宽度
D.作用域
B.抽象
C.封装
D.结合
B.概念模型
C.网状模型
D.关系模型
B.一对一
C.多对一
D.一对多
班级(班级号,总人数,所属学院,班级学生)
则使它不满足第一范式的属性是()。
B.班级学生
C.总人数
D.所属学院
B.C语言只接受八进制、十进制、十六进制的数
C.C语言接受除二进制之外任何进制的数
D.C语言接受任何进制的数
B.由三种基本结构组成的结构化程序能解决一些简单的问题
C.由三种基本结构组成的结构化程序能解决递归问题
D.由三种基本结构组成的结构化程序能解决数学上有解析解的问题
B.C语言标识符中下划线字符可以出现在任意位置
C.C语言标识符不能全部由数字组成
D.C语言标识符必须以字母开头
B.C语言中的常量是指在程序运行过程中其值不能被改变的量
C.C语言中的常量可以用一个符号名来代表
D.C语言中的常量可以用宏来定义
B. +1234 -5678(最前面有一个空格,中间有一个空格)
C.+-1234+-5678(最前面和最后均无空格)
D.1234 -5678 (中间有两个空格,最后有一个空格)
中间一个空格,最后一个空格,本题答案A
若想把1.2输入给变量a,3.4输入给变量b,5678输入给变量c,程序运行时键盘输入:
1.2 3.4 5678 < 回车 >
则以下正确的读入语句是()。
B.scanf("%lf%lf%hd", &a, &b, &c);
C.scanf("%lf%f%hd", &a, &b, &c);
D.scanf("%f%f%d", &a, &b, &c);
#include <stdio.h>
void main()
{
int a = 1, b = 1, c = 1;
if (a-- || b-- && --c)
printf("%d,%d,%d\n", a, b, c);
else
printf("%d,%d,%d\n", a, c, b);
}
程序执行后的输出结果是() 。
B.0, 1, 1
C.0, 0, 1
D.0, 0, 0
#include <stdio.h>
void main()
{
int a = 123456, b;
while (a)
{
b = a % 10;
a /= 10;
switch (b)
{
default: printf("%d", b++);
case 1: break;
case 2: printf("%d", b++); break;
case 3: printf("%d", b++);
case 4: printf("%d", b++);
case 5: printf("%d", b++);
}
}
}
程序执行后的输出结果是() 。
B.65432
C.65453452
D.654534521
输出6,接着继续执行case 1,break退出switch,执行下一次循环;当b取值为5时,执行case 5输出5,执行下一次循环;当b取值为4时,执行case 4输出4,继续
执行case 5输出5,接着下一次循环;当b取值为3时,执行case 3输出3,执行case 4输出4,执行case 5输出5;当b取值为2时,执行case 2输出2,break跳出
switch;当b取值为1时,执行break,此时a的取值为0,循环终止,程序输出结果为:65453452,本题答案C。
#include <stdio.h>
void main()
{
int a = 1, b = -2;
for (; a-- && b++;)
printf("%d,%d,", a, b);
printf("%d,%d", a, b);
}
程序执行后的输出结果是() 。
B.0,-1,-1,0
C.0,-1,-1,0,-1,0
D.0,-1,-1,-1,-1,-1
第一轮循环,a、b的值为1, -2:首先执行a--,a--的值为1,执行完后a的值为0,继续执行b++,b++的值为 - 2,执行完后b的值为 - 1,整个表达式a-- && b++的值为真,程序输出0, - 1;接着继续循环第二轮循环,a、b的值为0, - 1:首先执行a--,a--的值为0,执行完后a的值为 - 1,由于a--的值为0,逻辑与运算的短路原则,表达式a-- && b++的值一定为假,表达式b++不再执行,循环结束,执行循环体外的printf语句,输出a、b的值分别为: - 1, - 1
所以本题输出结果为:0, - 1, - 1, - 1,本题答案A
#include <stdio.h>
void main()
{
int a = 7, i;
for (i = 1; i <= 3; i++)
{
if (a > 14) break;
if (a % 2) { a += 3; continue; }
a = a + 4;
printf("%d,%d,", i, a);
}
printf("%d,%d", i, a);
}
程序执行后的输出结果是() 。
B.1,14,2,18,3,18
C.2,14,3,18,4,22
D.1,14,2,18,3,18,4,18
i取值为1时,a取值为7,自增3后a的值为10,执行下一个循环
i取值为2时,a取值为10,自增4后a的值为14,输出2, 14
i取值为3时,a取值为14,自增4后a的值为18,输出3, 18
i取值为4时,a取值为18,循环终止,输出4, 18
综上,程序输出:2, 14, 3, 18, 4, 18,本题答案为A
B.‘\012‘
C.‘\0XAB‘
D.‘\0xab‘
#include <stdio.h>
void main()
{
char b[] = "happychristmas", k;
for (k = 0; b[k]; k++)
{
if (b[k] < 'm')
b[k] = b[k] - 'a' + 'A';
printf("%c", b[k]);
}
}
程序执行后的输出结果是() 。
B.happychristmas
C.HAppyCHrIstmAs
D.HAPPYCHRISTMAS
程序输出:HappyCHrIstmAs,本题答案C
int fun(int a[4][5], int *p[10], int n)
{…… }
调用函数之前需要对函数进行说明,即所谓的函数向前引用说明,以下对fun函数说明正确的是()。
B.int fun(int a[4][], int *p[10], int n);
C.int fun(int a[][], int *p[], int n);
D.int fun(int a[], int *p[], int n);
B.若指针指向变量,则可以向指针所指内存单元写入数据
C.指针可以指向内存中任何位置,并写入数据
D.两个指针可以通过加运算求和,形成一个功能更强大的指针
算,即移动指针,两个指针不能运算,选项D错误,本题答案B
#include <stdio.h>
int *f(int *s)
{
s += 1;
s[1] += 6;
*s-- += 7;
return s;
}
void main()
{
int a[5] = { 1, 2, 3, 4, 5 }, *p;
p = f(a);
printf("%d,%d,%d,%d", a[1], a[2], *p, p[1]);
}
程序执行后的输出结果是() 。
B.9,9,2,9
C.8,10,2,8
D.9,9,1,9
#include <stdio.h>
void swap(int *a, int *b)
{
int *tp, t;
t = *a; *a = *b; *b = t;
tp = a; a = b; b = tp;
printf("%d,%d,", *a, *b);
}
void main()
{
int i = 3, j = 7, *p = &i, *q = &j;
swap(&i, &j);
printf("%d,%d", *p, *q);
}
程序执行后的输出结果是() 。
B.7, 3, 7, 3
C.3, 7, 7, 3
D.7, 3, 3, 7
针值,使得a指向j,b指向i,所以swap中输出a指向的值为3(j),b指向的值为7(i);swap函数调用结束后,输出p和q指向的值,即i,j的值7, 3,所以程序输
出:3,7, 7, 3,本题答案C
#include <stdio.h>
#define N 4
int fun(int a[][N])
{
int i, y = 0;
for (i = 0; i < N; i++)
y += a[i][0] + a[i][N - 1];
for (i = 1; i < N - 1; i++)
y += a[0][i] + a[N - 1][i];
return y;
}
void main()
{
int y, x[N][N] = {
{1, 2, 3, 4 },
{2, 1, 4, 3 },
{3, 4, 1, 2 },
{4, 3, 2, 1 }};
y = fun(x);
printf("%d", y);
}
程序执行后的输出结果是() 。
B.35
C.40
D.32
1, 2, 3, 4, 2, 3, 3, 2, 4, 3, 2, 1,输出30,本题答案A
#include <stdio.h>
void fun(int a[ ], int n, int flag)
{
int i = 0, j, t;
for (i = 0; i < n - 1; i++)
for (j = i + 1; j < n; j++)
if (flag ? (a[i] < a[j]) :(a[i] > a[j]))
{ t = a[i]; a[i] = a[j]; a[j] = t; }
}
void main()
{
int c[10] = { 7, 9, 10, 8, 3, 5, 1, 6, 2, 4 }, i;
fun(c, 5, 1);
fun(c + 5, 5, 0);
for (i = 0; i < 10; i++)
printf("%d,", c[i]);
}
程序执行后的输出结果是() 。
B.10, 9, 8, 7, 3, 1, 2, 4, 5, 6,
C.10, 9, 8, 7, 6, 1, 2, 3, 4, 5,
D.1, 2, 3, 4, 5, 10, 9, 8, 7, 6,
元素为:10, 9, 8, 7, 3, 1, 2, 4, 5, 6,本题答案B。
#include <stdio.h>
void main()
{
int i, j = 0;
char a[] = "ab1b23c4d56ef7gh89i9j64k", b[100];
for (i = 0; a[i]; i++)
if (a[i] < 'a' || a[i] > 'z')
b[j++] = a[i];
for (i = 0; a[i]; i++)
if (a[i] < '0' || a[i] > '9')
b[j++] = a[i];
b[j] = '\0';
printf("%s", b);
}
程序执行后的输出结果是() 。
B.123456789964abbcdefghijk
C.123445667899abbcdefghijk
D.abbcdefghijk123445667899
123456789964abbcdefghijk,本题答案B
#include <stdio.h>
void main()
{
char v[4][10] = { "efg","abcd","mnopq","hijkl" }, *p[4], t;
int i, j;
for (i = 0; i < 4; i++)
p[i] = v[i];
for (i = 0; i < 3; i++)
for (j = i + 1; j < 4; j++)
if (*p[i] > *p[j])
{ t = *p[i]; *p[i] = *p[j]; *p[j] = t; }
for (i = 0; i < 4; i++)
printf("%s " , v[i]);
}
程序执行后的输出结果是() 。
B.afg ebcd hnopq mijkl
C.efg abcd mnopq hijkl
D.mijkl hnopq ebcd afg
母,而不是整个字符串,所以程序输出:afg ebcd hnopq mijkl,本题答案B
#include <stdio.h>
void main()
{
char v[5][10] = { "efg","abcd","snopq","hijkl","xyz" };
printf("%s,%c,%s,%c,%s" , *v, **(v + 3), v[4] + 2, *(v[2] + 4),v[1] + 1);
}
程序执行后的输出结果是() 。
B.efg, d, zyz, w, bbcd
C.efgabcdsnopqhijklxyz, h, z, q, bcd
D.efgabcdsnopqhijklxyz, d, zyz, w, bbcd
示数组v的第三个元素的下标为4的字符:q,v[1] + 1表示数组v的第二个元素从下标1开始的子字符串,即:bcd,本题输出:efg, h, z, q, bcd,本题答案A
#include <stdio.h>
#include <string.h>
void main()
{
char a[5][10] = { "efg","abcd","mnopq","hijkl","rstuvwxyz" };
char *p[5];
int i, len;
for (i = 0; i < 5; i++)
{
p[i] = a[i];
len = strlen(p[i]);
printf("%c", p[i][0]);
printf("%s", p[i] + len / 2);
}
}
程序执行后的输出结果是() 。
B.efgabcdmnopqhijklrstuvwxyz
C.efgacdmopqhjklrvwxyz
D.eefgaabcdmmnopqhhijklrrstuvwxyz
下标i = 0输出:efg
下标i = 1输出:acd
下标i = 2输出:mopq
下标i = 3输出:hjkl
下标i = 4输出:rvwxyz
程序输出:efgacdmopqhjklrvwxyz,本题答案C
#include <stdio.h>
int f(int x)
{
if (x < 2)
return 1;
return x*f(x - 1) + (x - 1) *f(x - 2);
}
void main()
{
int y;
y = f(4);
printf("%d\n", y);
}
程序执行后的输出结果是() 。
B.43
C.57
D.53
f(4)等价于 4*f(3) + 3*f(2)
f(3)等价于 3*f(2) + 2*f(1)
f(2)等价于 2*f(1) + 1*f(0)
f(0),f(1)等价于1
综上:f(2)等于3,f(3)等于11,f(4)等于53,本题答案D
#include <stdio.h>
int a = 5;
int func(int d)
{
int b = 5;
static int c = 5;
a--; b--; --c; --d;
return a + b + c + d;
}
void main()
{
int k, a = 4;
for (k = 0; k < 3; k++)
printf("%d,", func(a--));
}
程序执行后的输出结果是() 。
B.15, 13, 11,
C.15, 11, 7,
D.15, 15, 15,
量a。
main函数中,k = 0时,a_a = 5, m_a = 4,调用函数func(4),函数func中d的值为4,b的值为5,c的值为5,执行表达式a_a--; b--; --c; --d; 后,a_a的值为4,b的值为4,c
的值为4,d的值为3,a + b + c + d的值为15,程序输出15
k = 1时,a_a = 4, m_a = 3,调用函数func(3),函数func中d的值为3,b的值为5,c的值为4(静态变量使用上一次调用结束时的值),执行表达式a_a--; b--; --c; --d; 后,
a_a的值为3,b的值为4,c的值为3,d的值为2,a + b + c + d的值为12,程序输出12
k = 2时,a_a = 3, m_a = 2, 调用函数func(2),函数func中d的值为2,b的值为5,c的值为3,执行表达式a_a--; b--; --c; --d后,a_a的值为2,b的值为4,c的值为2,d的值
为1,a + b + c + d的值为9,程序输出9。综上,本题答案:A
#include <stdio.h>
#define S1(x, y) x*y
#define S2(x, y) (x) *(y)
void main()
{
int a = 2, b = 5;
printf("%d,%d,%d,%d", S1(a + b, a + b), S1(a + b, b + a), S2(a + b, a + b), S2(a + b, b + a));
}
程序执行后的输出结果是() 。
B.17, 29, 49, 49
C.29, 29, 49, 49
D.49, 49, 49, 49
S1(a + b, b + a)等价于:a + b*b + a,即2 + 5*5 + 2,等于29
S2(a + b, a + b)等价于:(a + b)*(a + b),即(2 + 5)*(2 + 5),等于49
S2(a + b, b + a)等价于:(a + b)*(b + a), 即(2 + 5)*(5 + 2),等于49
本题答案:B
#include <stdio.h>
#include <string.h>
typedef struct stu {
char name[9];
char gender;
int score;
} STU;
STU a = { "Zhao", 'm', 85 };
STU f()
{
STU c = { "Sun", 'f', 90 };
strcpy(a.name, c.name);
a.gender = c.gender;
a.score = c.score;
return a;
}
void main()
{
STU b = { "Qian", 'f', 95 };
b = f();
printf("%s,%c,%d,%s,%c,%d", a.name, a.gender, a.score, b.name, b.gender, b.score);
}
程序执行后的输出结果是() 。
B.Zhao, m, 85, Sun, f, 90
C.Zhao, m, 85, Qian, f, 95
D.Sun, f, 90, Qian, f, 95
#include <stdio.h>
typedef struct stu {
char name[9];
char gender;
int score;
} STU;
void f(STU *a)
{
STU c = { "Sun", 'f', 90 }, *d = &c;
*a = *d;
printf("%s,%c,%d,", a->name, a->gender, a->score);
}
void main()
{
STU b = { "Zhao", 'm', 85 }, *a = &b;
f(a);
printf("%s,%c,%d", a->name, a->gender, a->score);
}
程序执行后的输出结果是() 。
B.Sun, f, 90, Zhao, m, 85
C.Zhao, m, 85, Sun, f, 90
D.Sun, f, 90, Sun, f, 90
值等价于c:Sun, f, 90。本题答案D
typedef int *T[10];
T *a;
则以下与上述定义中a类型完全相同的是()。
B.int **a[10];
C.int *(*a)[10];
D.int *a[][10];
#include <stdio.h>
void main()
{
int x = 4, y = 2, z1, z2;
z1 = x && y; z2 = x&y;
printf("%d,%d\n", z1, z2);
}
程序执行后的输出结果是() 。
B.1, 1
C.1, 4
D.4, 4
#include <stdio.h>
void main()
{
FILE *fp;
int i, a[6] = { 1, 2, 3, 4, 5, 6 };
fp = fopen("d.dat", "w+b");
for (i = 5; i >= 0; i--)
fwrite(&a[i], sizeof(int), 1, fp);
rewind(fp);
fread(&a[3], sizeof(int), 3, fp);
fclose(fp);
for (i = 0; i < 6; i++)
printf("%d,", a[i]);
}
程序执行后的输出结果是() 。
B.1, 2, 3, 4, 5, 6,
C.4, 5, 6, 4, 5, 6,
D.1, 2, 3, 6, 5, 4,
输出a,输出结果为:1, 2, 3, 6, 5, 4。
本题答案:D
编程题
(1)x[i].s (2) > ave (3)n++
(1)if (b[i + 1] != ‘\0‘) (2)break; (3)c[j] = ‘\0’;
void fun(int a[N][N], int \*p) { int i, k = 0; for (i = 0; i < N; i++){ p[k++] = a[i][i] \* 2; } for (i = 0; i < N; i++){ p[k++] = a[i][N - i - 1] \* 3; } }
首先需要理解,题意中二维数组的主对角线元素是指行下标和列下标相等的元素,次对角线元素是指行下标和列下标之和为N - 1的元素。接下来编写fun函数,程序定义两个变量i和k,k初值为0,通过两个for循环完成题意要求,第一个for循环遍历二维数组的主对角线元素a[i][i],乘2后赋值给p[k],再
对k自增1;第二个for循环遍历二维数组的次对角线元素a[i][N - i - 1],乘3后赋值给p[k],再对k自增1。
原文:https://www.cnblogs.com/mjios/p/12405599.html
内容总结
以上是互联网集市为您收集整理的【计算机二级C语言】卷003全部内容,希望文章能够帮你解决【计算机二级C语言】卷003所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。