软件(C语言)测试题

合集下载

c语言测试题目及答案

c语言测试题目及答案

c语言测试题目及答案一、选择题(每题2分,共20分)1. 下列哪个关键字不是C语言的控制语句?A. ifB. switchC. whileD. loop答案:D2. C语言中,一个整型变量int占用的字节数是多少?A. 1B. 2C. 4D. 8答案:C3. 在C语言中,以下哪个运算符用于计算两个数的乘方?A. *B. /C. ^D. %答案:C4. 下列哪个函数用于计算一个数的绝对值?A. abs()B. max()C. min()D. pow()答案:A5. 在C语言中,以下哪个是正确的字符串字面量?A. "Hello World"B. 'Hello World'C. {"Hello World"}D. ["Hello World"]答案:A6. 在C语言中,以下哪个是正确的数组声明?A. int array[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};B. int array[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};C. int array = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};D. int array[10] = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9;答案:B7. 在C语言中,以下哪个是正确的函数声明?A. void myFunction(int x, int y);B. int myFunction();C. void myFunction(int x, int y) {}D. int myFunction(int x, int y);答案:A8. 在C语言中,以下哪个是正确的递归函数调用?A. func(5);B. func(func(5));C. func(func(5, 3));D. func(5, 3);答案:B9. 下列哪个是C语言中合法的变量名?A. 2variableB. variable-nameC. variable#nameD. variable_name答案:D10. 在C语言中,以下哪个是正确的结构体声明?A. struct Person { int age; char name[50]; };B. struct { int age; char name[50]; };C. Person { int age; char name[50]; };D. Person struct { int age; char name[50]; };答案:A二、填空题(每空2分,共20分)1. C语言中,用于定义一个函数的关键字是________。

C语言测试题及答案

C语言测试题及答案

C语言测试题及答案C语言测试题及答案古今来许多世家,无非积德。

天地间第一人品,还是读书。

以下是店铺为大家搜索整理的C语言测试题及答案,希望能给大家带来帮助!C语言测试题及答案篇11.(A )是构成C语言程序的基本单位。

A、函数B、过程C、子程序D、子例程2.C语言程序从 C 开始执行。

A、程序中第一条可执行语句B、程序中第一个函数C、程序中的main函数D、包含文件中的第一个函数3、以下说法中正确的是( C )。

A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main( )函数中定义C、C语言程序总是从main( )函数开始执行D、C语言程序中的main( )函数必须放在程序的开始部分4.下列关于C语言的说法错误的是( B ) 。

A、 C程序的工作过程是编辑、编译、连接、运行B、 C语言不区分大小写。

C、 C程序的三种基本结构是顺序、选择、循环D、C程序从main函数开始执行5.下列正确的标识符是(C )。

A、-a1B、a[i]C、a2_iD、int t5~8题为相同类型题考点:标识符的命名规则只能由字母、数字、下划线构成数字不能作为标识符的开头关键字不能作为标识符选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是(B )。

A、3axB、xC、caseD、-e2 E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);7.下列四组选项中,正确的C语言标识符是( C )。

A、 %xB、a+bC、a123D、123选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是( A)。

A、print _3d db8 aBcB、Iam one_half start$it 3paiC、str_1 Cpp pow whileD、Pxq My->book line# His.age选项B中的“”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3)9.C语言中的简单数据类型包括(D )。

13真题与答案 202403青少年软件编程(C语言)等级考试试卷(三级)

13真题与答案   202403青少年软件编程(C语言)等级考试试卷(三级)

202403青少年软件编程(C语言)等级考试试卷(三级)分数:100分题数:51. 我家的门牌号我家住在一条短胡同里,这条胡同的门牌号从 1 开始顺序编号。

若所有的门牌号之和减去我家门牌号的两倍,恰好等于 n,求我家的门牌号及总共有多少家。

数据保证有唯一解。

时间限制:1000内存限制:65536输入一个正整数 n。

n < 100000。

输出一行,包含两个正整数,分别是我家的门牌号及总共有多少家,中间用单个空格隔开。

样例输入100样例输出10 15参考代码:#include <stdio.h>int main() {int n;scanf("%d", &n);int x, y;for (x = 1; x < n; x++) {for (y = x + 1; y < n; y++) {int sum = y * (y + 1) / 2 - x * 2;if (sum == n) {printf("%d %d\n", x, y);return 0;}}}return 0;}2. 最接近的分数分母不超过 N 且小于 A/B 的最大最简分数是多少?时间限制:10000内存限制:65536输入三个正整数 N,A,B,相邻两个数之间用单个空格隔开。

1 <= A < B <N <= 1000。

输出两个正整数,分别是所求分数的分子和分母,中间用单个空格隔开。

样例输入100 7 13样例输出50 93参考代码:#include <stdio.h>int gcd(int a, int b) {return b == 0? a : gcd(b, a % b);}int main() {int N, A, B;scanf("%d %d %d", &N, &A, &B);int numerator = 0, denominator = 1;for (int i = 2; i <= N; i++) {for (int j = 1; j < i; j++) {if ((double)j / i < (double)A / B && ((double)numerator / denominator < (double)j / i || (double)A / B - (double)j / i < (double)A / B - (double)numerator / denominator)) {numerator = j;denominator = i;}}}printf("%d %d\n", numerator, denominator);return 0;}3.菲波那契数列菲波那契数列是指这样的数列: 数列的第一个和第二个数都为 1,接下来每个数都等于前面 2 个数之和。

