c语言练习0212

1、若有以下说明语句:int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};char c=’a’,d,g;则数值为4的表达式是()。

A)a[g-c]           B)a[4]         C)a[‘d’-‘c’]           D)a[‘d’-c]

2、假设int型变量占两个字节的存储单元,若有定义:int x[10]={0,2,4};则数组x在内存中所占字节数为()。

A)3                B)6            C)10               D)20

3、下列合法的数组定义是()。

A)int a[]=”string”;                  B)int a[5]={0,1,2,3,4,5};

C)char a=”string”;                   D)char a[]={0,1,2,3,4,5};

4、若给出定义:char x[]=”abcdefg”;char y[]={‘a’,’b’,’c’,’d’,’e’,’f’,’g’};则正确的叙述为()。

A)数组x和数组y等价               B)数组x和数组y的长度相同

C)数组x的长度大于数组y的长度     D)数组y的长度大于数组x的长度

6、下列程序运行后的输出结果是()。

#include<stdio.h>

int main()

{

    int n[3],t,j,k;

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

        n[t]=0;

   k=2;

   for(t=0;t<k;t++)

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

            n[j]=n[t]+1;

        printf("%d\n",n[1]);

}

A)2                B)1            C)0                D)3

7、有以下程序,执行后输出结果是()。

#include<stdio.h>

int main()

{

    int p[7]={11,13,14,15,16,17,18}, i=0,k=0;

    while(i<7 && p[i]%2)

    {

        k =k+ p[i];                    

        i++;

    }

    printf("%d\n", k);

}

A)58           B)56           C)45           D)24

9、有以下程序,执行后输出结果是()。

#include<stdio.h>

int main()

{

    int m[][3]={1,4,7,2,5,8,3,6,9};

    int i,j,k=2;

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

    {

        printf("%d ",m[k][i]);

    }

}

A)4 5 6            B)2 5 8            C)3 6 9         D)7 8 9

10、以下能正确定义一维数组的选项是()。

A)int num[];                           B) #define N 100

int num[N];

C)int num[0..100];                     D) int N=100;

int num[N];

11、有以下程序,执行后输出结果是()。

#include<stdio.h>

int main( )

    char a[]="abcdefg",b[10]="abcdefg";

    printf("%d  %d\n",sizeof(a),sizeof(b));

A)7  7           B)8 8         C)8 10            D)10 10

12、若有以下定义语句:char s[10],s=”abcd”;printf(“%s\n”,s);则运行结果是()。

A)输出abcd        B)输出a            C)输出ab cd        D)编译不通过

13、不能把字符串“Hello!”赋给数组b的语句是()。

A)char b[10]={‘H’,’e’,’l’,’l’,’o’,’!’};           

B)char b[10];b=”Hello!”;

C)char b[10]; strcpy(b,”Hello!”);           

D)char b[10]=”Hello!”;

14、若有以下程序段,该程序段的输出结果是()。

char str[]=”ab\n\012\\\””;

printf(“%d”,strlen(str));

A)3               B)4                 C)6                D)12

15、下列程序的输出结果是()。

 #include <stdio.h>

main()

{

    char ch[7]={"65ab21"};

    int j,s=0;

    for(j=0;ch[j]>='0'&&ch[j]<='9';j+=2)

        s=10*s+ch[j]-'0';

    printf("%d\n",s);

}

A)12ba56           B)66521            C)6                D)62

16、设已定义char s[]=”\”Name\\Address\”\n”;,则字符串s所占的字节数是()。

A)19               B)18               C)16               D)14

17、设已定义char c[8]=”Tianjin”和int j,则下面的输出函数调用中错误的是()。

A)printf(“%s”,c);                B)for(j=0;j<8;j++) printf(“%c”,c[j]);

C)puts(c);                         D)for(j=0;j<8;j++) puts(c[j]);

18、设已定义char a[10]和 int j,则下面输入函数调用中错误的是()。

A)scanf(“%s”,a);                 B)for(j=0;j<9;j++) scanf(“%c”,a[j]);

C)gets(a);                         D)for(j=0;j<9;j++) scanf(“%c”,&a[j]);

19、设已定义char x[8]和int j,为了给该数组赋值,下面语句中正确的是()。

A)x[8]=”Turbo C”;               B)x=” Turbo C”;

C)x[]=”Turbo C”;                D)for(j=0;j<7;j++) x[j]=getchar();

20、有如下程序,该程序的输出结果是()。

#include <stdio.h>

main()

{

    int n[5]={0,0,0},j,k=2;

    for(j=0;j<k;j++)

        n[j]=n[j]+1;

    printf("%d\n",n[k]);

}

A)不确定的值           B)2            C)1            D)0

程序编写

请编写一个程序,它的功能是:将字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。

  1. B
  2. B
  3. D
  4. A
  5. A
  6. A
  7. C
  8. B
  9. C
  10. D
  11. B
  12. C
  13. D
  14. B
  15. D
  16. B
  17. D
  18. A
    #include <stdio.h>
    #include <string.h>
    #include <ctype.h>
    
    // 将字符串中所有奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)
    void myfun(char *str) {
        int length = strlen(str);
        for (int i = 1; i < length; i += 2) {
            if (isalpha(str[i])) {
                str[i] = toupper(str[i]);
            }
        }
    }
    
    int main() {
        char str[100];
    
        printf("请输入一个字符串:");
        fgets(str, sizeof(str), stdin);
    
        // 如果存在换行符,则移除换行符
        if (str[strlen(str) - 1] == '\n') {
            str[strlen(str) - 1] = '\0';
        }
    
        myfun(str);
    
        printf("将奇数位置上的字母转换为大写后的字符串为:%s\n", str);
    
        return 0;
    }
    

  • 17
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值