文章目录[隐藏]

第9周——指针:C语言世界中所向披靡的“金箍棒” 第9周测验

1、 问题:子函数Fun的功能是比较形参变量x和y所指的内存单元中的数据大小,将两者中的最小值返回。以下程序执行后输出结果是7,8,7。按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include
int Fun(int x,int y)
{
if(_____) /如果形参变量x所指的内存单元中的数据小于y所指的内存单元中的数据,则返回该最小值/
return x;
else
return
y;
}

int main()
{
int a=7,b=8,_,r;
p=&a;
q=&b;
r=______; /调用子函数Fun,返回变量a和b中的最小值,将其存放到变量r中。/

printf("%d,%d,%d",*p,*q,r);
return 0;

}
选项:
A:第4行: x<y第12行: p,q第15行: Fun(p,q)
B:第4行: x第4行: x<y第12行: p,q第15行: Fun(p,q)】

2、 问题:下列函数的功能为__。void Exchange(int p1, int p2){ int p; p = p1; p1 = p2; p2 = p;}
选项:
A:交换p1和p2的值
B:正确,但无法改变p1和p2的值
C:交换p1和p2的地址
D:可能造成系统故障
答案: 【交换p1和p2的值

3、 问题:声明语句int (*p)();的含义是__。
选项:
A:p是一个指向函数的指针,该函数的返回值是一个整型
B:p是一个指向一维数组的指针变量
C:p是指针变量,指向一个整型数据
D:以上都不对
答案: 【p是一个指向函数的指针,该函数的返回值是一个整型

4、 问题:声明语句int *f();中f的含义是__。
选项:
A:一个返回值为指针类型的函数名
B:一个用于指向函数的指针变量
C:一个用于指向一维数组的行指针
D:一个用于指向整型数据的指针变量
答案: 【一个返回值为指针类型的函数名

5、 问题:从键盘任意输入10个整数,计算并输出最大值和最小值及其它们在数组中的下标位置。按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。程序运行结果示例1:Input 10 numbers:1 2 3 4 5 6 7 8 9 10↙max=10,pos=9min=1,pos=0程序运行结果示例2:Input 10 numbers:2 4 5 6 8 10 1 3 5 7 9↙max=10,pos=5min=1,pos=6#include
int FindMax(int a[], int n, int pMaxPos);
int FindMin(int a[], int n, int
pMinPos);
int main()
{
int a[10], maxValue, maxPos, minValue, minPos, i;
printf(“Input 10 numbers:”);
for (i=0; i<10; i++)
{
scanf(“%d”, &a[i]); // 输入10个数
}

maxValue = FindMax(a, 10, _________);  // 找最大值及其所在下标位置
minValue = FindMin(a, 10, _________);  // 找最小值及其所在下标位置
printf("max=%d,pos=%d", maxValue, maxPos);
printf("min=%d,pos=%d", minValue, minPos);
return 0;

}

//函数功能:求有n个元素的整型数组a中的最大值及其所在下标位置,函数返回最大值
int FindMax(int a[], int n, int *pMaxPos)
{
int i, max;
max = a[0]; //假设a[0]为最大值
____; //假设最大值在数组中的下标位置为0

for (i=1; i<n; i++)
{
    if (a[i] > max)
    {
        max = a[i];
        __________;     //pMaxPos指向最大值数组元素的下标位置
    }
}
return max ;

}

//函数功能:求有n个元素的整型数组a中的最小值及其所在下标位置,函数返回最小值
int FindMin(int a[], int n, int *pMinPos)
{
int i, min;
min = a[0]; //假设a[0]为最小
____; //假设最小值在数组中的下标位置为0

for (i=1; i<10; i++)
{
    if (a[i] < min)
    {
        min = a[i];
        __________;  //pMinPos指向最小值数组元素的下标位置
    }
}
return min ;

}
选项:
A:第13行:&maxPos第14行:&minPos第25行:pMaxPos = 0第32行:pMaxPos = i第43行:pMinPos = 0第50行:pMinPos = i
B:第13行:maxPos第14行:minPos第25行:pMaxPos = 0第32行:pMaxPos = i第43行:pMinPos = 0第50行:pMinPos = i
C:第13行:maxPos第14行:minPos第25行:pMaxPos = 0第32行:pMaxPos = i第43行:pMinPos = 0第50行:pMinPos = i
D:第13行:&maxPos第14行:&minPos第25行:pMaxPos = 0第32行:pMaxPos = i第43行:pMinPos = 0第50行:pMinPos = i
答案: 【第13行:&maxPos第14行:&minPos第25行:pMaxPos = 0第32行:pMaxPos = i第43行:pMinPos = 0第50行:pMinPos = i

第9周——指针:C语言世界中所向披靡的“金箍棒” 练兵区——单选题——不计入总分

1、 问题:下面程序的功能是输入某年某月某日,计算并输出它是这一年的第几天。程序的运行结果如下:Please enter year, month, day:2014,12,29↙yearDay = 363按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include
int DayofYear(int year, int month, int day);
int dayTab[2][13] = {{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}};
int main()
{
int year, month, day, yearDay;
printf(“Please enter year, month, day:”);
scanf(“%d,%d,%d”, &year, &month, &day);
yearDay = DayofYear(year, month, day);
printf(“yearDay = %d”, yearDay);
return 0;
}

/ 函数功能:对给定的某年某月某日,计算并返回它是这一年的第几天 /
int DayofYear(int year, int month, int day)
{
int i, leap;
leap = ___; / 若year为闰年,即leap值为1,则用第1行元素dayTab[1][i]计算;
否则leap值为0,用第0行dayTab[0][i]计算
/
for (i=1;
_; i++)
{
day =
_______;
}
return day; / 返回计算出的day的值 /
}
选项:
A:第18行: ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)第20: i第18行: ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)第20: i

2、 问题:下面程序的功能是从键盘输入10个整数,用函数编程实现计算其最大值和最小值,并互换它们所在数组中的位置。程序运行结果如下:Input n(n<=10):10↙Input 10 Numbers:1 4 3 0 –2 6 7 2 9 -1 ↙Exchange results: 1 4 3 0 9 6 7 2 -2 -1按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include
void ReadData(int a[], int n);
void PrintData(int a[], int n);
void MaxMinExchang(int a[], int n);
void Swap(int x, int y);
int main()
{
int a[10], n;
printf(“Input n(n<=10):”);
scanf(“%d”, &n);
printf(“Input %d numbers:”, n);
ReadData(a, n);
MaxMinExchang(a, n);
printf(“Exchange results:”);
PrintData(a, n);
return 0;
}

/ 函数功能:输入数组a的n个元素值 /
void ReadData(int a[], int n)
{
int i;
for (i=0; i<n; i++)
{
scanf(“%d”, &a[i]);
}
}

/ 函数功能:输出数组a的n个元素值 /
void PrintData(int a[], int n)
{
int i;
for (i=0; i<n; i++)
{
printf(“%5d”, a[i]);
}
printf(“”);
}

/ 函数功能:将数组a中的最大数与最小数位置互换 /
void MaxMinExchang(__, int n)
{
int maxValue = a[0], minValue = a[0], maxPos = 0, minPos = 0;
int i;
for (i=1; i maxValue)
{
maxValue = _;
maxPos = _;
}
if (a[i] < minValue)
{
minValue = a[i];
minPos = i;
}
}
Swap(
_______);
}

/ 函数功能:两整数值互换 /
void Swap(int x, int y)
{
int __;
temp = *x;
___;

*y = temp;

}
选项:
A:第41行: int a[]第49行: a[i]第50行: i第58行: &a[maxPos], &a[minPos]第64行: temp第66行: x = y
B:第41行: int a第49行: a[i]第50行: i第58行: a[maxPos], a[minPos]第64行: temp第66行: x = y
C:第41行: int a[]第49行: a[0]第50行: 0第58行: &a[maxPos], &a[minPos]第64行: temp第66行: x = y
D:第41行: int a[]第49行: a[n-1]第50行: n-1第58行:
a[maxPos], a[minPos]第64行: &temp第66行: x = y
答案: 【第41行: int a[]第49行: a[i]第50行: i第58行: &a[maxPos], &a[minPos]第64行: temp第66行:
x = *y】

3、 问题:下列函数的功能为__。void Exchange(int p1, int p2){ int p; p = p1; p1 = p2; p2 = p;}
选项:
A:交换p1和p2的值
B:正确,但无法改变p1和p2的值
C:交换p1和p2的地址
D:可能造成系统故障
答案: 【交换p1和p2的值

4、 问题:声明语句int (*p)();的含义是__。
选项:
A:p是一个指向函数的指针,该函数的返回值是一个整型
B:p是一个指向一维数组的指针变量
C:p是指针变量,指向一个整型数据
D:以上都不对
答案: 【p是一个指向函数的指针,该函数的返回值是一个整型

5、 问题:声明语句int *f();中f的含义是__。
选项:
A:一个返回值为指针类型的函数名
B:一个用于指向函数的指针变量
C:一个用于指向一维数组的行指针
D:一个用于指向整型数据的指针变量
答案: 【一个返回值为指针类型的函数名

6、 问题:给出下面程序的运行结果。#include
int main(void)
{
static int x[] = {1,2,3};
int s = 1, i, *p = x;

for (i=0; i<3; i++)
{
    s*= *(p + i);
}

printf("%d", s);
return 0;

}
选项:
A:6
B:3
C:4
D:5
答案: 【6