c语言测试题

c语言测试题

c语言测试题1.题目一编写一个C语言程序,要求从键盘输入两个整数,然后输出它们的和。

解答:```c#include <stdio.h>int main() {int num1, num2;printf("请输入两个整数: ");scanf("%d %d", &num1, &num2);int sum = num1 + num2;printf("两数之和为:%d\n", sum);return 0;}```2.题目二编写一个C语言程序,要求从键盘输入一个整数,然后判断它是否为素数。

解答:```c#include <stdio.h>int isPrime(int num) {if (num <= 1) {return 0;}for (int i = 2; i * i <= num; i++) { if (num % i == 0) {return 0;}}return 1;}int main() {int num;printf("请输入一个整数: ");scanf("%d", &num);if (isPrime(num)) {printf("%d是素数\n", num);} else {printf("%d不是素数\n", num);}return 0;}```3.题目三编写一个C语言程序,要求实现冒泡排序算法对一个数组进行排序。

解答:```c#include <stdio.h>void bubbleSort(int arr[], int size) {for (int i = 0; i < size - 1; i++) {for (int j = 0; j < size - i - 1; j++) {if (arr[j] > arr[j + 1]) {int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}}void printArray(int arr[], int size) {for (int i = 0; i < size; i++) {printf("%d ", arr[i]);}printf("\n");}int main() {int arr[] = {5, 2, 9, 1, 3};int size = sizeof(arr) / sizeof(arr[0]); printf("排序前的数组: ");printArray(arr, size);bubbleSort(arr, size);printf("排序后的数组: ");printArray(arr, size);return 0;}```以上是三个C语言测试题的解答,分别涉及输入输出、数学运算和数组排序等。

C语言测试题(附有详细解析)

C语言测试题(附有详细解析)

C语言测试题(附有详细解析)一、选择题1. 以下哪个选项是C语言的关键字?A. ifB. sizeofC. structD. include解析:C语言中,关键字是指被C语言本身定义的具有特定意义的单词。

选项A的`if`是关键字,用于条件判断;选项C的`struct`是关键字,用于定义结构体;选项D的`include`实际上是预处理指令的一部分,不属于关键字。

选项B的`sizeof`是运算符,用于计算数据类型或变量的大小。

因此,正确答案是A、C。

2. 在C语言中,以下哪个选项表示整型变量?A. charB. intC. floatD. double解析:在C语言中,`int`类型用于存储整数。

选项A 的`char`用于存储字符;选项C的`float`和选项D的`double`用于存储浮点数。

因此,正确答案是B。

3. 以下哪个选项表示逻辑运算符?A. `++`B. `--`C. `&&`D. `%`解析:逻辑运算符用于连接多个条件表达式,包括与运算符`&&`、或运算符`||`和非运算符`!`。

选项C的`&&`是逻辑与运算符。

选项A的`++`和选项B的`--`是算术运算符,用于自增和自减;选项D的`%`是取模运算符。

因此,正确答案是C。

二、填空题1. 在C语言中,定义一个整型变量`a`并赋值为10的代码是______。

解析:定义整型变量`a`并赋值为10的代码如下:```cint a = 10;```2. 以下代码的输出结果是______。

```c#include <stdio.h>int main() {int x = 5;printf("%d\n", x++ + ++x);return 0;}```解析:在C语言中,`x++`是先使用x的值,然后x自增1;`++x`是先x自增1,然后使用x的值。

因此,`x++ + ++x`的执行过程如下:- `x++`,此时x的值为5,输出5;- `++x`,此时x的值为6,输出6;- 最终输出结果为11。

C语言试题

C语言试题

C测试题一、选择题(20题,共44分)1.常见的Linux发行版本有很多,下面不是Linux发行版本的是(C )。

[A] Red Hat Linux [B] Ubuntu Linux [C] X Window [D] SuSE Linux2.下面不是对Linux操作系统特点描述的是( B )。

[A] 良好的可移植性[B] 单用户[C] 多用户[D] 多任务3.下面( C )命令不能用来显示文件的内容。

[A] more [B] less [C] find [D] cat4.查看创建目录命令mkdir的帮助文档,可以使用命令( D )。

[A] mkdir –h [B] help mkdir [C] mkdir -p [D] man mkdir5.假设目录中存在若干文件file_num.txt(num表示文件编号,1~10),使用以下( C )通配符可以挑选出其中的编号为1、3、5的文件。

[A] file_*.txt [B] flie_?.txt [C] file_[135].txt [D] file_[^135].txt6.文件权限r-x-wxr--对应的八进制表示形式为( D )[A] 0536 [B] 0654 [C] 0656 [D] 05347.在C语言中,要求运算数必须是整型的运算符是( D )。

[A] / [B] ++ [C] != [D] %8.C语言中,逻辑“真”等价于( C )。

[A] 大于零的数[B] 大于零的整数[C] 非零的数[D] 非零的整数9.目前流行的两种软件包管理机制,Debian使用( D )软件包,Redhat使用( B )软件包。

[A] tgz [B] rpm [C] tar [D] deb10.下面函数的功能是( A )。

