暗記メーカー
ログイン
C
  • ユーザ名非公開

  • 問題数 100 • 1/4/2025

    記憶度

    完璧

    15

    覚えた

    35

    うろ覚え

    0

    苦手

    0

    未解答

    0

    アカウント登録して、解答結果を保存しよう

    問題一覧

  • 1

    程序经过编译生成的是( )

    目标文件

  • 2

    要运行编写好的C语言源程序,必须经过__________后生成目标文件,再经过连接生成_________________文件

    编译, 可执行

  • 3

    已知三角形的底为a,高为b,用C语言书写正确的面积公式为( )

    1.0/2*a*b

  • 4

    According to the declaration: int x=23; the value of expression x++*1/3 is __.

    7

  • 5

    下列标识符中,不合法的是( )。

    #PI

  • 6

    若有以下程序段 int c1=1,c2=2,c3; c3=1.0/c2*c1; 则执行后,c3中的值是( )。

    0

  • 7

    已知字母A的ASCII码为十进制数65,且ch为字符型变量,则执行语句ch='A'+'6'-'3';后,ch中的值为__。

    68

  • 8

    C语言中最简单的数据类型包括( )。

    整型,实型,字符型

  • 9

    表达式__的值是0。

    3/5

  • 10

    读下列程序,写出程序的输出结果。 #include <stdio.h> void main() { int x=10,y=10; printf(“%d,%d\n”,x--,--y); } 输出结果为:

    10,9

  • 11

    C语言中普通单精度浮点型变量的类型说明符为 ,在内存中占 字节。

    float, 4

  • 12

    下列常数中,不合法的C语言常量是( )。

    abc

  • 13

    字符串"\\123456\\\\\n"在内存中占用的字节数是( )。

    11

  • 14

    在C语言中,下列数据类型属于基本类型的是( )。

    整型、字符型、浮点型

  • 15

    下列转义字符中,错误的是( )。

    '\0x5a'

  • 16

    下列关于C语言标识符的叙述中正确的是( )。

    第一个字符必须是字母或下划线

  • 17

    与k=++n完全等价的表达式是( )。

    n=n+1, k=n

  • 18

    设有变量定义char a='a'; int i=3, j=5, b; float x=2.5; double y=5.0, z; 计算下面表达式的值。 Z=(i++)*(j++)

    15,0

  • 19

    设有变量定义char a='a'; int i=3, j=5, b; float x=2.5; double y=5.0, z; 计算下面表达式的值。 i-=j*=x+y

    -34

  • 20

    设有变量定义char a='a'; int i=3, j=5, b; float x=2.5; double y=5.0, z; 计算下面表达式的值。 (int)y% i %(int)(x+y)

    2

  • 21

    设有变量定义char a='a'; int i=3, j=5, b; float x=2.5; double y=5.0, z; 计算下面表达式的值。 y=(x=2,x+1,x+2)

    4,0

  • 22

    写出下列程序的输出结果。 程序代码如下: #include <stdio.h> int main(void) { int i, j, m, n; i=10; j=10; m=++i; n=j++; printf("i=%d, j=%d, m=%d, n=%d", i, j, m, n); return 0; }

    i=11, j=11, m=11, n=10

  • 23

    字符串常量“Hello,everyone!”占据的内存空间为 字节

    16

  • 24

    设有变量定义char a='a'; int i=3, j=5, b; float x=2.5; double y=5.0, z; 计算下面表达式的值。 (float)i/(++j)

    0,5

  • 25

    写出下列程序的输出结果。 程序代码如下: #include <stdio.h> int main(void) { int a,b,c; a=(b=(c=3)*4)*5-6; printf("a=%d;b=%d;c=%d\n",a,b,c); return 0; }

    a=54;b=12;c=3

  • 26

    表达式10+'a'+1.5-0.5*'b'的结果是 。

    59,5

  • 27

    以下程序的输出结果是( )。 #include<stdio.h> void main( ) {printf(''%d\n'',NULL);}

    0

  • 28

    已知字符 'b' 的ASCII码为98,语句 printf("%d,%c", 'b', 'b'+1 ); 的输出为( ) 。

    98,c

  • 29

    C语言程序的3种基本结构是( )。

    顺序结构.选择结构和循环结构

  • 30

    设 x=011; 执行printf (“%d”, x); 的输出是( )。

    9

  • 31

    The value of expression sizeof("\num=%d\t") is :

    8

  • 32

    若a是基本整型变量,c是单精度实型变量,输入语句____是错误的。

    scanf("%d%f”, a, c);

  • 33

    Supposing all the following variables are declared correctly. If executing the statement scanf("%d%c%f", &op1, &op, &op2);,the values of op1, op and op2 are 1,* and 2.0, respectively, the the input must be ___.

    1*2

  • 34

    假设有double s1,s2; ,下列语句中正确的是( )。

    scanf("%lf%lf",&s1,&s2);

  • 35

    请阅读下面的程序,写出程序执行后的输出。 #include <stdio.h> int main() { int i=0; printf("%d\n",i); printf("%d\n",i++); printf("%d\n",i++); printf("%d\n",++i); printf("%d\n",i); return 0; }

    0 0 1 3 3

  • 36

    结构化程序设计的三种基本程序结构为顺序结构、 和选择结构。

    循环结构

  • 37

    已知int x=10,y=20,z=30;,以下语句执行后x,y,z的值是( )。 if (x>y) z=x;x=y;y=z

    x=20,y=30,z=30

  • 38

    下列表达式中,值为0的表达式是( )。

    9>6>3

  • 39

    语句if (!i ) i++; 中的条件表达式 !i 等价于( )。

    i==0

  • 40

    C语言中对嵌套if的规定是:else总是与( )配对。

    其之前最近的且尚未配对的if

  • 41

    为表示关系x<y<z,应使用C语言表达式( )。

    (x<y)&&(y<z)

  • 42

    逻辑运算符两侧运算对象的数据类型( )。

    可以是任何类型的数据

  • 43

    假设有:int a=100, b=80,c=30; 在下列选项中,结果为“真”的是( )。

    !(b>a)||(a-90>c)

  • 44

    设x.y.t均为int型变量,则执行语句:x=y=3; t= ++x || ++y; 后,y的值为__。

    3

  • 45

    下列运算符中优先级最高的运算符是( )。

    !

  • 46

    在下面的程序中,假设程序开始执行后用户输入4和6,请写出程序执行后的输出。 #include <stdio.h> int func1(int a,int b){ return a+b; } int func2(int a,int b){ return a-b; } int func3(int a,int b){ return a*b; } int main(){ int a,b; scanf("%d%d",&a,&b); switch(a+b){ case 10: printf("%d\n",func1(a,b)); printf("%d\n",func2(a,b)); printf("%d\n",func3(a+1,b+1)); case 11: printf("%d\n",func2(a,b)); printf("%d\n",func1(a,b)); break; case 12: printf("%d\n",func3(a+1,b+1)); printf("%d\n",func1(a,b)); printf("%d\n",func2(a,b)); } return 0; }

    10 -2 35 -2 10

  • 47

    假设x=4,y=2,m=5,n=4,w=12,t=9,则经过表达式(w=x<y)&&(t=m-n)之后,w=__________,t=_____________。

    0, 9

  • 48

    下列程序的输出结果为: #include <stdio.h> int main() { int a=10; switch(a) { case 10 : case 9 : a++; case 8: case 7: a+=2; break; case 6: a+=3; default: a+=4; } printf("a=%d\n",a); return 0; } 输出结果为:

    a = 13

  • 49

    假设有int a=10,b=20; 表达式 a>b?a+7:b-13 的值为 。

    7

  • 50

    为解决一个问题而采取的方法和步骤称为 。

    算法

  • 51

    下列程序的输出结果为: #include<stdio.h> int main(){ int i,m=0,n=0,k=0; for(i=9; i<=11;i++) switch(i%10){ case 0: printf("%d\n",m); m++; n++; break; case 1: printf("%d\n",n); n++; break; default: k++; n++; } printf("%d %d %d\n",m,n,k); return 0; }

    0 2 1 3 1

  • 52

    若有以下语句 int x = 3; do { printf("%d ", x -= 2); } while (!(--x)); 运行后输出( )。

    1 -2

  • 53

    以下4个关于C语言的结论中,错误的是( )。

    do-while语句与while语句的区别仅是关键字“while”出现的位置不同;

  • 54

    设已定义i和k为int类型变量,则以下for循环语句( )。 for(i=0,k=-1;;i++,k++) printf(''* * * *\n'');

    是无限循环

  • 55

    下列选项中,用于提前终止循环的语句是( )。

    break

  • 56

    有如下程序段,其中语句 x--; 执行的次数是( )。 int x = 10; while ( x = 0 ) x--;

    0次

  • 57

    填空,使下程序执行后输出如图所示的菱形, * * * * * * * * * * * * * * * * #include <stdio.h> void main( ) { int i , j ; for( i=1; i<=4; i++) { for (j=1; j<= (1) ; j++) putchar(32); // 输出1个空格 for (j=1; j<= (2) ; j++) putchar('*'); putchar('\n'); } }

    4-i, 2*i-1

  • 58

    读下列程序,写出程序的输出结果。 #include <stdio.h> void main() { int k=4, n=0; for (;n<k;) { n++; if (n%3!=0) continue; k--; } printf (“%d,%d\n”,k,n); } 输出结果为:

    3, 3

  • 59

    读下列程序,写出程序的输出结果。 #include <stdio.h> int main( ) { int a,b; for(a=1,b=1;a<=100;a++) { if(b>=20) break; if(b%3==1) b+=3; continue; b-=5; } printf(''a = %d\n'', a); return 0; } 输出结果为:

    a = 8

  • 60

    下面程序用于计算1-1/3+1/5-1/7+……的前20项之和,按要求完善程序。 #include <stdio.h> int main() { int i,flag=1; double sum=0; for(i=1;i<=(1) ;i++) { sum=sum+((2) ); flag=(3) ; } printf("sum=%f\n",sum); return 0; }

    20, flag*1.0/(2*i-1), -flag

  • 61

    下面给出一个函数power,该函数用于计算整数x的n次幂并返回(假设n为正整数)。请将程序中没有给出的部分补全,使该函数可以完成上述功能。 int power(int x,int n){ int (1) ; int i; for(i=1; (2) ;i++) z=z*n; return z; }

    z=1, i<=n

  • 62

    假设有:int i; for(i=0;i<=10;i=i+3) printf("%d",i); 该循环执行的次数为 次。

    4

  • 63

    读下列程序,写出程序的输出结果。 void main() { int a; for ( a=0; a<3; a++ ) switch (a) { case 1: printf ("aa\n"); case 2: printf ("bb"); default: printf ("cc"); } } 输出结果为:

    ccaabbccbbcc

  • 64

    读下列程序,写出程序的输出结果。 #include <stdio.h> void main() { int x=1; do{ printf("%d ",x--); } while(!x); }

    10

  • 65

    下列关于C语言中数组的描述中错误的是( )。

    在函数调用中使用数组名作函数实参时,向形参传递的是整个数组所有的元素

  • 66

    下列选项中,不能把字符串 "Hello!" 存入数组b中的是( )。

    char b[10]; b="Hello!";

  • 67

    下面正确定义数组的语句是( )。

    int x[][2]={8,9,5,2}

  • 68

    有语句int a[][3] = {1,2,3,4,5,6}; 则a[1][1]的值是( )。

    5

  • 69

    以下对二维数组a进行不正确的初始化的是( )。

    int a[][]={{3,2,1},{1,2,3}};

  • 70

    判断两个字符串s1和s2是否相等,应该使用( )。

    if (strcmp(s1,s2)= =0)

  • 71

    已知如下语句,判断下面描述正确的是( )。 char s[6]={ 'a','b','c','d' }; char r[]="abcd";

    s数组长度大于r数组的长度

  • 72

    下列哪个数组定义是正确的( )。

    int a[3+2];

  • 73

    下面程序的功能是求数组s中的最大元素及它的下标,按要求完善程序。 #include <stdio.h> main() { int s[4][4],max,i,j,row,col; for(i=0;i<4;i++) for(j=0;j<4;j++) scanf(“%d”,(1) ); (2) ; for(i=0;i<4;i++) for(j=0;j<4;j++) if (s[i][j]>max) { (3) ; row=i;col=j; } printf(“s[%d][%d]=%d\n”,row,col,max); }

    &s[i][j], max=s[0][0];, max=s[i][j];

  • 74

    以下程序完成的功能是:将一个字符数组中存储的字符串复制到另一个字符数组中然后输出,不使用strcpy函数,请将程序中的空白填写完整。 #include <stdio.h> #include <string.h> #define MAX 20 void main(){ char s[MAX]="Hello World!", t[MAX]; int i; for(i=0;(1) ;i++) (2) printf("%s\n%s\n",s,t); }

    i<MAX, t[i]=s[i];

  • 75

    读下列程序,写出程序的输出结果。 #include <stdio.h> #include <string.h> int main(){ char s1[ ]="ILoveCprogram"; char s2[ ]="ILoveCProgram"; char *p1= s1, *p2= s2; int i; for (i=0; i<strlen(s1); i++){ if (*(p1+i)==*(p2+i)) printf ("%c", *(p1+i)); else break; } printf("\n"); printf("%d\n",i); return 0; }

    ILoveC 6

  • 76

    把字符数组中的字符串按反序存放,例如:字符串"ABCD"的输出结果应为"DCBA",请填空。 #include<stdio.h> #include<conio.h> #include<string.h> main() { char a[100],t; printr(“输入字符串:\n”); scanf("%s",a); int i,j; for(i=0,j=strlen(a);i<strlen(a)/2;i++,j--) { t=a[i]; (1) ; (2) ; } printf(“转换后的字符串是:%s\n”,a); }

    a[i]=a[j-1], a[j-1]=t

  • 77

    以下程序完成的功能是:统计一个整型数组中所有能被7整除也能被9整除的数的个数并输出。请根据以上描述,将程序中的空白填写完整。 #include <stdio.h> int main(){ int num[10],i; for(i=0;i<10;i++) scanf("%d",&num[i]); int count; for(i=0, ;i<10;i++){ //(1) if( ) //(2) count++; } printf("count=%d\n",count); return 0; }

    count=0, num[i]%7==0&&num[i]%9==0

  • 78

    读下列程序,写出程序的输出结果。 #include <stdio.h> int main(){ int a[5]= {1,3,5,7,9}; int b[5]= {2,4,6,8,10}; int c[5]; int i; for(i=0;i<5;i++){ if(i%2!=0) c[i]=a[i]+b[i]; else c[i]=a[i]-b[i]; } for(i=0;i<5;i++) printf("%d ",c[i]); printf("\n"); return 0; }

    -1 7 -1 15 -1

  • 79

    有函数调用语句:func(rec1,rec2+rec3,(rec4,rec5));,此语句的实参数为( )。

    3

  • 80

    下列关于C语言中函数参数的叙述正确的是( )。

    实参与其对应的形参各自占据独立的存储单元

  • 81

    一个C语言程序是由( )组成的。

    函数

  • 82

    下列关于C程序的描述正确的是( )。

    C程序总是从main函数开始执行

  • 83

    在一个C程序中( )。

    main函数可以在任何地方出现。一个C程序必须有且仅有一个main函数。

  • 84

    C语言程序的基本单位是( )。

    函数

  • 85

    下列关于变量存储方式的描述中错误的是( )。

    局部变量都是静态存储的

  • 86

    关于C程序,下列叙述正确的是( )。

    main函数出现的位置不确定。一个C程序必须有且仅有一个main函数。

  • 87

    若用数组名作为函数调用时的实参,则传递给形参的是( )。

    数组的首地址

  • 88

    在C语言程序中,以下说法正确的是( )。

    函数的定义不可以嵌套,但函数的调用可以嵌套

  • 89

    若程序中定义了以下函数 double myadd(double a,double b) { return (a+b); } 并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是( )。

    double myadd(double a,b)

  • 90

    下列关于函数的描述中错误的是( )。

    一个函数的函数体中只能有一个return语句

  • 91

    在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的 调用。

    递归

  • 92

    请阅读下面的程序,写出程序执行后的输出。 #include <stdio.h> void add(int a, int b){ a+=3; b*=6; printf("a=%d, b=%d\n",a,b); } int main(){ int x=1, y=2; add(x, y); printf("x=%d, y=%d\n", x, y); return 0; }

    a=4, b=12 x=1, y=2

  • 93

    下面给出一段程序,在主函数中调用average函数。average函数可以计算主函数中的数组arr的所有元素的平均值并返回。请将程序中没有给出的部分补全,使该程序可以完成上述功能。 #include <stdio.h> double average( (1) , int length){ int i; double sum=0; for(i=0;i<length; (2) ) sum=sum+array[i]; return (3) ; } int main(){ double arr[5]={4.5, 7.8, 9.0, 13.4, 20.1}; double aver=average(arr, 5); printf("aver=%.2f\n", aver); return 0; }

    double array[], i++, sum/length

  • 94

    在C语言中进行函数调用时,有两种不同的参数传递方式,即__________传递方式和________________传递方式。

    值, 地址

  • 95

    请阅读下面的程序,写出程序执行后的输出。(提示:输出共有5行) #include <stdio.h> void swapArray(int a[ ],int b[ ],int length); int main(){ int arr1[3]={1,3,5}; int arr2[3]={2,4,6}; int i; for(i=0;i<3;i++) printf("%d ",arr1[i]); printf("\n"); for(i=0;i<3;i++) printf("%d ",arr2[i]); printf("\n"); swapArray(arr1,arr2,3); for(i=0;i<3;i++) printf("%d ",arr1[i]); printf("\n"); for(i=0;i<3;i++) printf("%d ",arr2[i]); printf("\n"); return 0; } void swapArray(int a[],int b[],int length){ int i,temp; printf("swapping now\n"); for(i=0;i<length;i++){ temp=a[i]; a[i]=b[i]; b[i]=temp; } }

    1 3 5 , 2 4 6, swapping now, 2 4 6, 1 3 5

  • 96

    函数的首行(即函数首部)称为 。

    函数原型

  • 97

    读下列程序,写出程序的输出结果。 #include <stdio.h> int fun(int x) { static int a=3; a+=x; return a; } int main( ) { int k=2,m=1,n; n=fun (k); n=fun (m) printf("n = %d",n); return 0; } 输出结果为:

    n = 6

  • 98

    下列关于函数的叙述中,正确的是( )。

    函数中定义的静态局部变量不能被另一函数直接访问

  • 99

    如果将main函数名字误写为mian将导致( )。

    连接错误

  • 100

    下列选项中,错误的是( )

    所有函数之间可以互相调用