7、 问题:从键盘任意输入10个整数,计算并输出最大值和最小值及其它们在数组中的下标位置。按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。程序运行结果示例1:Input 10 numbers:1 2 3 4 5 6 7 8 9 10↙max=10,pos=9min=1,pos=0程序运行结果示例2:Input 10 numbers:2 4 5 6 8 10 1 3 5 7 9↙max=10,pos=5min=1,pos=6#include
int FindMax(int a[], int n, int pMaxPos);
int FindMin(int a[], int n, int
pMinPos);
int main()
{
int a[10], maxValue, maxPos, minValue, minPos, i;
printf(“Input 10 numbers:”);
for (i=0; i<10; i++)
{
scanf(“%d”, &a[i]); // 输入10个数
}

maxValue = FindMax(a, 10, _________);  // 找最大值及其所在下标位置
minValue = FindMin(a, 10, _________);  // 找最小值及其所在下标位置
printf("max=%d,pos=%d", maxValue, maxPos);
printf("min=%d,pos=%d", minValue, minPos);
return 0;

}

//函数功能:求有n个元素的整型数组a中的最大值及其所在下标位置,函数返回最大值
int FindMax(int a[], int n, int *pMaxPos)
{
int i, max;
max = a[0]; //假设a[0]为最大值
____; //假设最大值在数组中的下标位置为0

for (i=1; i<n; i++)
{
    if (a[i] > max)
    {
        max = a[i];
        __________;     //pMaxPos指向最大值数组元素的下标位置
    }
}
return max ;

}

//函数功能:求有n个元素的整型数组a中的最小值及其所在下标位置,函数返回最小值
int FindMin(int a[], int n, int *pMinPos)
{
int i, min;
min = a[0]; //假设a[0]为最小
____; //假设最小值在数组中的下标位置为0

for (i=1; i<10; i++)
{
    if (a[i] < min)
    {
        min = a[i];
        __________;  //pMinPos指向最小值数组元素的下标位置
    }
}
return min ;

}
选项:
A:第13行:&maxPos第14行:&minPos第25行:pMaxPos = 0第32行:pMaxPos = i第43行:pMinPos = 0第50行:pMinPos = i
B:第13行:maxPos第14行:minPos第25行:pMaxPos = 0第32行:pMaxPos = i第43行:pMinPos = 0第50行:pMinPos = i
C:第13行:maxPos第14行:minPos第25行:pMaxPos = 0第32行:pMaxPos = i第43行:pMinPos = 0第50行:pMinPos = i
D:第13行:&maxPos第14行:&minPos第25行:pMaxPos = 0第32行:pMaxPos = i第43行:pMinPos = 0第50行:pMinPos = i
答案: 【第13行:&maxPos第14行:&minPos第25行:pMaxPos = 0第32行:pMaxPos = i第43行:pMinPos = 0第50行:pMinPos = i

第1章——初识C语言从认识变量和常量开始 第1章测验

1、 问题:下列选项中,合法的C语言标识符是
选项:
A:_a1
B:width.x
C:#abc123
D:123abc
E:o*k
F:a?
G:a+b
H:%a
I:b!
答案: 【_a1

2、 问题:以下不适合定义为用户标识符的是
选项:
A:int
B:a2
C:def2
D:3com
E:PI
F:Source
G:abc
答案: 【int

3、 问题:#include
选项:
A:编译预处理指令
B:语句
C:函数
D:什么都不是
E:有语法错误
答案: 【编译预处理指令

4、 问题:在windows下,程序编译链接后形成的可执行文件是
选项:
A:.obj文件
B:.exe文件
C:.o文件
D:.c文件
E:.h文件
答案: 【.exe文件

5、 问题:程序编译链接后显示” 0 error,0 warning” 代表
选项:
A:程序中没有语法错误
B:程序是正确的
C:程序是不正确的
D:程序中可能存在语法错误
E:程序中有语义错误
答案: 【程序中没有语法错误

6、 问题:用8位无符号二进制数能表示的最大十进制数为
选项:
A:255
B:127
C:128
D:256
答案: 【255

7、 问题:关于可执行文件说法正确的是
选项:
A:可执行文件是编译链接后生成的文件
B:可执行文件就是源代码文件
C:可执行文件后缀为.obj
D:可执行文件就是main.c文件
答案: 【可执行文件是编译链接后生成的文件

8、 问题:若变量a是int类型,并执行了语句:a=’A’+1.6;,则正确的叙述是
选项:
A:’A’+1.6的结果是浮点型
B:a的值还是整型
C:a的值是字符C
D:a的值是浮点型
E:不允许字符型和浮点型相加
答案: 【‘A’+1.6的结果是浮点型;
a的值还是整型

9、 问题:C语言用sizeof计算变量在内存中的字节数,其中sizeof是()
选项:
A:运算符
B:一元运算符
C:只需要一个操作数的运算符
D:函数
E:语句
F:标识符
G:变量
答案: 【运算符;
一元运算符;
只需要一个操作数的运算符

10、 问题:以下不属于Codeblocks中用于调试程序的工具是
选项:
A:run
B:build
C:run to cursor
D:next line
E:stop debugger
F:watches
答案: 【run;
build

11、 问题:程序的开发步骤中不包括
选项:
A:撰写文档
B:运行程序
C:编译链接
D:程序测试
E:编辑(编写代码)
答案: 【撰写文档

12、 问题:下列说法中错误的是()
选项:
A:尾数决定了实数的表数范围,阶码决定了实数的表数精度。
B:内存是按位编址的。
C:有符号和无符号整数的表数范围是相同的。
D:int型在所有的计算机上都占4个字节的存储单元。
E:编译器按变量定义的类型对不同类型的变量分配不同大小的内存空间。
F:内存是按字节编址的。
G:对于同样的尾数,阶码的值越大,则浮点数所表示的数值的绝对值就越大。
H:sizeof是编译时执行的运算符,不会导致额外的运行时间开销。
答案: 【尾数决定了实数的表数范围,阶码决定了实数的表数精度。;
内存是按位编址的。;
有符号和无符号整数的表数范围是相同的。;
int型在所有的计算机上都占4个字节的存储单元。

13、 问题:若有定义:int a=8,b=5,c; ,执行语句c=a/b+0.4;后,c的值为
选项:
A:1
B:1.4
C:2.0
D:2
答案: 【1

14、 问题:在C语言中,字符型数据在内存中以字符的( )形式存放
选项:
A:ASCII码
B:国标码
C:BCD码
D:反码
答案: 【ASCII码

15、 问题:以下符合C语言语法的实型常量是
选项:
A:5e-3
B:3.14.159e
C:1.2e0.5
D:e15
答案: 【5e-3

16、 问题:以下选项中可作为C语言合法整数的是
选项:
A:0xffa
B:10110B
C:038x
D:x2a2
答案: 【0xffa

17、 问题:下列说法正确的是
选项:
A:在C语言中,变量必须先定义后使用。
B:一条变量定义语句可定义多个同类型的变量。
C:C89规定所有变量必须在第一条可执行语句前定义。
D:const常量只能在定义时赋值。
E:实型常量的默认类型是double类型。
F:一条变量定义语句不可以同时定义多个变量。
G:不同类型的变量分配的存储空间大小都是相同的。
H:在C语言中,所有变量都必须在定义时进行初始化。
I:变量在没有初始化的时候,其值都是0
J:宏常量有数据类型,编译器在宏替换时可以进行类型检查。
答案: 【在C语言中,变量必须先定义后使用。;
一条变量定义语句可定义多个同类型的变量。;
C89规定所有变量必须在第一条可执行语句前定义。;
const常量只能在定义时赋值。;
实型常量的默认类型是double类型。

18、 问题:下列变量定义中合法的是
选项:
A:long ao=0xfdaL;
B:short _a=1-.1e-1;
C:double b=1+5e2.5;
D:float 2_and=1-e-3;
答案: 【long ao=0xfdaL;

第1章——初识C语言从认识变量和常量开始 练兵区——单选题——不计入总分

1、 问题:下列选项中,合法的C语言标识符是
选项:
A:_a1
B:width
C:#abc123
D:123abc
E:o*k
F:a?
G:a+b
H:%a
I:b!
答案: 【_a1;
width

2、 问题:以下不适合定义为用户标识符的是
选项:
A:float
B:main
C:define
D:3com
E:PI
F:Source
G:abc
答案: 【float ;
main;
define

3、 问题:#include
选项:
A:编译预处理指令
B:语句
C:函数
D:什么都不是
E:有语法错误
答案: 【编译预处理指令

4、 问题:在windows下,程序编译链接后形成的可执行文件是
选项:
A:.obj文件
B:.exe文件
C:.o文件
D:.c文件
E:.h文件
答案: 【.exe文件

5、 问题:程序编译链接后显示” 0 error,0 warning” 代表
选项:
A:程序中没有语法错误
B:程序是正确的
C:程序是不正确的
D:程序中可能存在语法错误
E:程序中有语义错误
答案: 【程序中没有语法错误

6、 问题:用8位无符号二进制数能表示的最大十进制数为
选项:
A:255
B:127
C:128
D:256
答案: 【255

7、 问题:关于可执行文件说法正确的是
选项:
A:可执行文件是编译链接后生成的文件
B:可执行文件就是源代码文件
C:可执行文件后缀为.obj
D:可执行文件就是main.c文件
答案: 【可执行文件是编译链接后生成的文件