int fun (char*x){char*y=x;while(*y++);return(y-x-1);}[A] 求字符串的长度[B] 比较两个字符串的大小[C] 将字符串x复制到字符串y[D] 将字符串x连接到字符串y后面11.C语言程序的三种基本程序是( A )。

2024年6月青少年软件编程C语言等级考试试卷一级真题

2024年6月青少年软件编程C语言等级考试试卷一级真题

2024年6月青少年软件编程C语言等级考试试卷一级真题分数:100 题数:51.奇迹(20分)。

经典电影《阿甘正传》有句台词,说:(奇迹每天都发生)。

本题就请你直接在屏幕上输出这句话。

输入:本题没有输入。

输出:在一行中输出。

样例输入:无。

样例输出:2.九牛一毛(20分)。

这是一道脑筋急转弯题:猪肉一斤15元,鸡肉一斤20元,那么一毛钱能买多少头牛?答案是:9——因为“九牛一毛”。

本题就请你按照这个逻辑,计算一下N块钱能买多少斤猪肉、多少斤鸡肉、多少头牛。

输入:输入在一行中给出一个不超过1000的正整数N,即以“元”为单位的货币量。

输出:在一行中顺序输出N块钱能买多少斤猪肉、多少斤鸡肉、多少头牛。

三个数字都取整数,其间以1个空格分隔,行首尾不得有多余空格。

样例输入:样例输出:3.题A除以B(20分)。

给定两个绝对值不超过100的整数A和B,要求你按照“A/B=商”的格式输出结果。

输入:输入在第一行给出两个整数A和B(-100≤A,B≤100),数字间以空格分隔。

输出:在一行中输出结果:如果分母是正数,则输出“A/B=商”;如果分母是负数,则要用括号把分母括起来输出;如果分母为零,则输出的商应为“Error”。

输出的商应保留小数点后2位。

4.进化论(20分)。

在“一年一度喜剧大赛”上有一部作品《进化论》,讲的是动物园两只猩猩进化的故事。

猩猩吕严说自己已经进化了9年了,因为“三年又三年”。

猩猩土豆指出“三年又三年是六年呐”。

本题给定两个数字,以及用这两个数字计算的结果,要求你根据结果判断,这是吕严算出来的,还是土豆算出来的。

输入:输入第一行给出一个正整数N,随后N行,每行给出三个正整数A、B和C。

其中C不超过10000,其他三个数字都不超过100。

输出:对每一行给出的三个数,如果C是A×B,就在一行中输出“Lv Yan”;如果是A+B,就在一行中输出“Tu Dou”;如果都不是,就在一行中输出“zhe du shi sha ya!”。

C语言测试题目

C语言测试题目

一、顺序结构1.从键盘输入一个大于0的实数,编程计算并输出以该数位半径的圆面积、圆周长及球体积(取圆周率为3.14)要求输出时有适当的文字说明测试数据:输入2.5输出圆周长15.700000 圆面积19.625000 球体积为65.4166672.从键盘输入两个大于0的实数,编程计算并输出以其为长和宽的矩形的周长和面积。

要求输出时有适当的文字说明测试数据:输入 1.2 3.5输出矩形周长9.400000 矩形面积4.2000003.从键盘输入一个华氏温度值,计算并输出其摄氏温度的值。

提示:摄氏温度c=(5/9)*(f-32) f为华氏温度测试数据:输入华氏温度值100输出摄氏温度值37.7777784.从键盘输入三个实数,计算并输出它们的和及积。

测试数据:输入 1.1 2.2 3.5输出和6.800000 积8.4700005、从键盘输入三个整数,计算并输出它们的和及平均值测试数据:输入 2 5 7输出和14.000000 平均值4.6666676、输入一个三位数,依次输出该数的符号和百位、十位、个位数字。

测试数据:输入-752输出和符号- 百位7 十位5 个位2二、选择结构1.从键盘输入一个字符,判断它如果是小写字母输出其对应大写字母;如果是大写字母输出其对应小写字母;如果是数字输出数字本身;如果是空格,输出“space”;如果不是上述情况,输出“other”。

2.从键盘输入三个实数a、b、c,输出其中最大的数。

测试数据:输入5.3 6.5 2.1输出最大数6.53.从键盘输入一个正整数,判断它能否被 3或者被 5整除, 如至少能被这两个数中的一个整除则输出“yes”,否则输出“no”。

测试数据:(1)输入12 输出yes(2)输入16 输出no4.从键盘输入1到7之间的某个正整数,输出表示一星期中相应的某一天的英文单词:Monday、 Tuesday等等,用switch语句做。

测试数据:输入7输出Sunday5.从键盘输入一百分制成绩(实数),将其转换为成绩等级并输出:大于等于90分为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’。

C语言基础知识测试题-全面完整

C语言基础知识测试题-全面完整

基础知识测试题一.单项选择题1.以下不正确的C语言标识符是(D )A. ABCB. abcC. a_bcD. ab.c2.以下正确的C语言标识符是( C)A. %xB. a+bC. a123D. test!3.一个C语言程序的执行是从(A )。

A. main( )函数开始,直到main( )函数结束B. 第一个函数开始,直到最后一个函数结束C. 第一个语句开始,直到最后一个语句结束D. main( )函数开始,直到最后一函数结束4.在C语言程序中,main(C )的位置()。

A. 必须作为第一个函数B.必须作为最后一个函数C.任意D.必须放在它所调用的函数之后5.一个C语言程序是由(B )。

A. 一个主程序和若干个子程序组成B.一个或多个函数组成C.若干过程组成D.若干子程序组成6.C语言源程序的基本单位是(B)。

A. 过程B. 函数C. 子程序D. 标识符7.编辑程序的功能是(A)。

A. 建立并修改程序C.将C源程序编译成目标程序D.调试程序E.命令计算机执行指定的操作8.C编译程序是(D)。

A. C语言程序的机器语言版本B. 一组机器语言指.D. 将C源程序编译成目标程序的程序F. 由制造厂家提供的一套应用软件B9.不属于字符型常量的是( D )A.'A'B."B"C.'\n'D.'\x72'10 .设char ch; 以下正确的赋值语句是:(B )A.ch='123';B.ch='\xff';C.ch='\08';D.ch="\";11 .以下使i的运算结果为4的表达式是(D )A.int i=0,j=0;(i=3,(j++)+i);B.int i=1,j=0;j=i=((i=3)*2);C.int i=0,j=1;(j==1)?(i=1):(i=3);D.int i=1,j=1;i+=j+=2;A12 .若t为double类型,表达式t=1,t+5,t++的值是(D)A.1B.6.0 CC13.设整型变量m,n,a,b,c,d均为1,执行“(m=a>b)&&(n=a>b)”后m,n的值是( B)A.0,0B.0,1C.1,0D.1,1B14 .执行语句“x=(a=3,b=a--)”后,x,a,b的值依次为(CA.3,3,2B.3,2,2C.3,2,3D.2,3,2B15 .若a=1,b=2,c=3,d=4,则条件表达式a<b?a:a<d?c:d的值为(A )A.1B.2C.3D.416 .设int n=7;则++n+1= =9的结果是(C )A.trueB.falseC.1D.017 .设a=2,b=2;则++a+b的结果是(d),a的结果是(b),b的结果是(a)A.2B.3C.4D.518 .设a=2,则执行b=a==!a;语句后,b的结果是( A)A.0B.1C.2D.319 .设有以下语句,则c的二进制值是()char a=3,b=6,c;c=a^b<<2;A.00011011B.00010100C.00011100D.0001100020 .在C语言类型说明中,int、char、short等类型的长度是( A )A.固定的B.由用户自己定义的C.任意的D.与机器字的长度有关的二.填空题1.C语言中的标识符只能由三种字符组成,它们是、、。

C语言综合测试题(题目)

C语言综合测试题(题目)

选择题(每题2分,共计100分)1.分析下面的C程序, 输出结果是()#include<stdio.h>void main(){int num=0;while(num<=2){printf("%d ",num);num++;}}A. 1 2 3B.0 1 2C. 2 3D. 1 22.以下对二维数组a的正确说明是()。

A、 int a[3][];B、 floatf a(3,4);C、 double a[1][4];D、 float a(3)(4);3.要将20赋值到数组Num的第三个元素,正确的方法是()A.Num[3]=20B.Num[2]=20C.Num[4]=20D.[3] Num=204.在C语言中,已知字母A的ASCII码是65,则执行语句:char ch='A'+3; 后ch的值为()A.不能确定B.68C. CD. D5.以下描述中正确的是()。

A、由于do-while循环中循环体语句只能是-条可执行语句,所以循环体内不能使用复合语句B、do-while循环由do开始,用while结束,在while(表达式)后面不能写分号C、在do-while循环体中,-定要有能使while后表达式值变为零("假")的操作D、do-while循环中,根据情况可以省略while6.在C语言中,要求运算数必须是整型的运算符是()A、 /B、 ++C、 !=D、%7.以下程序段()x= -1;do{x=x*x;}while(!x);A、是死循环B、循环执行二次C、循环执行-次D、有语法错误8.在C语言中,下列正确的字符型常量是()A."f"B.'9'C.#D.3659.在C语言中,下面()是逻辑运算符中优先级最高的。

A.!B.&&C.||D.|E.&10.以下述叙不正确的是()A.一个C源程序可以由一个或多个函数组成B.一个C源程序必须包含一个main函数C.C程序的基本组成单位是函数D.在C程序中注释说明只能位于一条语句的后面11.为了避免在嵌套的条件语句If-else中产生二义性,C语言规定else子句,总是与()配对。

2024年6月青少年软件编程C语言等级考试试卷三级真题

2024年6月青少年软件编程C语言等级考试试卷三级真题

2024年6月青少年软件编程C语言等级考试试卷三级真题分数:100 题数:51.谷歌的招聘(20分)。

2004年7月,谷歌在硅谷的101号公路边竖立了一块巨大的广告牌用于招聘。

内容超级简单,就是一个以结尾的网址,而前面的网址是一个10位素数,这个素数是自然常数e中最早出现的10位连续数字。

能找出这个素数的人,就可以通过访问谷歌的这个网站进入招聘流程的下一步。

自然常数e是一个著名的超越数,前面若干位写出来是这样的:其中粗体标出的10位数就是答案。

本题要求你编程解决一个更通用的问题:从任一给定的长度为L的数字中,找出最早出现的K位连续数字所组成的素数。

输入:输入在第一行给出2个正整数,分别是L(不超过1000的正整数,为数字长度)和K(小于10的正整数)。

接下来一行给出一个长度为L的正整数N。