8、 问题:若变量a是int类型,并执行了语句:a=’A’+1.6;,则正确的叙述是
选项:
A:’A’+1.6的结果是浮点型
B:a的值还是整型
C:a的值是字符C
D:a的值是浮点型
E:不允许字符型和浮点型相加
答案: 【‘A’+1.6的结果是浮点型;
a的值还是整型

9、 问题:C语言用sizeof计算变量在内存中的字节数,其中sizeof是()
选项:
A:运算符
B:一元运算符
C:只需要一个操作数的运算符
D:函数
E:语句
F:标识符
G:变量
答案: 【运算符;
一元运算符;
只需要一个操作数的运算符

10、 问题:以下不属于Codeblocks中用于调试程序的工具是
选项:
A:run
B:build
C:run to cursor
D:next line
E:stop debugger
F:watches
答案: 【run;
build

11、 问题:程序的开发步骤中不包括
选项:
A:撰写文档
B:运行程序
C:编译链接
D:程序测试
E:编辑(编写代码)
答案: 【撰写文档

12、 问题:下列说法中错误的是()
选项:
A:尾数决定了实数的表数范围,阶码决定了实数的表数精度。
B:内存是按位编址的。
C:有符号和无符号整数的表数范围是相同的。
D:int型在所有的计算机上都占4个字节的存储单元。
E:编译器按变量定义的类型对不同类型的变量分配不同大小的内存空间。
F:内存是按字节编址的。
G:对于同样的尾数,阶码的值越大,则浮点数所表示的数值的绝对值就越大。
H:sizeof是编译时执行的运算符,不会导致额外的运行时间开销。
答案: 【尾数决定了实数的表数范围,阶码决定了实数的表数精度。;
内存是按位编址的。;
有符号和无符号整数的表数范围是相同的。;
int型在所有的计算机上都占4个字节的存储单元。

13、 问题:若有定义:int a=8,b=5,c; ,执行语句c=a/b+0.4;后,c的值为
选项:
A:1
B:1.4
C:2.0
D:2
答案: 【1

14、 问题:在C语言中,字符型数据在内存中以字符的( )形式存放
选项:
A:ASCII码
B:国标码
C:BCD码
D:反码
答案: 【ASCII码

15、 问题:以下符合C语言语法的实型常量是
选项:
A:5e-3
B:3.14.159e
C:1.2e0.5
D:e15
答案: 【5e-3

16、 问题:以下选项中可作为C语言合法整数的是
选项:
A:0xffa
B:10110B
C:038x
D:x2a2
答案: 【0xffa

17、 问题:下列说法正确的是
选项:
A:在C语言中,变量必须先定义后使用。
B:一条变量定义语句可定义多个同类型的变量。
C:C89规定所有变量必须在第一条可执行语句前定义。
D:const常量只能在定义时赋值。
E:实型常量的默认类型是double类型。
F:一条变量定义语句不可以同时定义多个变量。
G:不同类型的变量分配的存储空间大小都是相同的。
H:在C语言中,所有变量都必须在定义时进行初始化。
I:变量在没有初始化的时候,其值都是0
J:宏常量有数据类型,编译器在宏替换时可以进行类型检查。
答案: 【在C语言中,变量必须先定义后使用。;
一条变量定义语句可定义多个同类型的变量。;
C89规定所有变量必须在第一条可执行语句前定义。;
const常量只能在定义时赋值。;
实型常量的默认类型是double类型。

18、 问题:下列变量定义中合法的是
选项:
A:long ao=0xfdaL;
B:short _a=1-.1e-1;
C:double b=1+5e2.5;
D:float 2_and=1-e-3;
答案: 【long ao=0xfdaL;

第2章——数字间的那些事儿,做点计算哈 第2章测验

1、 问题:下列程序的输出结果是#include
int main()
{
int a=7,b=5;
printf(“%d”,b/a);
return 0;
}
选项:
A:0
B:5
C:1
D:0.7
答案: 【0

2、 问题:下列关于单目运算符++、–的叙述中正确的是
选项:
A:a++的运算过程是:先使用变量a的值,然后再执行a=a+1。
B:++a的运算过程是:先使用变量a的值,然后再执行a=a+1。
C:a++的运算过程是:先执行a=a+1,然后再使用变量a的值。
D:a++和++a都是最终使变量a执行a=a+1,因此对于包含a++或++a的表达式而言(如j=a++;或者j=++a;),两种情况下表达式的最终运算结果一定是相同的。
答案: 【a++的运算过程是:先使用变量a的值,然后再执行a=a+1。

3、 问题:以下程序的输出结果是:#include
int main()
{
int a=1, b=2;
a=a+b;
b=a-b;
a=a-b;
printf(“%d,%d”, a, b );
return 0;
}
选项:
A:2,1
B:3,1
C:3,2
D:1,2
答案: 【2,1

4、 问题:程序运行后的输出结果是#include
int main()
{
int m=3,n=4,x;
x=m++;
++n;
x=x+8/n;
printf(“%d,%d”,x,m);
return 0;
}
选项:
A:4,4
B:4,3
C:5,4
D:5,3
答案: 【4,4

5、 问题:下面程序的运行结果是#include
int main()
{
int a = 2, b = 3 ;
float x = 3.5, y = 2.5 ;
printf(“%f”, (float)(a+b) / 2 + (int)x % (int)y) ;
return 0;
}
选项:
A:3.500000
B:3.000000
C:3.5
D:3
答案: 【3.500000

6、 问题:以下非法的赋值语句是
选项:
A:++(i+1);
B:x=(j–);
C:n=++i;
D:j++;
答案: 【++(i+1);

7、 问题:设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是
选项:
A:6.000000
B: 6.500000
C:6
D:5.500000
答案: 【6.000000

8、 问题: 以下程序的运行结果是#include
int main()
{
int a = 12, b = 3;
float x = 18.5, y = 4.5;
printf(“%f”, (float)(a * b) / 2);
printf(“%d”, (int)x %(int)y);
return 0;
}
选项:
A:18.0000002
B:182
C:182.000000
D:18.0000002.000000
答案: 【18.0000002

9、 问题:设有语句“int a = 3;”,执行语句“a += a -= a * a;”后,变量a的值是
选项:
A:-12
B:3
C:0
D:9
答案: 【-12

10、 问题:在C语言中,要求操作数必须是整型的运算符是
选项:
A:%
B:/
C:*
D:+
E:-
答案: 【%

11、 问题:程序运行后的输出结果是#include
int main()
{
char a=’a’;
printf(“%c,”,++a);
printf(“%c”,a++);
return 0;
}
选项:
A: b,b
B:b,c
C:a,b
D:a,c
答案: 【 b,b

12、 问题:下面哪条语句可以生成0-9之间的随机数
选项:
A:magic=rand()%10;
B:magic=rand()%10+1;
C:magic=rand()/10;
D:magic=rand()/10+1;
答案: 【magic=rand()%10;

13、 问题:在下面的C语言语句中,存在错误的是
选项:
A:int a=b=10;
B:int a=10,b=10;
C:int a,b;a=b=10;
D:int a,b;a=10;b=10;
答案: 【int a=b=10;

14、 问题:若以下选项中的变量已正确定义,则正确的赋值语句是
选项:
A:x3=x2=x1=0;
B:x1=26.8%3;
C:1+2=x2;
D:x4=1+2=3;
答案: 【x3=x2=x1=0;

15、 问题:若有以下定义,则表达式“a * b + d – c”的值的类型为#include
int main()
{
char a;
int b;
float c;
double d;
….
return 0;
}
选项:
A:double
B:int
C:float
D:char
答案: 【double

16、 问题:在C程序中如果要使用数学函数,如sin(x),log(x)等,需要在程序中加入的语句是
选项:
A:#include B:#include
C:#define D:#define
答案: 【#include

17、 问题:十进制3位数整数x,下面哪条语句能正确分离出它的十位上的数字d?
选项:
A:d=(x-(x/100)100)/10;
B:d=(x%100)/10;
C:d=(x/10)%10;
D:d=x%10;
E:d=(x-x%10)/10;
F:d=x%100;
答案: 【d=(x-(x/100)
100)/10;;
d=(x%100)/10;;
d=(x/10)%10;】

18、 问题:在C语言中对下面的语句而言,哪个说法是错误的?int a, b;
选项:
A:变量a和b中的值都是0
B:变量a和b中都没有数值
C:变量a和b中的值都是未知的随机数
D:a和b都是整型变量
E:变量a和b占用的内存空间的大小是相同的
答案: 【变量a和b中的值都是0;
变量a和b中都没有数值

19、 问题:已知int a,b;并且有a=5%3;以及b=5/3;,则a和b的值分别是( )。
选项:
A:2和1
B:0和1.67
C:3和1
D:5和1
E:0和1
F:3和1.67
G:5和1.67
答案: 【2和1

20、 问题:设有以下定义,则下面给出的语句中错误的是int a=0;
float b=1.25;
char c=’A’;

define d 2

选项:
A:d++;
B:(a+b)++;
C:(-a)++;
D:(a+1)++;
E:a++;
F:b++;
G:c++;
答案: 【d++;;
(a+b)++;;
(-a)++;;
(a+1)++;

第2章——数字间的那些事儿,做点计算哈 练兵区——单选题——不计入总分

1、 问题:设有语句“int a = 3;”,执行语句“a += a -= a * a;”后,变量a的值是
选项:
A:-12
B:3
C:0
D:9
答案: 【-12

2、 问题:在C程序中如果要使用数学函数,如sin(x),log(x)等,需要在程序中加入的语句是
选项:
A:#include B:#include
C:#define D:#define
答案: 【#include

3、 问题:设有以下定义,则下面给出的语句中错误的是int a=0;
float b=1.25;
char c=’A’;

define d 2

选项:
A:d++;
B:(a+b)++;
C:(-a)++;
D:(a+1)++;
E:a++;
F:b++;
G:c++;
答案: 【d++;;
(a+b)++;;
(-a)++;;
(a+1)++;

4、 问题:下列关于单目运算符++、–的叙述中正确的是
选项:
A:a++的运算过程是:先使用变量a的值,然后再执行a=a+1。
B:++a的运算过程是:先使用变量a的值,然后再执行a=a+1。
C:a++的运算过程是:先执行a=a+1,然后再使用变量a的值。
D:a++和++a都是最终使变量a执行a=a+1,因此对于包含a++或++a的表达式而言(如j=a++;或者j=++a;),两种情况下表达式的最终运算结果一定是相同的。
答案: 【a++的运算过程是:先使用变量a的值,然后再执行a=a+1。

5、 问题:以下程序的输出结果是:#include
int main()
{
int a=1, b=2;
a=a+b;
b=a-b;
a=a-b;
printf(“%d,%d”, a, b );
return 0;
}
选项:
A:2,1
B:3,1
C:3,2
D:1,2
答案: 【2,1

6、 问题:下面哪条语句可以生成0-9之间的随机数
选项:
A:magic=rand()%10;
B:magic=rand()%10+1;
C:magic=rand()/10;
D:magic=rand()/10+1;
答案: 【magic=rand()%10;

7、 问题:在下面的C语言语句中,存在错误的是
选项:
A:int a=b=10;
B:int a=10,b=10;
C:int a,b;a=b=10;
D:int a,b;a=10;b=10;
答案: 【int a=b=10;

8、 问题:若有以下定义,则表达式“a * b + d – c”的值的类型为#include
int main()
{
char a;
int b;
float c;
double d;
….
return 0;
}
选项:
A:double
B:int
C:float
D:char
答案: 【double

9、 问题:十进制3位数整数x,下面哪条语句能正确分离出它的十位上的数字d?
选项:
A:d=(x-(x/100)100)/10;
B:d=(x%100)/10;
C:d=(x/10)%10;
D:d=x%10;
E:d=(x-x%10)/10;
F:d=x%100;
答案: 【d=(x-(x/100)
100)/10;;
d=(x%100)/10;;
d=(x/10)%10;】

10、 问题:在C语言中对下面的语句而言,哪个说法是错误的?int a, b;
选项:
A:变量a和b中的值都是0
B:变量a和b中都没有数值
C:变量a和b中的值都是未知的随机数
D:a和b都是整型变量
E:变量a和b占用的内存空间的大小是相同的
答案: 【变量a和b中的值都是0;
变量a和b中都没有数值

11、 问题:下列程序的输出结果是#include
int main()
{
int a=7,b=5;
printf(“%d”,b/a);
return 0;
}
选项:
A:0
B:5
C:1
D:0.7
答案: 【0

12、 问题:程序运行后的输出结果是#include
int main()
{
int m=3,n=4,x;
x=m++;
++n;
x=x+8/n;
printf(“%d,%d”,x,m);
return 0;
}
选项:
A:4,4
B:4,3
C:5,4
D:5,3
答案: 【4,4

13、 问题:下面程序的运行结果是#include
int main()
{
int a = 2, b = 3 ;
float x = 3.5, y = 2.5 ;
printf(“%f”, (float)(a+b) / 2 + (int)x % (int)y) ;
return 0;
}
选项:
A:3.500000
B:3.000000
C:3.5
D:3
答案: 【3.500000

14、 问题:以下非法的赋值语句是
选项:
A:++(i+1);
B:x=(j–);
C:n=++i;
D:j++;
答案: 【++(i+1);

15、 问题:已知int a,b;并且有a=5%3;以及b=5/3;,则a和b的值分别是
选项:
A:2和1
B:0和1.67
C:3和1
D:5和1
E:0和1
F:3和1.67
G:5和1.67
答案: 【2和1

16、 问题:设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是
选项:
A:6.000000
B: 6.500000
C:6
D:5.500000
答案: 【6.000000

17、 问题:以下程序的运行结果是#include
int main()
{
int a = 12, b = 3;
float x = 18.5, y = 4.5;
printf(“%f”, (float)(a * b) / 2);
printf(“%d”, (int)x %(int)y);
return 0;
}
选项:
A:18.0000002
B:182
C:182.000000
D:18.0000002.000000
答案: 【18.0000002

18、 问题:在C语言中,要求操作数必须是整型的运算符是
选项:
A:%
B:/
C:*
D:+
E:-
答案: 【%

19、 问题:程序运行后的输出结果是#include
int main()
{
char a=’a’;
printf(“%c,”,++a);
printf(“%c”,a++);
return 0;
}
选项:
A:b,b
B:b,c
C:a,b
D:a,c
答案: 【b,b

20、 问题:若以下选项中的变量已正确定义,则正确的赋值语句是
选项:
A:x3=x2=x1=0;
B:x1=26.8%3;
C:1+2=x2;
D:x4=1+2=3;
答案: 【x3=x2=x1=0;

第3章——从键盘中来,到键盘中去,开始输入和输出啦 第3章测验

1、 问题:分析下列程序,写出程序运行结果#include
int main()
{
char c1 = ‘a’, c2 = ‘b’, c3 = ‘c’;
printf(“a%cb%cc%cabc”, c1, c2, c3);
return 0;
}
选项:
A:aabbccabc
B:acbcabc
C:aabcabc
D:acbbcabc
答案: 【aabbccabc

2、 问题:有如下语句,为使变量a的值为1,b的值为2,从键盘输入数据的正确形式是scanf(“a=%d,b=%d”,&a,&b);
选项:
A:a=1,b=2
B:1 2
C:1,2
D:a=1 b=2
答案: 【a=1,b=2

3、 问题:#include
int main()
{
int a,b,c,d;
scanf(“%c%c%d,%d”,&a,&b,&c,&d);
printf(“%c,%c,%c,%c”,a,b,c,d);
return 0;
}若运行以上程序时从键盘上输入:6565,66<回车>。则输出结果是
选项:
A:6,5,A,B
B:6,5,65,66
C:6,5,6,5
D:6,5,6,6
答案: 【6,5,A,B

4、 问题:给出程序的运行结果,程序运行时从键盘输入:54321<回车>#include
int main()
{
int a,b,s;
scanf(“%2d%2d”,&a,&b);
s=a/b;
printf(“s=%d”,s);
return 0;
}
选项:
A:1
B:1.6875
C:2
D:0
答案: 【1

5、 问题:以下程序的输出结果为#include
int main()
{
float a = 1234.567,b = 55.32;
printf(“a = %4.2f, b = %5.1f”, a,b);
return 0;
}
选项:
A:a = 1234.57, b = 55.3
B:a =1234, b =55
C:a = 1234.6, b = 5.32
D:a =1234.567, b = 55.32
答案: 【a = 1234.57, b = 55.3

6、 问题:以下程序的输出结果为#include
int main()
{
int a=2, c=5;
printf(“a = %%d, b = %%d”, a, c);
return 0;
}
选项:
A:a = %d, b = %d
B:a = %2, b = %5
C:a = 2, b = 5
D:a = %%d, b = %%d
答案: 【a = %d, b = %d

7、 问题:有以下程序,运行时若输入为B,则输出是#include
int main()
{
char ch;
ch=getchar();
ch=ch+32;
printf(“%c”,ch);
return 0;
}
选项:
A:b
B:98
C:32
D:66
答案: 【b

8、 问题:在调用printf函数输出数据时,当数据的实际位宽小于printf函数中的指定位宽时,下面叙述正确的是
选项:
A:如果格式字符前面没有负号,那么输出的数据将会右对齐、左补空格;如果格式字符前面有负号,那么输出的数据将会左对齐、右补空格。
B:如果格式字符前面没有负号,那么输出的数据将会左对齐、右补空格;如果格式字符前面有负号,那么输出的数据将会右对齐、左补空格。
C:如果格式字符前面没有负号,那么输出的数据将会右对齐、左补0;如果格式字符前面有负号,那么输出的数据将会左对齐、右补0。
D:如果格式字符前面没有负号,那么输出的数据将会左对齐、右补0;如果格式字符前面有负号,那么输出的数据将会右对齐、左补0。
答案: 【如果格式字符前面没有负号,那么输出的数据将会右对齐、左补空格;如果格式字符前面有负号,那么输出的数据将会左对齐、右补空格。

9、 问题:设有语句“char c=’\72′;”,则变量c
选项:
A:包含1个字符
B:包含2个字符
C:包含3个字符
D:不合法
答案: 【包含1个字符

10、 问题:在下列语句中存在错误的是
选项:
A:int a,b;scanf(“%d %f”,&a,&b);
B:int a,b;scanf(“%d %d”,a,b);
C:int a,b;scanf(“%d%d”,&a,&b);printf(“%d %d”,a,b);
D:float a,b;scanf(“%3.2f %4.2f”,&a,&b);printf(“%f %f”,a,b);
E:float a,b;scanf(“%f %f”,&a,&b);printf(“%f %f”,a,b);
F:float a,b;scanf(“%f %f”,&a,&b);printf(“a=%4.3f,b=%4.3f”,a,b);
G:int a,b;scanf(“%2d%2d”,&a,&b);printf(“a=%d,b=%d”,a,b);
H:int a,b;scanf(“%d,%d”,&a,&b);printf(“a=%2d,b=%2d”,a,b);
I:int a,b;scanf(“a=%d,b=%d”,&a,&b);printf(“a=%d,b=%d”,a,b);
答案: 【int a,b;scanf(“%d %f”,&a,&b);;
int a,b;scanf(“%d %d”,a,b);;
int a,b;scanf(“%d%d”,&a,&b);printf(“%d %d”,a,b);;
float a,b;scanf(“%3.2f %4.2f”,&a,&b);printf(“%f %f”,a,b);