输出:在一行中输出N中最早出现的K位连续数字所组成的素数。

如果这样的素数不存在,则输出“404”。

注意,原始数字中的前导零也计算在位数之内。

例如在200236中找4位素数,0023算是解;但第一位2不能被当成0002输出,因为在原始数字中不存在这个2的前导零。

2.吉利矩阵(20分)。

所有元素为非负整数,且各行各列的元素和都等于7的3x3方阵称为“吉利矩阵”,因为这样的矩阵一共有666种。

本题就请你统计一下,把7换成任何一个[2,9]区间内的正整数L,把矩阵阶数换成任何一个[2,4]区间内的正整数N,满足条件“所有元素为非负整数,且各行各列的元素和都等于L”的NxN方阵一共有多少种?输入:输入在一行中给出2个正整数L和N,意义如题面所述。

数字间以空格分隔。

输出:在一行中输出满足题目要求条件的方阵的个数。

3.胖达与盆盆奶(20分)。

大熊猫,俗称“胖达”,会排队吃盆盆奶。

它们能和谐吃奶的前提,是它们认为盆盆奶的分配是“公平”的,即:更胖的胖达能吃到更多的奶,等胖的胖达得吃到一样多的奶。

另一方面,因为它们是排好队的,所以每只胖达只能看到身边胖达的奶有多少,如果觉得不公平就会抢旁边小伙伴的奶吃。

c语言程序基础练习题500道(附答案)

c语言程序基础练习题500道(附答案)

1.下列四组选项中,均不是C语言关健字的选项是( A )。

A) define B) gect C) include D) whileIF char scanf gotype printf case pow2.下面四个选项中,均是合法整型常量的选项是( A )。

A)160 B)-0xcdf C) -01 D)-0x48a-0xffff 01a 986,012 2e5011 0xe 0668 0x3.下面四个选项中,均是不合法的转义符的选项是( B )。

A) '\"' B) '\1011' C) '\011' D) '\abc''\\' '\' '\f' '\101''xf' '\A' '\}' 'x1f'4.下面不正确的字符串常量是( A )。

A)'abc' B)"12'12" C)"0" D)" "5.以下选项中不合法的用户标识符是( A )。

A)abc.c B)file C)Main D)PRINT6.C语言提供的合法关键字是( D )。

A) swithB) cherC) CaseD)default7.下列标识符组中,合法的用户标识符为 AA)_0123与ssipedB)del-word与signedC)list与*jerD) keep%与wind8.在C语言中,逻辑值"真"的表示是用( C )。

A) true B) 整型值0 C)非另整型值D) T9若有以下定义char s='\092';则该语句( b )A)使s的值包含一个字符B)定义不合法,s的值不确定C)使s的值包含4个字符D)使s的值包含3个字符10设C语言中,int类型数据占2个字节,则float类型数据占(D )个字节。

c语言 100题

c语言 100题

c语言100题1. 构成C语言程序的基本单位是()。

A.函数B.变量C.子程序D.语句是不正确的转义字符。

2. C语言规定:在一个源程序中,main()函数的位置()。

A.必须在最开始B.必须在系统调用的库函数后面C.可以任意D.必须在最后3. 下列哪个选项能够正确地声明一个指向整型变量的指针?A) int *ptr;B) int ptr;C) int ptr;D) int ptr;4.C语言中的标识符只能由字母、数字和下划线3种字符组成,且第一个字符()。

A.必须为字母B.必须为下划线C.必须为字母或下划线D.可以是字母、数字和下划线中的任意一种5. C语言中的简单数据类型有()。

A.整型、实型、逻辑型B.整型、字符型、逻辑型C.整型、实型、字符型D.整型、实型、字符型、逻辑型6. 以下选项中,不正确的整型常量是()。

A.-37B.32,758C.326D.67.以下选项中,不正确的实型常量是()。

A.123B.1e4C.3.640E-1D.0.358.以下选项中,合法的C语言赋值语句是()。

A.a=b=34B.a=34,b=34C.-i;D.m=(int)(x+y);9.设int类型的数据长度为两个字节,则unsigned int类型数据的取值范围是()。

A.0~255B.0~65535C.-32768~32767D.-256~25510.在C语言中,下列哪个函数用于将整数转换为字符串?A) itoa()B) atoi()C) to_string()D) intstr()11.以下叙述中,不正确的是()。

A.在C程序中,%是只能用于整数运算的运算符B.在C程序中,无论是整数还是实数,都能准确无误地表示C.若a是实型变量,C程序中a=20是正确的,因此实型变量允许被整型数赋值D.前缀和后缀运算符,作为表达式来说有不同的作用12.设a、b、c、d、m、n均为int型变量,且a=5,b=6,c=7,d=8,m=2,n=2,则逻辑表达式(m=a>b)&(n=c>d)运算后,n的值为()。

C语言模拟测试题一及答案

C语言模拟测试题一及答案

模拟题一一、选择题1.下列说法正确的是()。

A)main函数必须放在C程序的开头B)main函数必须放在C程序的最后C)main函数可以放在C程序的中间部分,但在执行C程序时是从程序开头执行的D)main函数可以放在C程序的中间部分,但在执行C程序时是从main函数开始的2.C语言中不能用来表示整常数的进制是()。

A)十进制B)十六进制C)八进制D)二进制3.在下面几组数据类型中, 全为最常用的基本数据类型的是哪一组:()。