11、 问题:程序运行后的输出结果是#include
int main()
{
int a=666,b=888;
printf(“%d”,a,b);
return 0;
}
选项:
A:666
B:错误信息
C:888
D:666,888
答案: 【666

12、 问题:有以下语句段#include
int main()
{
int n1=10,n2=20;
printf(“___”,n1,n2);
return 0;
}要求按以下格式输出n1和n2的值,每个输出行都是从第一列开始,则空白处代码填写正确的是运行结果示例如下:n1=10n2=20
选项:
A:n1=%dn2=%d
B:n1=%dn2=%d
C:n1=%d,n2=%d
D:n1=%d n2=%d
答案: 【n1=%dn2=%d

13、 问题:以下选项中合法的字符常量是
选项:
A: ‘\010’
B:”B”
C:68
D:D
答案: 【 ‘\010’

14、 问题:写出下面程序的输出结果#include
int main()
{
int x=6,y,z;
x*=18+1;
printf(“%d,”,x–);
x+=y=z=11;
printf(“%d”,x);
return 0;
}
选项:
A:114,124
B:113,124
C:109,116
D:110,116
答案: 【114,124

15、 问题:给出程序的运行结果,程序运行时从键盘输入:45-12<回车>#include
int main()
{
int a,b,sum;
scanf(“%d%*c%d”,&a,&b);
sum=a+b;
printf(“sum=%d”,sum);
return 0;
}
选项:
A:57
B:输出报错
C:33
D:输出一个随机数
答案: 【57

16、 问题:给出程序的运行结果#include
int main()
{
int a,b,s;
char op;
scanf(“%d %c%d”,&a,&op,&b);
s=a%b;
printf(“s=%d”,s);
return 0;
}程序运行时从键盘输入:15<回车>%5<回车>
选项:
A:0
B:程序报错
C:输出一个随机数
D:3
答案: 【0

17、 问题:给出程序的运行结果#include
int main()
{
int a,b,c,d;
char op1,op2,op3;
int sum;
printf(“please input:a+b+c+d”);
scanf(“%d%c%d%c%d%c%d”,&a,&op1,&b,&op2,&c,&op3,&d);
sum=a+b+c+d;
printf(“sum=%d”,sum);
return 0;
}程序运行时从键盘输入:1<回车>2+3+1<回车>
选项:
A:7
B:1
C:3
D:6
答案: 【7

18、 问题:在C语言中,字符型数据在内存中以( )形式存放
选项:
A:ASCII码
B:国标码
C:BCD码
D:反码
答案: 【ASCII码

19、 问题:以下程序的执行结果是#include
int main()
{
int a = 5, b = 4, x, y;
x = 2 * a++;
y = –b * 2;
printf(“a=%d, x=%d”, a, x);
printf(“b=%d, y=%d”, b, y);
return 0;
}
选项:
A:a=6, x=10b=3, y=6
B:a=6, x=10b=3, y=8
C:a=6, x=12b=3, y=6
D:以上均不对
答案: 【a=6, x=10b=3, y=6

20、 问题:以下程序运行后的输出结果是#include
int main()
{
int a;
int c=10;
float f=100.0;
double x;
a=f/=c*=(x=6.5);
printf(“%d,%d,%3.1f,%3.1f”,a,c,f,x);
return 0;
}
选项:
A:1,65,1.5,6.5
B:1,65,1,6.5
C:1,65,1.0,6.5
D: 2,65,1.5,6.5
答案: 【1,65,1.5,6.5

21、 问题:给出程序的运行结果#include
int main()
{
char a,b;
int s;
printf(“please input a and b:”);
a=getchar();
b=getchar();
s=a+b;
printf(“a=%c,b=%c”,a,b);
return 0;
}程序运行时从键盘输入:1<空格>2<回车>
选项:
A:a=1,b=
B:a=1,b=2
C:a= ,b=2
D:输出乱码
答案: 【a=1,b=

22、 问题:以下程序的输出结果是#include
int main()
{
int a=1234;
printf(“%2d”,a);
return 0;
}
选项:
A:1234
B:12
C:34
D:提示出错、无结果
答案: 【1234

第3章——从键盘中来,到键盘中去,开始输入和输出啦 练兵区——单选题——不计入总分

1、 问题:以下程序的输出结果为#include
int main()
{
float a = 1234.567,b = 55.32;
printf(“a = %4.2f, b = %5.1f”, a,b);
return 0;
}
选项:
A:a = 1234.57, b = 55.3
B:a =1234, b =55
C:a = 1234.6, b = 5.32
D:a =1234.567, b = 55.32
答案: 【a = 1234.57, b = 55.3

2、 问题:以下选项中合法的字符常量是
选项:
A: ‘\010’
B:”B”
C:68
D:D
答案: 【 ‘\010’

3、 问题:给出程序的运行结果程序运行时从键盘输入:1<空格>2<回车>#include
int main()
{
char a,b;
int s;
printf(“please input a and b:”);
a=getchar();
b=getchar();
s=a+b;
printf(“a=%c,b=%c”,a,b);
return 0;
}
选项:
A:a=1,b=
B:a=1,b=2
C:a= ,b=2
D:输出乱码
答案: 【a=1,b=

4、 问题:有如下语句,为使变量a的值为1,b的值为2,从键盘输入数据的正确形式是scanf(“a=%d,b=%d”,&a,&b)
选项:
A:a=1,b=2
B:1 2
C:1,2
D:a=1 b=2
答案: 【a=1,b=2

5、 问题:#include
int main()
{
int a,b,c,d;
scanf(“%c%c%d,%d”,&a,&b,&c,&d);
printf(“%c,%c,%c,%c”,a,b,c,d);
return 0;
}若运行以上程序时从键盘上输入:6565,66<回车>。则输出结果是
选项:
A:6,5,A,B
B:6,5,65,66
C:6,5,6,5
D:6,5,6,6
答案: 【6,5,A,B

6、 问题:给出程序的运行结果,程序运行时从键盘输入:54321<回车>#include
int main()
{
int a,b,s;
scanf(“%2d%2d”,&a,&b);
s=a/b;
printf(“s=%d”,s);
return 0;
}
选项:
A:1
B:1.6875
C:2
D:0
答案: 【1

7、 问题:在调用printf函数输出数据时,当数据的实际位宽小于printf函数中的指定位宽时,下面叙述正确的是
选项:
A:如果格式字符前面没有负号,那么输出的数据将会右对齐、左补空格;如果格式字符前面有负号,那么输出的数据将会左对齐、右补空格。
B:如果格式字符前面没有负号,那么输出的数据将会左对齐、右补空格;如果格式字符前面有负号,那么输出的数据将会右对齐、左补空格。
C:如果格式字符前面没有负号,那么输出的数据将会右对齐、左补0;如果格式字符前面有负号,那么输出的数据将会左对齐、右补0。
D:如果格式字符前面没有负号,那么输出的数据将会左对齐、右补0;如果格式字符前面有负号,那么输出的数据将会右对齐、左补0。
答案: 【如果格式字符前面没有负号,那么输出的数据将会右对齐、左补空格;如果格式字符前面有负号,那么输出的数据将会左对齐、右补空格。

8、 问题:程序运行后的输出结果是#include
int main()
{
int a=666,b=888;
printf(“%d”,a,b);
return 0;
}
选项:
A:666
B:错误信息
C:888
D:666,888
答案: 【666

9、 问题:在C语言中,字符型数据在内存中以( )形式存放
选项:
A:ASCII码
B:国标码
C:BCD码
D:反码
答案: 【ASCII码

10、 问题:以下程序运行后的输出结果是#include
int main()
{
int a;
int c=10;
float f=100.0;
double x;
a=f/=c*=(x=6.5);
printf(“%d,%d,%3.1f,%3.1f”,a,c,f,x);
return 0;
}
选项:
A:1,65,1.5,6.5
B:1,65,1,6.5
C:1,65,1.0,6.5
D: 2,65,1.5,6.5
答案: 【1,65,1.5,6.5

11、 问题:以下程序的输出结果是#include
int main()
{
int a=1234;
printf(“%2d”,a);
return 0;
}
选项:
A:1234
B:12
C:34
D:提示出错、无结果
答案: 【1234

12、 问题:设有语句“char c=’\72′;”,则变量c
选项:
A:包含1个字符
B:包含2个字符
C:包含3个字符
D:不合法
答案: 【包含1个字符

13、 问题:有以下语句段#include
int main()
{
int n1=10,n2=20;
printf(“___”,n1,n2);
return 0;
}要求按以下格式输出n1和n2的值,每个输出行都是从第一列开始,则空白处代码填写正确的是运行结果示例如下:n1=10n2=20
选项:
A:n1=%dn2=%d
B:n1=%dn2=%d
C:n1=%d,n2=%d
D:n1=%d n2=%d
答案: 【n1=%dn2=%d

14、 问题:给出程序的运行结果,程序运行时从键盘输入:45-12<回车>#include
int main()
{
int a,b,sum;
scanf(“%d%*c%d”,&a,&b);
sum=a+b;
printf(“sum=%d”,sum);
return 0;
}
选项:
A:57
B:输出报错
C:33
D:输出一个随机数
答案: 【57

15、 问题:给出程序的运行结果#include
int main()
{
int a,b,s;
char op;
scanf(“%d %c%d”,&a,&op,&b);
s=a%b;
printf(“s=%d”,s);
return 0;
}程序运行时从键盘输入:15<回车>%5<回车>
选项:
A:0
B:程序报错
C:输出一个随机数
D:3
答案: 【0

16、 问题:分析下列程序,写出程序运行结果#include
int main()
{
char c1 = ‘a’, c2 = ‘b’, c3 = ‘c’;
printf(“a%cb%cc%cabc”, c1, c2, c3);
return 0;
}
选项:
A:aabbccabc
B:acbcabc
C:aabcabc
D:acbbcabc
答案: 【aabbccabc

17、 问题:以下程序的输出结果为#include
int main()
{
int a=2, c=5;
printf(“a = %%d, b = %%d”, a, c);
return 0;
}
选项:
A:a = %d, b = %d
B:a = %2, b = %5
C:a = 2, b = 5
D:a = %%d, b = %%d
答案: 【a = %d, b = %d

18、 问题:有以下程序,运行时若输入为B,则输出是#include
int main()
{
char ch;
ch=getchar();
ch=ch+32;
printf(“%c”,ch);
return 0;
}
选项:
A:b
B:98
C:32
D:66
答案: 【b

19、 问题:在下列语句中存在错误的是
选项:
A:int a,b;scanf(“%d %f”,&a,&b);
B:int a,b;scanf(“%d %d”,a,b);
C:int a,b;scanf(“%d%d”,&a,&b);printf(“%d %d”,a,b);
D:float a,b;scanf(“%3.2f %4.2f”,&a,&b);printf(“%f %f”,a,b);
E:float a,b;scanf(“%f %f”,&a,&b);printf(“%f %f”,a,b);
F:float a,b;scanf(“%f %f”,&a,&b);printf(“a=%4.3f,b=%4.3f”,a,b);
G:int a,b;scanf(“%2d%2d”,&a,&b);printf(“a=%d,b=%d”,a,b);
H:int a,b;scanf(“%d,%d”,&a,&b);printf(“a=%2d,b=%2d”,a,b);
I:int a,b;scanf(“a=%d,b=%d”,&a,&b);printf(“a=%d,b=%d”,a,b);
答案: 【int a,b;scanf(“%d %f”,&a,&b);;
int a,b;scanf(“%d %d”,a,b);;
int a,b;scanf(“%d%d”,&a,&b);printf(“%d %d”,a,b);;
float a,b;scanf(“%3.2f %4.2f”,&a,&b);printf(“%f %f”,a,b);

20、 问题:写出下面程序的输出结果#include
int main()
{
int x=6,y,z;
x*=18+1;
printf(“%d,”,x–);
x+=y=z=11;
printf(“%d”,x);
return 0;
}
选项:
A:114,124
B:113,124
C:109,116
D:110,116
答案: 【114,124

21、 问题:给出程序的运行结果#include
int main()
{
int a,b,c,d;
char op1,op2,op3;
int sum;
printf(“please input:a+b+c+d”);
scanf(“%d%c%d%c%d%c%d”,&a,&op1,&b,&op2,&c,&op3,&d);
sum=a+b+c+d;
printf(“sum=%d”,sum);
return 0;
}程序运行时从键盘输入:1<回车>2+3+1<回车>
选项:
A:7
B:1
C:3
D:6
答案: 【7

22、 问题:以下程序的执行结果是#include
int main()
{
int a = 5, b = 4, x, y;
x = 2 * a++;
y = –b * 2;
printf(“a=%d, x=%d”, a, x);
printf(“b=%d, y=%d”, b, y);
return 0;
}
选项:
A:a=6, x=10b=3, y=6
B:a=6, x=10b=3, y=8
C:a=6, x=12b=3, y=6
D:以上均不对
答案: 【a=6, x=10b=3, y=6

第4章——无处不在的抉择 第4章测验

1、 问题:编程设计一个简单的计算器程序,要求用户从键盘输入如下形式的表达式: 操作数1 运算符op 操作数2然后,计算并输出表达式的值指定的运算符为: 加(+) 减(-) 乘() 除(/)代码如下,所给程序是否存在错误,若有,找出错误所在并改正。#include
int main()
{
float data1, data2;
char op;
printf(“Please enter the expression:”);
scanf(“%f %c%f”, &data1, &op, &data2); /
%c前有一个空格 /
switch (op)
{
case ‘+’:
printf(“%f + %f = %f”, data1, data2, data1 + data2);
break;
case ‘-‘:
printf(“%f – %f = %f”, data1, data2, data1 – data2);
break;
case ‘
‘:
printf(“%f * %f = %f”, data1, data2, data1 * data2);
break;
case ‘/’:
printf(“%f/%f = %f”, data1, data2,data1/data2);
break;
default:
printf(“Invalid operator!”);
}
return 0;
}
选项:
A:第20行语句有错误,改成:if (fabs(data2)<=EPS) printf(“Division by zero!”);else printf(“%f/%f = %f”, data1, data2, data1/data2);同时,第1行语句下方应加入#include #define EPS 1e-6
B:default分支缺少break语句
C:没有错误
D:第20行语句有错误,改成:if (data2=0) printf(“Division by zero!”);else printf(“%f/%f = %f”, data1, data2, data1/data2);
答案: 【第20行语句有错误,改成:if (fabs(data2)<=EPS) printf(“Division by zero!”);else printf(“%f/%f = %f”, data1, data2, data1/data2);同时,第1行语句下方应加入#include #define EPS 1e-6

2、 问题:下列复合语句中,不能实现两数交换的是
选项:
A:{
a=b;
b=a;
}
B:{
b = a * b;
a = b / a;
b = b / a;
}
C:{
t=a;
a=b;
b=t;
}
D:{
a = a + b;
b = a – b;
a = a – b;
}
答案: 【{
a=b;
b=a;
}

3、 问题:以下程序运行后的输出结果是#include
int main()
{
int a=5,b=4,c=3,d;
d=(a>b>c);
printf(“%d”,d);
return 0;
}
选项:
A:0
B:1
C:5
D:4
E:3
答案: 【0

4、 问题:程序功能:从键盘输入一个字符,判别它是否为大写字母。如果是,将它转换成小写字母,如果不是,不转换。在屏幕上输出最后得到的字符。程序代码如下,为实现上述功能,请将第8行标号处缺少的语句填写完整。#include
int main()
{
char c;
printf(“Please input a character:”);
scanf(“%c”,&c);
if(c >=’A’&&c <= ‘Z’)
c =___;
printf(“%c”,c);
return 0;
}
选项:
A:c+32
B:c+48
C:C+65
D:C+97
答案: 【c+32

5、 问题:编程计算下面的分段函数,根据从键盘输入的x值,在屏幕上输出y值。 程序代码如下,为完成以上功能,请将第13行标号处缺少的代码填写完整。 #include

include

int main()
{
int x;
double y;
printf(“Input x: “);
scanf(“%d”, &x); // 输入一个整数
if (x > 0)
{
y = exp(-x); //如果大于0,计算y=exp(-x)的值
}
_______
{
y = 1; //x=0,则y=1
}
else
{
y = -exp(x); //x<0,则y=-exp(x)
}
printf(“y=%f”, y);
return 0;
}
选项:
A:else if (x == 0)
B:else if (x = 0)
C:if (x == 0)
D:if (x = 0)
答案: 【else if (x == 0)

第4章——无处不在的抉择 练兵区——单选题——不计入总分

1、 问题:下面程序代码的功能是判断输入整数的正负性和奇偶性,请将第19行和22行标号处缺少的代码填写完整。#include
int main()
{
int m;
printf(“Input m: “);
scanf(“%d”, &m); //输入一个整数
if (m > 0) //是否为正数
{
if (m % 2 == 0) //是正数,且能被2整除,则是正偶数
{
printf(“%d is a positive even”, m);
}
else //不能被2整除,则是正奇数
{
printf(“%d is a positive odd”, m);
}
}

_______________          //判断是否为负数

{
    _______________

    {
         printf("%d is a negative even", m);   //是负偶数
    }
    else
    {
         printf("%d is a negative odd", m);    //是负奇数
    }
}
else
{
    printf("%d is zero.It is an even", m);    
}

return 0;
}
选项:
A:第19行代码: else if(m < 0)第22行代码: if (m % 2 == 0)
B:第19行代码: if(m < 0)第22行代码: if (m % 2 == 0)
C:第19行代码: else if(m < 0)第22行代码: if (m % 2 != 0)
D:第19行代码: if(m < 0)第22行代码: if (m % 2 != 0)
答案: 【第19行代码: else if(m < 0)第22行代码: if (m % 2 == 0)

2、 问题:执行以下程序后的输出结果为#include
int main()
{
int a=1,b=0;
switch (a)
{
case 1:
switch (b)
{
case 0: printf(“0“);break;
case 1: printf(“1“);break;
}
case 2: printf(“2“);break;
}
return 0;
}
选项:
A:0*2*
B:
0

C:0*1*2
D:有语法错误
答案: 【02