A)整型实型字符型B)整型数组指针C)数组结构体共用体D)指针逻辑型空类型4.C语言规定标识符由()等字符组成。

A)字母数字下划线B)中划线字母数字C)字母数字逗号D)字母下划线中划线5.若有说明语句:char c= ‘\64’ ; 则变量C包含()。

A)1个字符B)2个字符C)3个字符D)说明不合法,C值不确定6.若有如下定义:int a=2,b=3; float x=3.5,y=2.5; 则表达式:(float)(a+b)/2+(int)x%(int)y的值是()。

A)2.500000 B)3.500000 C)4.500000 D)5.0000007.设有如下定义和执行语句,其输出结果为()。

int a=3,b=3;a = --b + 1; printf(“%d %d”,a,b);A)3 2 B)4 2 C)2 2 D)2 38.以下表达式: 2+’a’+i*f, 其中i为整型变量,f为float型变量,则表达式的最终数据类型为()。

A)int B)float C)char D)double9.C语言中,运算对象必须是整型数的运算符是()。

A)%B)\C)% 和\D)**10.有如下语句:printf(“%s,%5.3s\n”,“COMPUTER”,“COMPUTER”);执行语句后的最终结果为()。

A)COMPUTER ,CMP . B)COMPUTER, CMP.C)COMPU, CMP. D)COMPU, CMP .11.能正确表示x的取值范围在[0,100]和[-10,-5]内的表达式是()。

C语言程序第一 二章测试题

C语言程序第一 二章测试题
C 语言测试题一
printf(“%d,”,a); a*=2; printf(“%d,”,a); a--; printf(“%d,”,a); a%=100; printf(“%d\n”,a); } 运行结果:_____________________ 2. main() { int a1,a2; float b,c; b=38.425; c=12.0; a1=(int)(b+c); a2=(int)b%(int)c; printf(“a1=%d\n”,a1); printf(“a2=%d\n”,a2); } 输出结果是 四、简答题: (5 分) 简述 c 语言中用户标识符的命名规则。
20. 错误的转义字符是:21. main( Nhomakorabea)
{ int a,b,c; a=b=c=5; a-=(b%=2)+(c-=1); printf(“%d,%d,%d”,a,b,c);} 以上程序的输出结果是: A、0 1 4 B、0,1,4 C、-1 2 4 D、-1,2,4 22. C 语言中的变量名只能是由字母、数字和下划线组成,且第一个字符( ) A、必须是字母 B、必须是下划线 C、必须是字母或下划线 D、可以是字母、数字或下划线中任一种 23. 以下一组运算符中,优先级高的是( ) A、++ B、+ C、&& D、<
C 语言测试题一
14. 15. 16.
17.
18.
19.
A) 字符 A B) 字符 a C) 字符 e D) 非法的常量 以下非法的赋值语句是_C_____。 A) n=(i=2,++i); B) j++; C) ++(i+1); D) x=j>0; 设 a 和 b 均为 double 型常量,且 a=5.5、b=2.5,则表达式(int)a+b/b 的值是_D_____。 A) 6.500000 B) 6 C) 5.500000 D) 6.000000 与数学式子 3 乘以 x 的 n 次方/(2x-1)对应的 C 语言表达式是__C____。 A) 3*x^n/(2*x-1) B) 3*x**n/(2*x-1) C) 3*pow(x,n)*(1/(2*x-1)) D) 3*pow(n,x)/(2*x-1) 设有定义:long x=-123456L;,则以下能够正确输出变量 x 值的语句是_B_____。 A) printf("x=%d\n",x); B) printf("x=%ld\n",x); C) printf("x=%8dL\n",x); D) printf("x=%LD\n",x); 若有以下程序: main() {int k=2,i=2,m; m=(k+=i*=k); printf("%d,%d\n",m,i); } 执行后的输出结果是___C___。 A) 8,6 B) 8,3 C) 6,4 D) 7,4 已知 int x=2;double y;经过执行以下赋值语句:y=(double)x;后,变量 x 的数据 类型是: A、int 型 B、double 型 C、char 型 D、float 型 A.'\071' B.'\\' C.'\0xaf' D.'\''

c语言 测试题

c语言 测试题

第3章一、单项选择题1. 在一个C程序中(B )。

A.)main函数必须出现在所有函数之前B)main函数可以在程序任何位置出现C)main函数必须出现在所有函数之后D)main函数必须出现在固定位置2.在PC机中,’\n’在内存占用的字节数是( A )。

A)1 B)2 C)3 D)43. 下列关于C语言用户标识符的叙述中正确的是(B )A)用户标识符中可以出现下划线和中划线(减号)B)用户标识符中不可以出现中划线(减号),但可以出现下划线C)用户识符中可以出现下划线,但不可以放在用户标识符的开头D)用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头4. 以下叙述中正确的(D )。

A.)输入项可以是一个实型常量,例如:scanf("%f",3.5);B.)只有格式控制,没有输入项,也能正确输入数据到内存,例如:scanf("a=%d,b=%d");C.)当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:scanf("%4.2f ",&f);D.)当输入数据时,必须指明变量地址,例如:scanf("%f ",&f);5.设整型变量i的值为3,则计算表达式i---i后i的值为( A )。