3、 问题:以下程序运行后的输出结果是#include
int main()
{
int a=1,b=2,m=0,n=0,k;
k=(n=b>a)||(m=a1,0】

4、 问题:以下程序运行后的输出结果是#include
int main()
{
int a,b,c;
a=10;
b=20;
c=(a%b<1)||(a/b>1);
printf(“%d,%d,%d”,a%b,a/b,c);
return 0;
}
选项:
A:10,0,0
B:10,1,0
C:10,0,1
D:10,1,1
答案: 【10,0,0

5、 问题:编程设计一个简单的计算器程序,要求用户从键盘输入如下形式的表达式: 操作数1 运算符op 操作数2然后,计算并输出表达式的值指定的运算符为: 加(+) 减(-) 乘() 除(/)代码如下,所给程序是否存在错误,若有,找出错误所在并改正。#include
int main()
{
float data1, data2;
char op;
printf(“Please enter the expression:”);
scanf(“%f %c%f”, &data1, &op, &data2); /
%c前有一个空格 /
switch (op)
{
case ‘+’:
printf(“%f + %f = %f”, data1, data2, data1 + data2);
break;
case ‘-‘:
printf(“%f – %f = %f”, data1, data2, data1 – data2);
break;
case ‘
‘:
printf(“%f * %f = %f”, data1, data2, data1 * data2);
break;
case ‘/’:
printf(“%f/%f = %f”, data1, data2,data1/data2);
break;
default:
printf(“Invalid operator!”);
}
return 0;
}
选项:
A:第20行语句有错误,改成:if (fabs(data2)<=EPS) printf(“Division by zero!”);else printf(“%f/%f = %f”, data1, data2, data1/data2);同时,第1行语句下方应加入#include #define EPS 1e-6
B:default分支缺少break语句
C:没有错误
D:第20行语句有错误,改成:if (data2=0) printf(“Division by zero!”);else printf(“%f/%f = %f”, data1, data2, data1/data2);
答案: 【第20行语句有错误,改成:if (fabs(data2)<=EPS) printf(“Division by zero!”);else printf(“%f/%f = %f”, data1, data2, data1/data2);同时,第1行语句下方应加入#include #define EPS 1e-6

6、 问题:下列复合语句中,不能实现两数交换的是
选项:
A:{
a=b;
b=a;
}
B:{
b = a * b;
a = b / a;
b = b / a;
}
C:{
t=a;
a=b;
b=t;
}
D:{
a = a + b;
b = a – b;
a = a – b;
}
答案: 【{
a=b;
b=a;
}

7、 问题:写出下面程序的输出结果#include
int main()
{
int x=1, y=0, a=0, b=0;
switch(x)
{
case 1:
switch(y)
{
case 0: a++;
case 1: b++;
}
case 2: a++;
b++;
}
printf(“a=%d, b=%d”, a, b) ;
return 0;
}
选项:
A:a=2, b=2
B:a=2, b=1
C:a=1, b=1
D:a=1, b=0
答案: 【a=2, b=2

8、 问题:执行下列程序,k输入为1时的输出结果是#include
int main()
{
int k;
scanf(“%d”,&k);
switch(k)
{
case 1: printf(“%d”,k++);
case 2: printf(“%d”,k++);
case 3: printf(“%d”,k++);
break;
default: printf(“Full!”);
}
return 0;
}
选项:
A:123
B:1
C:2
D:3
答案: 【123

9、 问题:编程计算下面的分段函数,根据从键盘输入的x值,在屏幕上输出y值。程序代码如下,为完成以上功能,请将第13行标号处缺少的代码填写完整。#include

include

int main()
{
int x;
double y;
printf(“Input x: “);
scanf(“%d”, &x); // 输入一个整数
if (x > 0)
{
y = exp(-x); //如果大于0,计算y=exp(-x)的值
}
_______
{
y = 1; //x=0,则y=1
}
else
{
y = -exp(x); //x<0,则y=-exp(x)
}
printf(“y=%f”, y);
return 0;
}
选项:
A:else if (x == 0)
B:else if (x = 0)
C:if (x == 0)
D:if (x = 0)
答案: 【else if (x == 0)

10、 问题:以下程序的功能是计算一元二次方程的根。代码如下,请将第10行标号处缺少的语句填写完整。#include

include

include

define EPS 1e-6

int main()
{
float a, b, c, disc, p, q;
printf(“Please enter the coefficients a,b,c:”);
scanf(“%f,%f,%f”, &a, &b, &c);
_________ / a=0时,输出”不是二次方程” /

 {
           printf("It is not a quadratic equation!");
           exit(0);  /* C标准库函数,用于终止整个程序的执行,强制返回操作系统 */
 }
  disc = b * b - 4 * a * c; /* 计算判别式 */
  p = - b / (2 * a);
  q = sqrt(fabs(disc)) / (2 * a);
  if (fabs(disc) <= EPS)    /* 判别式等于0时,输出两相等实根 */
  {
               printf("x1 = x2 = %.2f", p);
  }
 else                      
 { 
             if (disc > EPS)        /* 判别式大于0时,输出两不等实根 */
             {
                        printf("x1 = %.2f, x2 = %.2f", p+q, p-q);
             }
             else                     /* 判别式小于0时,输出两共轭复根 */
             {
                        printf("x1 = %.2f+%.2fi, ", p, q);
                        printf("x2 = %.2f-%.2fi", p, q);
             }
  }
 return 0;

}
选项:
A:if (fabs(a) <= EPS)
B:if (a <= EPS)
C:if (a=0)
D:if (a<= EPS || a>=-EPS)
答案: 【if (fabs(a) <= EPS)

11、 问题:从键盘输入三角形的三边长为a,b,c,按下面公式计算并输出三角形的面积。程序代码如下,但程序运行后输出结果不正确,请找出有问题的语句。#include

include

int main()
{
float a, b, c;
float s, area;
printf(“Input a,b,c:”);
scanf(“%f,%f,%f”,&a,&b,&c);
if (a+b>c && b+c>a && a+c>b)
{
s = 1/2 * (a + b + c);
area = sqrt(s * (s – a) * (s – b) * (s – c));
printf(“area=%.2f”, area);
}
else
{
printf(“It is not a triangle”);
}
return 0;
}
选项:
A:第11行: s = 1/2 * (a + b + c);
B:第9行: if (a+b>c && b+c>a && a+c>b)
C:第12行: area = sqrt(s * (s – a) * (s – b) * (s – c));
D:第8行: scanf(“%f,%f,%f”,&a,&b,&c);
答案: 【第11行: s = 1/2 * (a + b + c);

12、 问题:若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是
选项:
A:(x-y)<-10||!(y-x)>10
B: fabs(x-y)<10
C:x-y>-10 && x-y<10
D:(x-y)*(x-y)<100
答案: 【(x-y)<-10||!(y-x)>10

13、 问题:程序功能:从键盘输入一个字符,判别它是否为大写字母。如果是,将它转换成小写字母,如果不是,不转换。在屏幕上输出最后得到的字符。程序代码如下,为实现上述功能,请将第8行标号处缺少的语句填写完整。#include
int main()
{
char c;
printf(“Please input a character:”);
scanf(“%c”,&c);
if(c >=’A’&&c <= ‘Z’)
c =___;
printf(“%c”,c);
return 0;
}
选项:
A:c+32
B:c+48
C:c+65
D:c+97
答案: 【c+32

14、 问题:程序代码如下:#include
int main()
{
int a,b;
printf(“please input a and b:”);
scanf(“%d%d”,&a,&b);
printf(“the output data is %d”,a7<回车>则程序输出为
选项:
A:the output data is 7
B:the output data is 2
C:the output data is 1
D:the output data is 0
答案: 【the output data is 7

15、 问题:以下程序运行后的输出结果是#include
int main()
{
int a=5,b=4,c=3,d;
d=(a>b>c);
printf(“%d”,d);
return 0;
}
选项:
A:0
B:1
C:5
D:4
E:3
答案: 【0

16、 问题:下面程序运行后的输出结果是#include
int main()
{
int a=3,b=4,c=5,d=2;
if(a>b)
{
if(b>c)
{
printf(“%d”,d++ +1);
}
else
{
printf(“%d”,++d +1);
}
}
printf(“%d”,d);
return 0;
}
选项:
A:2
B:3
C:43
D:44
答案: 【2

17、 问题:下列说法错误的是()。
选项:
A:case后的“常量表达式”的类型只能是整型。
B:若case后面的语句省略不写,则表示它什么也不做。
C:switch语句中的break和default可有可无。
D:每个case后的“常量表达式”的类型应该与switch后括号内表达式的类型一致。
E:程序执行到switch语句时,先计算表达式的值,然后自上而下寻找与该值匹配的case常量,找到后则按顺序执行此case后的所有语句,而不再进行判断,直到遇break语句或右花括号}为止。
F:若所有的case常量都不能与表达式的值相匹配,那么就执行default后面的语句。通常用于处理不在合理区间内的非法数据。
G:每个case后的常量只起语句标号的作用,所以case常量的值必须互不相同,而且在每个case的语句序列后都有break的情况下,改变case常量出现的次序,不影响程序的运行结果。
H:case后面的表达式不能是含有变量的关系表达式和逻辑表达式,它不能像if语句那样起到判断表达式真假的作用。
答案: 【case后的“常量表达式”的类型只能是整型。;
若case后面的语句省略不写,则表示它什么也不做。;
switch语句中的break和default可有可无。

第5章——周而复始的循环之道 第5章测验

1、 问题:以下程序执行后的输出结果是#include
int main( )
{
int x=0,y=5,z=3;
while(z–>0 && ++x<5)
{
y=y-1;
}
printf(“%d,%d,%d”,x,y,z);
return 0;
}
选项:
A:3,2,-1
B:3,2,0
C:4,3,-1
D:5,-2,-5
答案: 【3,2,-1

2、 问题:以下程序的输出结果是#include
int main()
{
int a, b;
for(a=1, b=1; a<=100; a++)
{
if(b>=10) break;
if (b%3==1)
{
b+=3;
continue;
}
}
printf(“%d”,a);
return 0;
}
选项:
A:4
B:101
C:6
D:5
答案: 【4

3、 问题:我国古代的《张丘建算经》中有这样一道著名的百鸡问题:“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡翁、母、雏各几何?”其意为:公鸡每只5元,母鸡每只3元,小鸡3只1元。用100元买100只鸡,问公鸡、母鸡和小鸡各能买多少只?代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include
int main()
{
int x, y, z;
for (x=0; x<=20; x++)
{
for (y=0; ___; y++)
{
__;
if (__
)
{
printf(“x=%d, y=%d, z=%d”, x, y, z);
}
}
}

return 0;

}
选项:
A:第7行: y<=33第9行: z = 100 – x – y第10行: 5x + 3y + z/3.0 == 100
B:第7行: y<=33第9行: z + y + x = 100第10行: 5x + 3y + z/3.0 = 100
C:第7行: y<=33第9行: z = 100 – x – y第10行: 5x + 3y + z/3.0 == 100
D:第7行: y<33第9行: z = 100 – x – y第10行: 5x + 3y + z/3.0 <= 100
答案: 【第7行: y<=33第9行: z = 100 – x – y第10行: 5x + 3y + z/3.0 == 100

4、 问题:以下不是死循环的程序段是
选项:
A:int s=36;
while (s)
{
–s;
}
B:int i=100;
while(1)
{
i=i%100+1;
if (i>100) break;
}
C:for( ; ;);
D:unsigned int k=0;
do{
++k;
} while (k>=0);
答案: 【int s=36;
while (s)
{
–s;
}

5、 问题:以下程序的功能是计算:s= 1+1/2+1/3+……+1/10,程序运行后输出结果错误,导致错误结果的程序行是#include
int main()
{
int n;
float s;
s=1.0;
for(n=10;n>1;n–)
{
s=s+1/n;
}
printf(“%6.4f”,s);
return 0;
}
选项:
A:s=s+1/n;
B: printf(“%6.4f”,s);
C:for(n=10;n>1;n–)
D:s=1.0;
答案: 【s=s+1/n;

第5章——周而复始的循环之道 练兵区——单选题——不计入总分

1、 问题:程序运行后的输出结果是#include
int main()
{
int i;

    for(i=0;i<3;i++)

        switch(i)

            {

                case 0: printf("%d",i);

                case 2: printf("%d",i);

                default: printf("%d",i);

            }

    return 0;

}
选项:
A:000122
B:022111
C:021021
D:012
答案: 【000122

2、 问题:若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是
选项:
A:for( i=1; i<=5; i++ ){ p=1; p=i;}
B:for(i=1,p=1;i<=5;i++) p
=i;
C:i=1;
p=1;
while ( i<=5 )
{
p=i;
i++;
}
D:i=1;
p=1;
do {
p
=i;
i++;
} while ( i<=5 );
答案: 【for( i=1; i<=5; i++ ){ p=1; p*=i;}

3、 问题:下面程序的输出是#include
int main()
{
int y=9;
for( ; y>0; y–)
{
if(y%3==0)
{
printf(“%d”, –y);
continue;
}
}
return 0;
}
选项:
A:852
B:741
C:963
D:875421
答案: 【852

4、 问题:爱因斯坦数学题。爱因斯坦曾出过这样一道数学题:有一条长阶梯,若每步跨2阶,最后剩下1阶;若每步跨3阶,最后剩下2阶;若每步跨5阶,最后剩下4阶;若每步跨6阶,最后剩下5阶;只有每步跨7阶,最后才正好1阶不剩。请问,这条阶梯共有多少阶?代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include
int main()
{
int x = 1, find = 0;
while (_)
{
if (
_______)
{
printf(“x = %d”, x);
find = 1;
}
x++;
}

return 0;

}
选项:
A:第5行: !find第7行: x%2==1 && x%3==2 && x%5==4 && x%6==5 && x%7==0
B:第5行: find==1第7行: x%2==1 && x%3==2 && x%5==4 && x%6==5 && x%7==0
C:第5行: find!=1第7行: x/2==1 && x/3==2 && x/5==4 && x/6==5 && x/7==0
D:第5行: find!=0第7行: x%2==1 && x%3==2 && x%5==4 && x%6==5 && x%7==0
答案: 【第5行: !find第7行: x%2==1 && x%3==2 && x%5==4 && x%6==5 && x%7==0

5、 问题:鸡兔同笼,共有98个头,386只脚,编程求鸡、兔各多少只。代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include
int main()
{
int x, y;
for (x=1; _; x++)
{
__;
if (
____)
{
printf(“x = %d, y = %d”, x, y);
}
}

return 0;

}
选项:
A:第5行: x<=97第7行: y = 98 – x第8行: 2x+4y == 386
B:第5行: x<97第7行: x = 98 – y第8行: 2x+4y == 386
C:第5行: x<97第7行: y = 98 – x第8行: 2x+4y == 386
D:第5行: x<=97第7行: x = 98 – y第8行: 2x+4y <= 386
答案: 【第5行: x<=97第7行: y = 98 – x第8行: 2x+4y == 386

6、 问题:以下正确的描述是
选项:
A:只能在循环体内和switch语句体内使用break语句
B: continue语句的作用是结束整个循环的执行
C:在循环体内使用break语句或continue语句的作用相同
D:continue语句可以写在循环体之外
答案: 【只能在循环体内和switch语句体内使用break语句

7、 问题:华氏和摄氏温度的转换公式为C=5/9×(F-32)。式中,C表示摄氏温度,F表示华氏温度。要求:华氏0℉~300℉,每隔20℉输出一个华氏温度对应的摄氏温度值。代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include
int main()
{
int upper = 300, step = 20;
float fahr = 0, celsius;
while (fahr < upper)
{
__;
printf(“%4.0f\t%6.1f”, fahr, celsius);
_______ ;
}
return 0;
}
选项:
A:第8行代码: celsius = 5.0 / 9 * (fahr – 32)第10行代码: fahr = fahr + step
B:第8行代码: celsius = 5 / 9 * (fahr – 32)第10行代码: fahr = fahr + step
C:第8行代码: celsius = 5.0 / (9 * (fahr – 32))第10行代码: fahr = fahr + step
D:第8行代码: celsius = 5.0 / 9 * (fahr – 32)第10行代码: fahr = fahr – step
答案: 【第8行代码: celsius = 5.0 / 9 * (fahr – 32)第10行代码: fahr = fahr + step

8、 问题:利用泰勒级数:计算e的近似值,当最后一项的绝对值小于时认为达到了精度要求,要求统计总共累加了多少项。代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include

include

int main()
{
int n = 1, count = 1;
____;
double term = 1.0;
while (fabs(term) >= 1e-5) //判末项大小
{
__; //求出累加项
e = e + term; //累加
n++; // 计算下一项
___; //统计累加项数
}

   printf("e = %f, count = %d", e, count);
return 0;

}
选项:
A:第6行代码: double e = 1.0第10行代码: term = term / n第13行代码: count++
B:第6行代码: double e = 0第10行代码: term = term / n第13行代码: count++
C:第6行代码: double e = 1.0第10行代码: term = term n第13行代码: count++
D:第6行代码: double e = 0第10行代码: term = term
n第13行代码: count++
答案: 【第6行代码: double e = 1.0第10行代码: term = term / n第13行代码: count++

9、 问题:打印所有的“水仙花数”。所谓“水仙花数”,是指一个三位数,其各位数字的立方和等于该数本身。例如,153是“水仙花数”,因为代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include
int main()
{
int i, j, k, n;
printf(“result is:”);
for (n=100; _; n++)
{
i = n / 100; //分离出百位
j = __; //分离出十位
k =
_; //分离出个位
if (
___
)
{
printf(“%d\t “,n); //输出结果
}
}
printf(“”);
return 0;
}
选项:
A:第6行: n<1000第9行: (n – i * 100) / 10第10行:n % 10第11行:i100+j10+k == iii+jjj+kkk
B:第6行: n<1000第9行: (n – i * 100) / 10第10行:n % 10第11行:i100+j10+k = iii+jjj+kkk
C:第6行: n<=1000第9行: n % 100第10行:n % 10第11行:i100+j10+k == iii+jjj+kkk
D:第6行: n<1000第9行: (n – i * 100) / 10第10行:n /10第11行:i100+j10+k == iii+jjj+kkk
答案: 【第6行: n<1000第9行: (n – i * 100) / 10第10行:n % 10第11行:i100+j10+k == iii+jjj+kkk

10、 问题:以下程序执行后的输出结果是#include
int main( )
{
int i,n=0;
for(i=2;i<5;i++)
{
do
{
if(i%3) continue;
n++;
}while(!i);
n++;
}
printf(“n=%d”,n);
return 0;
}
选项:
A:n=4
B:n=5
C:n=2
D:n=3
答案: 【n=4

11、 问题:以下程序运行后的输出结果是#include
int main()
{
int i=0,s=0;
for (;;)
{
if(i==3||i==5) continue;
if (i==6) break;

剩余60%内容付费后可查看
   

发表评论

电子邮件地址不会被公开。 必填项已用*标注