A)0 B)1 C)2 D)表达式出错6.设整型变量a,b,c均为2,表达式a+++b+++c++的结果是( A )。

A)6 B)9 C)8 D)表达式出错7. 以下选项中合法的用户标识符是( B )。

A)long B)_2test C)3Dmax D )A.dat8.设有语句int a=3;,则执行了语句a+=a-=a*a;后,变量a的值是( D )。

A)3 B)0 C) 9 D)-129.在以下一组运算符中,优先级最高的运算符是( C )。

A)<= B)= C)% D)||10.设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中值为0的是( D )。

2024年6月青少年软件编程C语言等级考试试卷二级真题

2024年6月青少年软件编程C语言等级考试试卷二级真题

2024年6月青少年软件编程C语言等级考试试卷二级真题分数:100 题数:51.冠军魔术(20分)。

2018年FISM(世界魔术大会)近景总冠军简纶廷的表演中有一个情节:以桌面上一根带子为界,当他将纸牌从带子的一边推到另一边时,纸牌会变成硬币;把硬币推回另一边会变成纸牌。

这里我们假设纸牌会变成等量的硬币,而硬币变成纸牌时,纸牌的数量会加倍。

那么给定纸牌的初始数量,当他来回推了N次(来/回各算一次)后,手里拿的是纸牌还是硬币?数量是多少?输入:输入在一行里给出两个正整数,分别是纸牌的初始数量和魔术师推送的次数。

这里假设初始状态下魔术师手里全是纸牌。

输出:如果最后魔术师手里是纸牌,输出0和纸牌数量;如果是硬币,则输出1和硬币数量。

数字间须有1个空格。

题目保证结果数值不超出整型范围(即231-1)。

2.找座位(20分)。

组织一场考试时,监考老师手里会有一份签到表,按座位号的顺序列出学生。

但学生要根据这份表找到自己的座位编号就很麻烦了。

本题就要求你编写程序,帮助学生快速找到他们的座位号。

输入:输入第一行给出一个不超过103的正整数N,是参加考试的学生数。

以下N行,第i行给出座位号为i的学生的学号(i=1,……, N)。

学号是一个不超过8位、完全由数字组成的字符串。

输入保证每个学生只分配一个座位。

接下来一行给出一个不超过105的正整数M,是待查询的学生数。

以下M行,每行给出一个待查询的学生的学号。

输出:对每一个待查询的学生,如果他在考场里有座位,则在一行中输出其座位号;否则输出“NA”(Not Available的缩写),表示座位号不存在。

3.英语老师小助手(20分)。

英语老师要求学生按照如下规则写一串字母:规则1,如果写了某个大写字母,下一个就必须写同个字母的小写,或者写字母表中前一个字母的大写。

规则2,如果写了某个小写字母,下一个就必须写同个字母的大写,或者写字母表中下一个字母的小写。

例如“zZzZYXWwxyYX”就是一个合法的字母串;而“wVUuvUTsR”就是非法的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件测试题(C语言)1.请给出正确答案:(10’)#define y 3+2int a = 5, b = 7, c;c = (a+++b)*y;这段代码持行后a=( ) b=( ) c=( )2.下面的代码输出是什么,为什么?(10’)void func(void){unsigned int a = 10;int b = -20;(a+b > 10) ? puts("> 10") : puts("<= 10");}3.下面的函数有错误吗?如有该怎样修改?(10’)int square(volatile int *ptr){return *ptr * *ptr;}4.下面的代码使用了__interrupt关键字去定义了一个中断服务子程序(ISR),请评论一下这段代码:(20’)__interrupt double compute_area (double radius){double area = PI * radius * radius;printf("\nArea = %f", area);return area;}5.请编写下面函数:(20’)void* m emmove(void *dest, const void *src,size_t n)6.请编程实现:(30’)M个人围成一圈,按顺时针方向依次编号为1到M,从编号1开始顺时针方向报数,报到为N的人出局,出局人的下一位重新从1开始报数,请编程求出最后剩下的人的编号。

参考答案:1.a=( 6 ) b=( 7 ) c=( 38 )2.(1)答案是输出是">10"。

原因是当表达式中存在有符号类型和无符号类型时所有的操作数都自动转换为无符号类型。

因此-20变成了一个非常大的正整数,所以该表达式计算出的结果大于10。

(2)如果答对了,面试时可以接着问假如编译器认为int为16位数据,a+b结果为多少。

(答案65526)3.因为volatile可能被意想不到地改变,因此这段代码可能返不是你所期望的平方值!正确的代码如下:long square(volatile int *ptr){int a;a = *ptr;return a * a;}4.1)ISR 不能返回一个值。

2) ISR 不能传递参数。

3) 在许多的处理器/编译器中,浮点一般都是不可重入的。

有些处理器/编译器需要让额处的寄存器入栈,有些处理器/编译器就是不允许在ISR中做浮点运算。

此外,ISR应该是短而有效率的,在ISR中做浮点运算是不明智的。

4) printf()经常有重入和性能上的问题。

5.仅供参考:void* memmove(void *dest, const void *src,size_t n){if (n == 0) return 0;if (dest == NULL) return 0;if (src == NULL) return 0;char *psrc = (char*)src;char *pdest = (char*)dest;if((dest <= psrc) || (pdest >= psrc + n)) /*检查是否有重叠问题*/{for(int i=0; i < n; i++) /*正向拷贝*/{*pdest = *psrc;psrc++;pdest++;}}else /*反向拷贝*/{psrc += n;pdest += n;for(int i=0;i<n;i++){psrc--;pdest--;*pdest = *psrc;}}return dest;}6.该题主要考查编程序思路和风格,实现方法会有很多种。

不提供参考答案。

6。

main() { int a[5]={1,2,3,4,5}; int *ptr=(int *)(&a+1); printf("%d,%d",*(a+1),*(ptr-1)); } 答案:2。

5 *(a+1)就是a[1],*(ptr-1)就是a[4],执行结果是2,5 &a+1不是首地址+1,系统会认为加一个a数组的偏移,是偏移了一个数组的大小(本例是5个int)int *ptr=(int *)(&a+1); 则ptr实际是&(a[5]),也就是a+5 原因如下:&a是数组指针,其类型为int (*)[5]; 而指针加1要根据指针类型加上一定的值,不同类型的指针+1之后增加的大小不同a是长度为5的int数组指针,所以要加5*sizeof(int) 所以ptr实际是a[5] 但是prt与(&a+1)类型是不一样的(这点很重要) 所以prt-1只会减去sizeof(int*) a,&a的地址是一样的,但意思不一样,a是数组首地址,也就是a[0]的地址,&a是对象(数组)首地址,a+1是数组下一元素的地址,即a[1],&a+1是下一个对象的地址,即a[5].7。

请问以下代码有什么问题:int main() { char a; char *str=&a; strcpy(str,"hello"); printf(str); return 0; } 答案:没有为str分配内存空间,将会发生异常问题出在将一个字符串复制进一个字符变量指针所指地址。

虽然可以正确输出结果,但因为越界进行内在读写而导致程序崩溃。

8。

char* s="AAA"; printf("%s",s); s[0]='B'; printf("%s",s); 有什么错?答案:"AAA"是字符串常量。

s是指针,指向这个字符串常量,所以声明s的时候就有问题。

cosnt char* s="AAA"; 然后又因为是常量,所以对是s[0]的赋值操作是不合法的。

9。

写一个“标准”宏,这个宏输入两个参数并返回较小的一个。

答案:.#define Min(X, Y) ((X)>(Y)?(Y):(X)) //结尾没有‘;’10。

嵌入式系统中经常要用到无限循环,你怎么用C编写死循环。

答案:while(1){}或者for(;;)1.请给出以下代码的输出结果int main(){char a[100];int i;for(i=0;i<1000;i++){a[i] = -1 - i;}printf("%d",strlen(a));return 0;}答案:2552.选择正确的语句()A. int/*...*/i;B. char* s="abcdef //hijk";C. //Is it a \valid comment?D. in/*...*/ti;答案:A B C3,已知一个数组table,用一个宏定义,求出数据的元素个数答案:#define NTBL (sizeof(table)/sizeof(table[0]))1.-1,2,7,28,,126请问28和126中间那个数是什么?为什么?答案:第一题的答案应该是4^3-1=63 规律是n^3-1(当n为偶数0,2,4) n^3+1(当n 为奇数1,3,5)9。

enum string { x1, x2, x3=30, x4, x5, }x; 问x的取值范围?答案:取值在0。

1。

30。

31。

32中的一个10。

unsigned char *p1; unsigned long *p2; p1=(unsigned char *)0x801000; p2=(unsigned long *)0x810000; 请问p1+5= ; p2+5= ;答案:0x801005;0x810014。

不要忘记了这个是16进制的数字,p2要加20变为16进制就是143.以下是求一个数的平方的程序,请找出错误:#define SQUARE(a) ((a)*(a))int a=5;int b;b=SQUARE(a++);答案:这个没有问题,s(a++),就是((a++)×(a++))唯一要注意的就是计算后b=25, a=7了6、请写出下列代码的输出内容#include <stdio.h> main() { int a,b,c,d; a=10; b=a++; c=++a; d=10*a++; printf("b,c,d:%d,%d,%d",b,c,d); return 0; }答案:10,12,120[ a=10; b=a++;//a=11 b=10 c=++a;//a=12 c=12 d=10*a++;//a=13 d=120 ]4.32位系统中,设有以下说明和定义:typedef union {long i; int k[5]; char c;} DA TE; struct data { int cat; DA TE cow; double dog;} too; DA TE max; 则语句printf("%d",sizeof(too)+sizeof(max));的执行结果是:______答案:52DA TE是一个union, 变量公用空间. 里面最大的变量类型是int[5], 占用20个字节. 所以它的大小是20 data是一个struct, 每个变量分开占用空间. 依次为int4 + DA TE20 + double8 = 32. 所以结果是20 + 32 = 52.一、判断题(对的写T,错的写F并说明原因,每小题4分,共20分)1、有数组定义int a[2][2]={{1},{2,3}};则a[0][1]的值为0。

(正确)2、int (*ptr) (),则ptr是一维数组的名字。

(错误int (*ptr) ();定义一个指向函数的指针变量)3、指针在任何情况下都可进行>, <,>=, <=,==运算。

(错误)4、switch(c) 语句中c可以是int ,long,char ,float ,unsigned int 类型。

(错,不能用实形)1.32位系统中定义int **a[2][3],变量占有的内存空间为多少?答案:24 [2*3*4]。

相关文档
最新文档